一.this关键字
I.this表示本类属性
程序的就近取用原则 使用this,属性名称表示直接从类中寻找同名属性 在类中使用本类属性一定要加上this关键字
II.this表示本类方法
a.this表示本类的构造方法
this (方法参数);//有参构造 this();//无参构造 在构造方法首行使用this(参数)表示调用本类的构造方法
1.this调用本类构造方法必须写在构造方法首行
2.this调用构造方法不能成"环"
b.this表示本类的普通方法
this.方法名称(方法参数); 若在本类中调用普通方法,一般将this加上
尤其是在有继承的情况下,使用this可以明确表示调用的是本类方法
III.this表示当前对象
当前调用的属性或方法是通过那个对象调用的,this就指代他.
二.static(静态的)关键字(重要)
与对象无关!
I.修饰本类属性,称为静态属性(类属性),所有对象共享此属性值;非static属性称为成员变量或对象属性,每个对象都有此属性且值都不一样.
要描述类似国家这种共享属性,可以使用static修饰属性.静态属性一般通过类名直接调用,所有该类对象共享此属性值
- 定义类时,如何选择实例变量和类属性呢?
在定义类时,99%的情况都不会考虑static属性,以非static属性(即实例变量)为主
如果需要描述共享属性的概念,或者不受对象实例化控制,使用static .
II.修饰本类方法
使用static修饰方法,称为类方法,直接通过类名称调用,与对象实例化无关.
静态方法常见于工具方法.
eg:java.util.Arrays.sort();
System.arraycopy();
问题:
静态属性能否访问类中普通属性?一定不能
答.静态属性与对象无关,而普通属性与对象强相关.
静态属性能否访问类中静态属性?
答:一定可以.
普通方法能否访问类中静态属性?一定可以
答:静态属性共享
Private:修饰属性与方法
static:属性