转自:https://blog.csdn.net/zw1996/article/details/52878270

constructor;构造函数。
  • 1

在创建对象的时候,对象成员可以由构造函数方法进行初始化。

new对象时,都是用构造方法进行实例化的;
例如;Test test = new Test("a");//Test("a");其中这个就是构造函数,“a”为构造方法的形参;
  • 1
  • 2
  • 3
构造方法的方法名必须与类名一样。
构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。
构造方法不能作用是完成对象的初始化工作,他能够把定义对象时的参数传递给对象的域。
构造方法不能由编程人员调用,而要系统调用。
构造方法可以重载,以参数的个数,类型,或排序顺序区分。
  • 1
  • 2
  • 3
  • 4
  • 5

具体用法,代码实现。

1;单个构造函数方法;’


2;多个构造函数方法
(例子为;带参数与不带参数)


3;关于继承类的构造方法的调用;
先看事例;





我第一次看到结果的时候好惊讶的,怎么都调用了哈。看了知识点才知道。
在Subtine的主方法中只调用子类构造方法,实例化子类对象并且在子类构造方法中,没有调用父类的构造方法的任何语句。但是在实例化对象时,它相应的调用了父类构造方法,在结果中还可以看到调用构造方法的顺序,首先是顶级,再继续往下直达本身类。也就是说实例化子类的时候,要首先实例化父类对象,然后在实例化子类对象,所以在子类构造方法调用父类构造方法前,父类已经实例化了。
拓展一下。

