this关键字
在类的方法定义中使用this关键字代表使用该方法的对象的引用。
当必须指出当前使用方法的对象是谁时哟啊使用this
又是使用this可以处理方法中成员变量和参数重名的情况
this可以看做是一个变量,它的值是当前对象的引用
Static 关键字
1、在类中,用static声明的成员变量为静态成员变量,它为该类的公共变量,在第一次使用时
被初始化,对于该类的所有对象来说,static成员变量只有一份
2、用static声明的方法为静态方法,在调用该方法时,不会将对象的引用传递给它,所以在static
方法中不可方法非static的成员
注意:静态方法不再针对于某个对象调用,所以不能访问非静态成员
3、可以通过对象引用或类名(不需要实例化)访问静态成员。
Public class Cat{
Private static int sid = 0;
Private String name;
Int id;
Cat(String name){
this.name = name;
id = sid++;
}
public void info(){
System.out.pintln("my name is"+name+"No."+id);
}
public static void main(String args[]){
Cat.sid=100;
Cat mimi = new Cat("mimi");
Cat pipi = new Cat("pipi");
mimi.info();
pipi.info();
}
}
super关键字
实例:
class FatherClass {
public int value;
public void f(){
value = 100;
System.out.println
("FatherClass.value="+value);
}
}
class ChildClass extends FatherClass {
public int value;
//重写父类的f()方法
public void f() {
super.f();
value = 200;
System.out.println
("ChildClass.value="+value);
System.out.println(value);
System.out.println(super.value);
}
}
public class TestInherit {
public static void main(String[] args) {
ChildClass cc = new ChildClass();
cc.f();
}
}
内存分析结果:
注意:堆中的value值在初识化的时候因位是int类型所以初始值是0,也就是在运行
ChildClass cc = new ChildClass();这句代码时,当运行到了cc.f()这句代码的
时候父类中的value的值才变成100,子类中的value才变为200
运行结果:
final关键字
1、final的变量的值不能被改变
final的成员变量
final的局部变量(形参)
2、final的方法不能被重写
3、final的类不能够被继承