构造器
构造器定义
构造器作用
构造器特点
构造器修饰符
默认构造器
构造器重载
构造器和一般函数的区别
何时定义构造器
构造器私有化 private
--------------------------------------------------------------------------------
构造器定义
用于给对象进行初始化的特殊函数
--------------------------------------------------------------------------------
构造器作用
用于给对象进行初始化
--------------------------------------------------------------------------------
构造器的特点(与普通函数相比)
> 构造器必须和类同名
> 每个类可以有一个以上的构造器
> 构造器可以有0个, 1个或1个以上的参数
> 构造器没有返回值
所以, 构造器不可以定义返回值类型, 但可以使用"return;"语句结束构造函数
> 构造器总是伴随着 new 操作符的执行而被调用
对象创建时, 就会调用与之对应的构造器来进行初始化
--------------------------------------------------------------------------------
构造器的修饰符
ConstructorModifier: one of
Annotation public protected private
--------------------------------------------------------------------------------
默认构造器 for top level class, member class, or local class
默认构造器, 是指由系统隐式声明的构造器
***只有类中没有声明构造器时, 系统才会隐式声明一个默认构造器
只要类中声明了构造器, 系统便不再隐式声明默认构造器
> 默认构造器的访问权限始终声明为类访问权限
> 默认构造器是无参的,
除了非 private 的 inner member class 的默认构造器,
该默认构造器隐式声明了一个形参
该形参...representing the immediately enclosing instance of the class
默认构造器是无参构造器, 但无参构造器不一定是默认构造器
> 默认构造器没有 throws 子句
> 默认构造器的方法体只有一条语句, 那就是调用直接父类的无参构造器
只有 Object 例外, 其默认构造器方法体为空
若父类没有可访问的无参且没有 throws 子句的构造器,
那么系统将无法隐式声明默认构造器, 报编译错误
---------------------------------------------
默认构造器 for anonymous class / Anonymous Constructors 匿名构造器
匿名内部类, 不能显式声明构造器.
系统总是为匿名内部类隐式声明一个匿名构造器.
匿名内部类的构造器由其实例创建表达式决定.
匿名内部类构造器的形参个数 = 匿名内部类实例创建表达式的实参个数
匿名内部类构造器的形参个数 = 匿名内部类实例创建表达式的实参个数 + 1
--------------------------------------------------------------------------------
构造器重载
多个构造器是以重载的形式存在的
--------------------------------------------------------------------------------
构造器和一般函数的区别
作用不同
构造器用于初始化对象
一般函数用于声明对象具备的功能
写法上不同.
构造器名字必须和类名字相同
构造器没有返回值. 也就是说, 构造器不可以定义返回值类型
可以使用"return;"语句结束构造函数
一般函数的函数名必须和类名字不同
一般函数有返回值. 而且, 必须定义返回值类型
运行上不同
对象建立时, 就会调用与之对应的构造器; 在对象的生命周期执行且只执行一次
对象创建后, 需要使用对象功能时才调用; 在对象的生命周期中可以被调用多次