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;"语句结束构造函数
一般函数的函数名必须和类名字不同
一般函数有返回值. 而且, 必须定义返回值类型
运行上不同
对象建立时, 就会调用与之对应的构造器; 在对象的生命周期执行且只执行一次
对象创建后, 需要使用对象功能时才调用; 在对象的生命周期中可以被调用多次
AJPFX关于构造器的总结的更多相关文章
- Java之类的构造器(反射)
反射: Java反射机制:指的是在Java程序运行状态中,对于任何一个类,都可以获得这个类的所有属性和方法;对于给定的一个对象,都能够调用它的任意一个属性和方法.这种动态获取类的内容以及动态调用对象的 ...
- Swift3.0P1 语法指南——构造器
原档:https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programmi ...
- Duilib源码分析(二)控件构造器—CDialogBuilder
上一节了解了大体流程,但是界面控件元素是如何被加载.解析.构建.管理.控件消息如何处理的呢?接下来我们将结合控件构造器进行分析: CDialogBuilder:控件构造器,主要用以解析xml配置文件并 ...
- java面向对象_构造器
构造器(构造方法):是类中定义的方法. 1)常常用于给成员变量赋值: 2)与类同名,没有返回值类型,也不能写void: 3)在创建对象时被自动调用.所以构造方法的访问修饰符要用public,才能被自动 ...
- 静态工厂方法VS构造器
我之前已经介绍过关于构建者模式(Builder Pattern)的一些内容,它是一种很有用的模式用于实例化包含几个属性(可选的)的类,带来的好处是更容易读.写及维护客户端代码.今天,我将继续介绍对象创 ...
- 008-Scala主构造器、私有构造器、构造器重载实战详解
008-Scala主构造器.私有构造器.构造器重载实战详解 Scala主构造器实战 无参数的主构造器 分析 1.name 需要赋初值,一般通过占位符来代表空值 2.private 声明私有的age 生 ...
- 【Thinking in Java】编写构造器时应注意:尽量避免调用其他非private方法
最近重温了<Thinking in Java>,发现了一个让我为之兴奋的知识漏洞,必须得分享一下. 上一篇的<Java类初始化的过程>的随笔中,那个初始化顺序并不完整.初始化的 ...
- java构造器
java的构造器不是方法,因为没有返回值. 构造器可以重载. 构造器的访问说明符: private:只有本类可以使用这个构造器. protected:这个类的子类和包中的类都可以使用此构造器. pub ...
- javascript对象初探(一)--- 构造器函数
我们可以通过构造器函数(简称构造函数)来创建对象: function Her(){ this.child = 'Jon'; } 为了使用该函数来创建对象,我们需要使用new操作符,例如: var sh ...
随机推荐
- C#构造方法(函数) C#方法重载 C#字段和属性 MUI实现上拉加载和下拉刷新 SVN常用功能介绍(二) SVN常用功能介绍(一) ASP.NET常用内置对象之——Server sql server——子查询 C#接口 字符串的本质 AJAX原生JavaScript写法
C#构造方法(函数) 一.概括 1.通常创建一个对象的方法如图: 通过 Student tom = new Student(); 创建tom对象,这种创建实例的形式被称为构造方法. 简述:用来初 ...
- Qt 用户登录界面
使用QT创建自己的登录窗口: 主要步骤: 1.窗口界面的绘制 2.沟通数据库进行密码验证 void MainWindow::on_pushButton_clicked() { // 连 ...
- 使用Java对100以内偶数求和
/** * 根据for循环的描述: for(变量初始化:循环条件:修改循环变量的值),求出100以内的所有偶数,for(int i = 0; i<=100; i+=2),把这些偶数累加到一个空的 ...
- 记一次UICollectionView中visibleCells的坑
记一次UICollectionView中visibleCells的坑 项目的要求是这样的 其实也是一个轮播图,而已,所以依照轮播图的实现原理,这里觉得也很简单,还是利用UICollectionView ...
- Java中会存在内存泄露吗?请简单描述。
本文转载自:Java中会存在内存泄漏吗,请简单描述 会.java导致内存泄露的原因很明确:长生命周期的对象持有短生命周期对象的引用就很可能发生内存泄露,尽管短生命周期对象已经不再需要,但是因为长生命周 ...
- visio2010对齐粘附功能
对齐与粘附功能在绘图时应用非常广泛.可以快速将图形对齐,以及将连接点准确地吸附在你想要连接的点上. 那么visio2010对齐粘附功能隐藏在什么地方呢? 你可以点击[视图]选项卡,在[视觉帮助]组中. ...
- hosts所在文件夹以及***
hosts所在文件夹: Windows 系统hosts位于 C:\Windows\System32\drivers\etc\hosts Android(安卓)系统hosts位于 /etc/hosts ...
- java语法基础(三)
类和对象 面向对象语言概述 java是一种面向对象的语言,什么是面向对象的语言? 要搞清楚什么是面向对象语言,我们需要相对的了解一下面向过程的语言. java入门阶段,我们又给大家说过一些语言的分类, ...
- 利用js和CSS实现网页局部打印
1 局部打印方法: 作用:将id为dayin的内容,新建页面并打印,可解决打印某页面中的部分内容的问题.使用方法:将要打印的内容通过 <span id="dayin"> ...
- [Usaco2015 OPEN] Palindromic Paths
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=4098 [算法] 显然 , 回文路径中第i个字母的位置(x , y)必然满足 : x ...