static、this、静态与非静态方法调用等问题
1.static关键字修饰的成员调用问题
被static修饰的成员(变量或方法)是属于类的,是和类一起加载进内存,也就是说比非静态成员(变量或方法)提前进入内存,所以访问特点是:非静态成员方法可以访问非静态成员(变量或方法)和静态成员(变量或方法);静态成员方法只能访问静态成员(变量或方法)。
2.this关键字
被this修饰的成员(变量或方法)属于类的实例化对象且只能是非静态的,而static修饰的成员(变量或方法)属于本类独有(可以通过类名.成员(变量或方法)名调用)。但一般不推荐使用this修饰非静态成员(变量或方法),除非在某个方法内的局部变量和成员变量重名了可以使用this特指成员变量。
public class T2 {
static int x;
int y;
public static void main(String[] args) {
method1();
x = 6;
new T2().y = 1;
new T2().method2();
}
public static void method1(){
x = 6;
new T2().y = 1;
new T2().method2();
}
public void method2(){
method1();
method2();
x = 6;
y = 2;
this.y = 3;
this.method2();
}
}