Java程序的基本结构 -- 关键字与修饰符
2018-09-25 本文已影响0人
咔狼
关键字(部分)
this
- this代表当前类的对象
- 通过this显式的去使用当前对象的成员(属性、方法),如果需要在一个构造方法中调用另外一个构造方法来初始化信息时可以使用this
- this平时是隐式调用,也可以显式的调用
- this可以用在成员方法中(访问当前对象的属性, 调用当前对象的方法)
- this可以用在构造方法中,语法:this(实参); 目的:代码重用
- 通过this去调用构造方法时必须是在第一行,构造方法不可以主动调用
super
- 在对象的内部可以代表父类对象
- 可以用super调用父类方法:super.方法名();
- 可以用super调用父类属性:super.属性
- 子类的构造方法中一定会去调用其父类的构造方法,如果未显式调用,则默认调用父类无参构造
- 如果显式调用,则super()必须位于第一行,如果未显示而父类没有无参构造则程序报错
- super不是一个对象
static
- 在类加载时就加载(运行、 初始化),静态初始化优先于对象
- 静态的成员(属性和方法)可以通过 “类名.操作符” 直接访问
- 只有在所有对象都是同一个属性值的时候才建议用static修饰
- 在static的方法或者语句块中不能使用 this、 super 关键字
- 在static的方法或者语句块中不能使用非static的成员(属性、 方法)
- 在非static的方法或者语句块中可以使用static的成员(属性和方法)也可以使用非static的成员
final
- 使用final关键字做标识有“最终”的含义
- final可以修饰类,方法和变量
- final修饰类,则该类不允许被继承
- final修饰方法,则该方法不允许被重写
- final修饰变量,则该变量的值只能赋一次,即变为常量
修饰符
- 作用:访问控制
- public (公有的)对所有的类都可见,使用位置:变量 方法 类 接口
- protected(受保护的)对同一包内的类和所有子类可见 使用位置:变量 方法 内部类
- default(默认的)在同一包内可见,不写修饰符,使用位置:变量 方法 类 接口
- private(私有的)只在同一类可见,使用位置:变量 方法 内部类
修饰符 | 当前类 | 同包内 | 子孙类 | 其他包 |
---|---|---|---|---|
public | 是 | 是 | 是 | 是 |
protected | 是 | 是 | 是 | 否 |
default | 是 | 是 | 否 | 否 |
private | 是 | 否 | 否 | 否 |