AJPFX关于构造器的总结

构造器
        构造器定义
        构造器作用
        构造器特点
        构造器修饰符
        默认构造器
        构造器重载
        构造器和一般函数的区别
        何时定义构造器
        构造器私有化 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;"语句结束构造函数
                一般函数的函数名必须和类名字不同
                一般函数有返回值. 而且, 必须定义返回值类型
        运行上不同
                对象建立时, 就会调用与之对应的构造器; 在对象的生命周期执行且只执行一次
                对象创建后, 需要使用对象功能时才调用; 在对象的生命周期中可以被调用多次

原文地址:https://www.cnblogs.com/AJPFX/p/10841886.html