一 final关键字
1.final的使用对象
final可以修饰类: 那么该类就不能被继承(太监类)
final可以修饰方法: 那么该方法就不能被重写
final可以修饰变量:
a.成员变量
那么该成员变量只能赋值一次,创建对象之后不能再次赋值
可以直接在定义成员变量时赋值,也可以在构造方法中给成员变量赋值
b.局部变量
那么该局部变量只能赋值一次,
可以先定义后赋值,也可以定义的同时赋值,但是只能赋值一次
c.引用类型变量
那么该引用类型变量所保存的地址值不能改变,而不是地址中的内容不能改变
二 权限修饰符
一般我们这样使用权限修饰符:
成员变量使用 private ,隐藏细节。
构造方法使用 public ,方便创建对象。
成员方法使用 public ,方便调用方法。
tip:不加权限修饰符,其访问能力与default修饰符相同
修饰成员变量
public 无论在哪个类中,创建了本类对象之后都可以直接使用
protected 在本类,本包其他类,以及其他包的子类中可以直接使用
default 只能在本类,本包的其他类中可以直接使用
private 只能在本类中使用
修饰成员方法
public 无论在哪个类中,都可以直接调用成员变量
protected 在本类,本包其他类,以及其他包的子类中可以直接调用
default 只能在本类,本包其他类中直接调用
private 只能在本类中调用
修饰构造方法
public : 无论在那个类中都可以创建对象
protected和default是一样,因为构造方法子类是无法继承
只能在本类和本包其他类中使用
private: 只能本类中创建对象(一般用于单例设计模式)
tip:局部变量不能使用权限修饰符(无意义)
三.内部类
1.1成员内部类
在描述事物时,若一个事物内部还包含其他事物,就可以使用内部类这种结构。比如,汽车类 Car 中包含发动机类 Engine ,
这时, Engine 就可以使用内部类来描述,定义在成员位置。
class 外部类 {
//成员变量
class 内部类{
}
}
1.2访问特点
1.内部类可以直接访问外部类的成员,包括私有成员。
2.外部类要访问内部类的成员,必须要建立内部类的对象。
创建内部类对象格式:
外部类名.内部类名 对象名 = new 外部类型().new 内部类型();
或
外部类型 外部类对象名 = new 外部类();
外部类型.内部类型 内部对象名 =外部类对象. new 内部类();
public class Person {
private boolean live = true;
class Heart {
public void jump() {