Java关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。Java的关键字对Java的有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名和参数。(From百度)
1. this关键字
创建一个对象分为如下四个步骤:
1.分配对象空间,并将对象成员变量初始化为0或空
2.执行属性值的显式初始化
3.执行构造方法
4.返回对象的地址给相关的变量
this的本质“创建好的对象的地址”
this最常的用法:
-
在程序中产生二义性之处,应使用this来指明当前对象;普通方法中,this总是指向调用该方法的对象,构造方法中,this总是指向正要初始化的对象。
-
使用this关键字调用重载的构造方法,避免相同的初始化代码,但只能在构造方法中用,并且必须位于构造方法的第一句。
-
this不能用于static方法中,必须从属于对象
public class User {
int id;
String name;
String pwd; //密码
public User() {
}
public User(int id,String name) {
this.id = id;
this.name = name;
}
public User(int id,String name,String pwd) {
this(id,name);
this.pwd = pwd;
}
public static void main(String[] args) {
User u1 = new User();
User u2 = new User(101,"fei");
User u3 = new User(102,"fei","123456");
}
}
2. static关键字
用static声明的变量为静态成员变量,有如下特点:
-
为该类的公用变量,属于类,被该类的所有实例共享,在类被载入时被显式初始化。
-
对于该类的所有对象来说,static成员变量只有一份,被该类的所有对象共享。
-
一般用"类名.类属性/方法"来调用。
-
在static方法中不可直接访问非static的成员。
3. final关键字
final关键字的作用
-
修饰变量:被修饰的变量不可改变,一旦赋了初值就不能被重新赋值 如final int MAX_SPEED = 120;
-
修饰方法:该方法不可被子类重写,但是可以重载 如final void study()
-
修饰类:修饰的类不能被继承(扩展) 如Math,String等 如 final class A{}
4. super关键字
super可以看作是直接父类对象的引用,可以通过super来访问父类中被子类覆盖的方法或属性
使用super调用普通方法,语句没有位置限制,可以在子类中随便调用
public class Testsuper {
public static void main(String[] args) {
new ChildClass().f();
}
}
class FatherClass{
public int value;
public void f() {
value = 100;
System.out.println("Fatherclass.value"+value);
}
}
class ChildClass extends FatherClass{
public int value;
public void f() {
super.f(); //调用父类的普通方法
System.out.println("ChildClass.value"+value);
System.out.println(value);
System.out.println(super.value); //调用父类成员变量
}
}