zoukankan      html  css  js  c++  java
  • Java之构造方法及this、super关键字

    有关构造方法的理解:
      需要对对象的数据进行初始化,则创建一个构造方法,此方法名字和类名一样,但是没有返回值(类型和具体的值都没,但是可以写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。

  • 相关阅读:
    如何从零开始开发一款嵌入式产品(20年的嵌入式经验分享学习)如何从零开始开发一款嵌入式产品(20年的嵌入式经验分享学习)
    shell命令【ulimit】
    ARM开发经典学习网站推荐
    [转]链表逆序
    [转]Rhythmbox中文乱码解决办法
    vi/vim 查找替换使用方法
    [转]程序员的十个层次 你属于哪一层?
    如何在程序中删除一个文件
    C/C++编译器错误代码大全
    R制作eset 的简单步骤
  • 原文地址:https://www.cnblogs.com/21-forever/p/10895739.html
Copyright © 2011-2022 走看看