- this
在类方法定义中使用this关键字代表使用该方法的对象的引用。
当必须指出当前使用方法的对象是谁时要使用this。
有时使用this可以处理方法中成员变量和参数重名的情况。
this可以看作是一个变量,它的值是对当前对象的引用。
public class Leaf{
int i;
Leaf(int i){
this.i=i;
}
Leaf increament(){//返回值是Leaf类型的
i++;
return this;
}
void print(){ System.out.println("i="+ i);}
public static void main(String[] args){
Leaf leaf = new Leaf(100);
leaf.increament().increament().print();
}
}
2 . 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[] args){
Cat.sid = 100;
Cat mimi = new Cat("mimi");
Cat pipi = new Cat("pipi");
mimi.info();
pipi.info();
}
}
② 静态方法
用static声明的方法为静态方法,非static声明的方法可以调用static声明的的属性或方法,而static声明的方法是不能调用非static声明的属性和方法的(因为静态方法不能向对象实施操作)。但静态方法可以通过 类名.静态方法访问自身类中的静态属性。
③ 静态代码块
静态代码块优先于主方法执行,优先于构造块执行,且不管有多少个对象产生,静态代码块只执行一次。
④ 用static声明内部类
用static声明的内部类不能访问非stati的外部类属性。