Java之构造方法及this、super关键字
2019-05-22 06:31:21来源:博客园 阅读 ()
有关构造方法的理解:
需要对对象的数据进行初始化,则创建一个构造方法,此方法名字和类名一样,但是没有返回值(类型和具体的值都没,但是可以写return;).构造方法是用来创建对象的,所以是不能被对象调用的,当创建(new)对象的时候,就被调用了一次。若我们没写构造方法(不管是无参的还是有参的)时,系统会默认的自动给添加个无参数的构造方法。多个构造方法是可以重载共存的,若构造方法私有(private)了的话,其他程序是无法创建该类的对象。
当在一个类中既存在构造方法,又存在普通方法时,需要调用构造方法(本类)时,则需要用this调用,尤其注意的是调用的语句需要写在第一行(因为构造方法就是对数据的初始化的,初始化的动作要最先执行)。
当子类需要调用父类的构造方法时,需要用到super()关键字,其实因JAVA中最大的父类是Object!!在每个类的构造方法的第一行都默认的存在隐式的super()语句的,但当子类同时需要调用本类的构造方法时,则必须将this()先执行,然后再在本类的方法中间接的super()完成初始化-----还是因为初始化的动作要先执行。
一、构造方法:
1、介绍:
修饰符 构造方法名(参数列表)
{
}
①、构造方法没有返回值类型, 也不需要写返回值。因为它是为构建对象的,对象创建完,方法就执行结束。
②、 构造方法名称必须和类名保持一致。
③、构造方法没有具体的返回值。
2、构造方法是专门用来创建对象的,也就是在new对象时要调用构造方法。
3、如果没有显示指定构造方法,编译会在编译时自动添加默认的构造方法(空参构造)!如果在描述类时,我们显示指定了构造方法,那么,当在编译Java源文件时,编译器就不会再给class文件中添加默认构造方法。
4、细节:
①、一个类中可以有多个构造方法,多个构造方法是以重载的形式存在的;
②、构造方法是可以被private修饰的,作用:其他程序无法创建该类的对象。
class Person { private int age; private String name; // 私有无参数的构造方法,即外界不能通过new Person();语句创建本类对象 private Person() { }
5、构造方法与普通方法的区别:
①、构造方法在对象创建时就执行了,而且只执行一次;
②、一般方法是在对象创建后,需要使用时才被对象调用,并可以被多次调用。
6、构造方法仍需要相应的set和get方法,因为对象在创建之后需要修改和访问相应的属性值时,在这时只能通过set或者get方法来操作。
二、this关键字:
1、构造方法之间的调用,可以通过this关键字来完成。只能在本类中构造方法里用,也只能调用构造方法。不能用在普通方法。
this(参数列表);
2、调用其他构造方法的语句必须定义在构造方法的第一行,原因是初始化动作要最先执行。
3、可以在成员变量名前面加上this.来区别成员变量和局部变量。
三、super关键字:
1、在创建子类对象时,父类的构造方法会先执行,因为子类中所有构造方法的第一行有默认的隐式super();语句。
2、当子类调用父类的构造方法时,用super();
3、this调用了本类其他构造方法,那么super调用父类的语句没有的,因为初始化动作要先执行。主要在构造方法中直接或者间接的调用super()就可以完成初始化。(在开始的位置写本类的,在后面的方法中的调父类的)。
4、Java体系在设计,定义了一个所有对象的父类Object。
原文链接:https://www.cnblogs.com/21-forever/p/10895739.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash