类成员
- 属性:定义数据域
- 方法:定义行为动作
- 构造器:创建并初始化对象
- 代码块
- 内部类
类是对象的模板,对象是类的实例。对象与实例(instance)经常混用
属性和方法不在赘述
构造器(构造方法)
作用
- 创建对象(实例)实际上,Java中的对象都是通过调用构造方法创建的
- 初始化成员变量(属性)
特点
- 构造方法必须与类名相同
- 构造方法没有返回值类型,即使是void也不行
- 构造方法在创建对象时使用new操作符调用
构造方法的重载
- 无参构造方法
- 对成员变量进行初始化的有参构造方法(可以包含部分或全部成员变量)
一个类可以有多个重载的构造方法,如果不编写构造方法,那么类中会隐式的提供一个默认猴子方法(方法体为空的无参构造方法)。一般的,类中应该至少提供一个public权限的无参构造方法(便于类继承、用于反射)
代码块
使用{}
表示代码块,只能使用static修饰
静态代码块(static修饰)
- 在类加载时执行,且只执行一次
- 用于初始化类信息
- 如果类中定义了多个静态代码块,则按照声明的顺序依次2执行
- 静态代码块中只能调用静态的属性和方法
非静态代码块
- 在对象创建时执行。每创建一个对象,就执行一次
- 用于在创建对象时,对属性进行初始化
- 如果类中定义多个非静态代码块时,按照声明的顺序执行
- 非静态代码块可以调用静态/非静态的属性和方法
内部类
Java允许将一个类A声明在另一个类B中,类A就是内部类,类B是外部类
- 成员内部类:静态/非静态内部类,使用static修饰,可以使用4种权限修饰符(外部类不可以)
- 局部内部类:定义在方法、代码块、构造器内
4种权限修饰符
类的封装性,需要借助权限修饰符实现
由小到大,依次
- private
- protected
- default(默认)
- public
修饰符 | 当前类 | 同包类 | 其它包子类 | 其它包类 |
---|---|---|---|---|
public | 可以 | 可以 | 可以 | 可以 |
default | 可以 | 可以 | 可以 | 不可以 |
protected | 可以 | 可以 | 不可以 | 不可以 |
private | 可以 | 不可以 | 不可以 | 不可以 |
使用的较多的是public、默认、private