文章目录
1.this关键字
this关键字是什么:
- 在类的方法定义中使用的this关键字代表使用该方法的对象的引用。
- this可以看作是一个变量,它的值是当前对象的引用。
- 当this出现在某个方法体中时,谁在调用这个方法,this就代表谁。
什么情况下使用this关键字:
- 当必须指出当前使用方法的对象是谁时要使用this。
- 有时使用this可以处理方法中成员变量和参数重名的情况。
- this关键字最大的作用就是让类的一个方法,访问该类的另一个方法或实例变量。
public class Cat {
int i = 0;
Cat(int i){ this.i = i; }
public void run(){
System.out.println("正在执行run方法");
}
public void jump(){
this.run();
System.out.println("正在执行jump方法");
}
}
2.static关键字
- 在类中,用static声明的成员变量为静态成员变量,它为该类的公用变量,在第一次使用时被初始化,对于该类的所有对象来说,static成员变量只有一份。
- 用static声明的方法为静态方法,在调用该方法时,不会将对象的引用传递给它,所以在static方法中不可访问非static的成员。
- 静态方法不再是针对于某个对象调用,所以不能访问非静态成员
- 可以通过对象引用或类名(不需要实例化)访问静态成员。
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.println
("My name is "+name+" No."+id);
}
public static void main(String arg[]){
System.out.println(sid);//0
//System.out.println(id); //java: 无法从静态上下文中引用非静态 变量 id(static方法中不可访问非static的成员)
Cat.sid = 100;//类名.静态变量
Cat mimi = new Cat("mimi");
mimi.sid = 2000;//对象.静态变量
Cat pipi = new Cat("pipi");
mimi.info();
pipi.info();
}
}