关于this
第一种作用:区分局部变量和成员变量。
第二种作用: 代指对象本身。
关于this()
this后面带有(),说明JVM将其按照方法来看待;而这个方法固定表示构造方法。
使用时应注意:
1、参数个数决定其调用的具体构造方法,即,有参还是无参构造;
2、this()只能在构造方法中使用;
3、构造方法中若出现this(),则必须是第一条语句;
4、this()的使用应避免递归问题,当然,Java编译器拒绝递归构造
关于final
被fina修饰的变量为常变量,只能的初始化时赋值一次;
被final修饰的方法不能被重写;
被final修饰的类不能被继承(也称太监类,没有子类)。
关于static
被static修饰的成员变量为静态变量,被static修饰的成员方法为静态方法,成员变量与成员方法被static修饰之后,他们就变成了类从属关系,不在属于某一个对象,而是无论这个类创建多少个对象,被static修饰的成员都是公用的,只在类加载时被创建,且只创建一次(因为类只会被加载一次)。
静态方法中不允许出现this!
静态成员与非静态成员访问方式
静态成员访问方式(两种):
类名.变量名(推荐)
类名.方法名(推荐)
对象名.变量名(不推荐,但是也能访问到)
对象名.方法名(不推荐,但是也能访问到)
非静态成员访问方式(一种):
对象名.方法名
对象名.变量名
静态成员与非静态成员访问权限
非静态方法可以访问静态和非静态成员变量以及成员方法
静态方法只能访问静态成员变量以及成员方法
(原因:静态成员在类加载时就被创建,相互之间已经存在,访问无限制,但非静态成员只有在类被实例化一次之后才能存在,为了避免静态方法访问到不存在的成员,所以JVM拒绝静态方法访问非静态成员这种方式)