一、关键字this
1.表示调用本类属性:在类中访问类的属性,一定要加上this关键字。
2.表示调用本类方法:
(1)调用普通方法:this.方法名(参数); 当有类的继承关系时,表示本类方法一定要加上this关键字。
(*****)(2)调用构造方法:this(参数) ; 注:this调用构造方法必须放在构造方法首行,并且不允许成环。
(3)表示当前对象
二、关键字super
1.用于方法
(1)用于构造方法(*****):表示调用父类构造方法---->super(参数列表)
①当子类调用父类无参构造时,super()可写可不写。
②当子类调用父类有参构造时,super(参数列表)必须要写,要告诉编译器当前调用的是哪个有参构造。
注:子类构造方法调用父类构造必须是第一行语句。
this与super不可以同时调用。
(2)用于普通方法:super.方法名(参数); 用于在子类中明确调用父类被覆写的方法。
2.用于属性(了解)
super.属性名 ---> 表示调用父类中被覆写的属性(权限不是private)
三、关键字static
1.static变量--->类属性(静态属性)
称为类属性。保存在全局数据区中(方法区---所有对象共享区域)。通过类名调用,与对象实例化无关。
描述共享属性使用static属性(1%)。
2.static方法--->类方法(静态方法)
通过类名调用,与对象实例化无关。常见于工具类方法:Person.fun(); Arrays.arraycopy(......);
注:局部变量不能用static修饰。static与private均不能加载到外部类之上,内部类可以。
四、关键字final---终结器
1.final修饰类(String类以及8大基本数据类型的包装类,Integer)
- 当一个类被final修饰,表示该类不能拥有子类(该类不允许被继承)。
- 一旦一个类被final修饰,该类的所有方法都会被默认加上final(成员变量不会加上final)。
2.final修饰方法
- 当一个方法被final修饰,明确表示该方法不允许被覆写。
-
当一个方法被private修饰后,相当于加了一个final关键字。
3.final修饰属性---常量
(1)final修饰普通数据类型的成员变量(最主要的用途)
- 被final修饰的成员变量必须在声明时初始化,并且初始化后值不能被修改。
- 声明时如果不初始化,可以通过构造方法、构造块初始化。
- final 变量------->常量(值不能改变,每个对象都有自己的final变量,在对象产生时初始化)
- static final-------->全局常量(所有对象共享此变量,并且在类加载时初始化,效率较高,通过类名调用),全局常量命名规范:多个单词全大写,单词间以_间隔。
(2)final修饰引用数据类型的变量(值不能改变)。
五、数据类型转换
当使用+、-、*、/、%运算操作时,遵循如下规则:
只要两个操作数中有一个是double类型的,另一个将会被转换成double类型的。
如果两个操作数中有一个是float/long类型的,另一个将会被转换为float/long类型的,并且结果也是float/long类型。
否则,操作数为byte、short、int、char,两个数都会被转为int类型的,并且结果也是int类型的,但是final修饰的域不会发生变化。