关键字
定义:电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量
特点:Java的关键字对Java的编译器有特殊的意义
他们用来表示一种数据类型,或者表示程序的结构等
关键字不能用作变量名、方法名、类名、包名和参数。
目前共有50多个关键字,其中“const”和“goto”并无具体含义
关键字列表
基本数据类型:int char long short byte double float boolean
程序结构:循环结构(while do for)
判断结构(if else switch case)
break return continue
访问权限:public protected private default
类定义: package class import interface
继承:extends implements
函数定义:void
修饰:static final abstract
其它:try catch finally throw throws synchronsized this super enmu const goto等等。
下面列举部分关键字的意义:
1、访问权限:
public:同一个工程下面的任何一个类都可以直接访问
protected:同一个工程下的同一个包可以互相访问、不同包的子类可以访问(不同包类可以继承到受保护的属性)
default:同一个工程下的同一个包可以互相访问
private:只能是自己的类可以访问
修饰:属性、方法、类
修饰类:只能是public和缺省
修饰构造函数:private 只能当前自己类构造对象
protected、default 只能同一个包下构造对象
public 当前工程下随意构造对象
2、this super
this 当前类的对象
super 父类对象
调用当前或者父类的函数、属性、构造方法
格式:
调用属性:this.属性名 super.属性
调用普通方法:this.方法名(参数); super.方法名(参数);
调用构造方法:this(参数); super(参数); 必须在第一行
子类构造函数会默认调用父类构造函数:为了初始化父类的属性和方法,提供给子类实用
public class Intex { //定义一个父类
public void ini() {
System.out.println("张三");
}
}
public class ExtendInt extends Intex { //子类继承父类
public void ini() {
System.out.println("李四");
}
public static void main(String[] args) {
ExtendInt ei = new ExtendInt();
ei.sete();
}
public void sete() {
super.ini(); //此时调用的为父类的ini方法,当super换成this时,则打印的为李四
}
}
3、final 最终的
修饰:类、方法、属性、参数、局部变量
修饰类:类不能被继承
修饰方法:当前方法不能被重写
修饰属性:代表当前属性的值不能再被标记(赋值)
修饰参数、局部变量:在参数的函数方法体中,不能再被标记
public final class Intex { // 修饰类此类不能被继承
public final int age = 10; // 修饰属性,属性则无法再次被赋值
public final String name; // 修饰属性时,还可利用构造方法
public Intex(String name) {//构造方法,可以保持属性的灵活性
this.name = name;
}
public final void ini() { // 修饰方法,则次方法不能被重写
System.out.println("张三");
}
}
4、static 静态的
修饰:方法 属性
特点:加载类的时候,直接加载静态属性和方法到内存静态空间
修饰方法:方法中必须实用静态的属性
public class Intex {
static String name; //定义静态的属性
public static void ini() { //静态的方法
System.out.println(name + "在学校");
}
}
//在另一个类中调用
public class ExtendInt {
public static void main(String agr[]) {
Intex.name = "王五"; //由于是静态的属性,则无需构建对象
Intex.ini(); //方法亦然
}
}
**静态块 : static{} , 当运行这个类时,首先运行且只运行一次
方法块:{} ,当调用对象时,首先运行**
public class Intex {
static int age = 10;
static { //静态块
age++;
System.out.println(1); //此处记录代码的运行步聚
}
{ //方法块
age++;
System.out.println(2);
}
public Intex() { //构造方法
age++;
System.out.println(3);
}
public static void ini1() {
age++;
System.out.println(4);
}
public void ini2() {
age++;
System.out.println(5);
}
}
//调用上述的方法
public class ExtendInt {
public static void main(String agr[]) {
Intex tea = new Intex();
Intex tea1 = new Intex();
Intex.ini1();
tea.ini1();
tea1.ini1();
tea.ini2();
tea1.ini2();
System.out.println(Intex.age);
System.out.println(tea.age);
System.out.println(tea1.age);
}
}
上述代码运行布聚为:1 2 3 2 3 4 4 4 5 5;而最后输出结果都为:20
由此得出,静态块里面的方法最先运行,并且只运行一次,之后构造参数时运行方法块里的方法,其次是构造方法必然运行,最后普通方法在调用的时候运行。
**5、**break return continue
break:跳出当前层循环
return :结束当前方法
continue:执行下一次循环
如此
以上为部分关键字解析。