package text_4_1;public class Parent {Parent(int a){//就是将无参数构造方法改成有参数的。System.out.println("调用父类Parent构造方法" + a);}
}package text_4_1;public class Subparent extends Parent{Subparent(){System.out.println("调用子类Subparent的构造方法");}
}package text_4_1;public class Subtine extends Subparent{Subtine(){System.out.println("调用子类Subtine构造方法");}
}package text_4_1;public class Main {public static void main(String[] args){Subtine subtine = new Subtine();}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

这样的代码将会报错;//就是将父类Parent类无参数构造方法改成有参数的。

Implicit super constructor Parent() is undefined. Must explicitly invoke another constructor
//隐式的超级构造函数()是未定义的。必须显式地调用另一个构造函数 
  • 1
  • 2

意思就是在子类调用构造函数时,必须先调用父类构造函数,因为无参数的构造函数,编译器会自动调用,也就是第一种情况不会报错。但是有参数的,就必须要利用Super的方法来调用。如果不进行调用那么将会报错。

将Subparent类改成。
package text_4_1;public class Subparent extends Parent{Subparent(){super(5);//调用了其父类就不会报错了。System.out.println("调用子类Subparent的构造方法");}
}
//备注一下,调用父类构造方法就是;super();//就ok了。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

还补充一点,关于构造方法的可扩展性;
查看过源码的应该都发现过jdk的编码人员会在一个类中建立多个构造方法;然而他的作用就是提高可扩展性;

这么多构造方法,他们之间并且还有联系;通过this()来调用自己类的其他构造方法,来减少代码的复制,增大程序的可读性;

至于怎么来进行封装;举个例子;


构造方法的可扩展性就表示在这里;
可以多多个构造方法;根据不同的参数决定调用哪个;带来很大的可扩展性
刚试了一下notepad++;然而直接爆出中文乱码,搞了好久才搞清楚;

原因是;国标码和ANSI之间的不兼容;

因为刚学,有什么不足的后期补上。
望路过的大神,指点一二。

【转】Java中类的构造方法相关推荐

  1. java中构造方法只能有一个_对Java中类的构造方法描述正确的是()A.如果在类中没有定义,Java就提供一个默认的构造方法B.只能...

    对Java中类的构造方法描述正确的是()A.如果在类中没有定义,Java就提供一个默认的构造方法B.只能 更多相关问题 猛虎噬人卣是_______时期的陶塑代表作品. 静态网页是指网页的内容是固定的, ...

  2. 关于java结构中描述正确的是_下列关于Java中类的构造方法的描述,正确的是()...

    A:构造函数没有返回值,也不能用void修饰.如果不小心给构造函数前面添加了返回值类型,那么这将使这个构造函数变成一个普通的方法,在运行时将产生找不到构造方法的错误. C:super(参数):调用父类 ...

  3. 关于java构造方法的描述_下列关于Java中类的构造方法的描述,正确的是()

    A:构造函数没有返回值,也不能用void修饰.如果不小心给构造函数前面添加了返回值类型,那么这将使这个构造函数变成一个普通的方法,在运行时将产生找不到构造方法的错误. C:super(参数):调用父类 ...

  4. java中类与对象回顾总结

    文章目录 一 类与对象的定义 二 类的成员变量 总结: 三 类的方法 (1)普通成员方法 (2)静态成员方法 类与对象的关键E点: 疑难解答: 四 private封装 五 setter与getter ...

  5. java中类的方法分为 类方法_Java中类的方法成员分为()方法和实例方法。

    Java中类的方法成员分为()方法和实例方法. 答:第一空: 类 下列各项中,不属于直接材料预算的编制基础的有( ). 答:直接人工预算 现金预算 社会主义基本制度的确立( ?). 答:是中国历史上最 ...

  6. java中类成员的限定词_Java类中的限定词

    java语言中有四种不同的限定词,提供了四种不同的访问权限. 1) private 类中限定为private的成员,只能被这个类本身访问. 如果一个类的构造方法声明为private,则其它类不能生成该 ...

  7. Java中类、常量、变量、方法名等命名规则

    Java中类.常量.变量.方法名等命名规则 命名规则: 命名由字母.数字.下划线.美元符号($)构成. 命名不可以数字作为开头. 长度无限制,但不可存在空格. 大小写所表述内容含义不同. 命名不可与J ...

  8. java 对象初始化属性,JAVA中类属性的初始化

    我们知道一个类(class)要被使用必须经过装载,连接初始化这样的过程.下面先对这三阶段做一个简单的描述,之后会结合一个简单的例子来说明java中类的初始化过程. 在装载阶段,类装载器(Bootstr ...

  9. Scala特质trait具备Java中类和接口的功能

    特质trait具备Java中类和接口的功能

最新文章

  1. softmax layer 简单理解以及实际例子【有白话讲解】
  2. 三峡大学陈迪马:土壤微食物网对全球变化的响应与反馈
  3. 配置一台计算机所需的东西,攒一台计算机需要的配置
  4. mysql8.0导出带数据的库表_MySQL8.0数据库导出与备份
  5. python语言程序设计西安电子科技大学答案-徐悦甡 | 个人信息 | 西安电子科技大学个人主页...
  6. spring boot 完整集成jsp。(亲测可用)
  7. 网络设备配置与管理--使用VTP实现扩展VLAN配置
  8. 曲线行驶最后什么时候回正_曲线行驶总压线?老教练给你支支招,看完觉得太简单了……...
  9. Activity 之生命周期
  10. mysql 添加ios表情符号_mysql - 如何用PHP匹配并替换iOS标准的emoji表情符号
  11. bp神经网络和softmax原理_BP人工神经网络常用传递函数
  12. 【恋上数据结构】串匹配算法(蛮力匹配、KMP【重点】、Boyer-Moore、Karp-Rabin、Sunday)
  13. 汉高澳大利亚sinox2014电影播放flash最好的办法是安装游戏windows文本firefox
  14. 解决 应用程序无法启动(0xc000007b),请单击确定关闭应用程序
  15. PLC编程指南_变量命名规则介绍
  16. 菱形c语言思路,c语言打印菱形(c语言打印菱形思路)
  17. 仿比心源码,uniApp自适应手机屏幕高度
  18. 自动化一切!那些我每天使用的快捷自动化工作
  19. 计算机硬盘对计算机速度的影响,固态硬盘会不会影响整个电脑的运行速度
  20. 简单理解2台主机数据通信过程

热门文章

  1. 人体动动识别论文(骨骼信息,CNN)
  2. oracle 增强功能,驱动程序增强功能
  3. 使用joblib多进程来读取excel
  4. 实训 Day09 实习日志
  5. Android弹力球小游戏案例
  6. 单片机不支持printf 浮点类型的解决办法
  7. My Android Camera Notes
  8. python做动态课件素材_万万没想到,还能这么玩!用 Python 生成动态 PPT
  9. 帝国CMS仿号码交易/QQ靓号商城源码/适配移动端整站源码
  10. python 格式互相转换备忘录