zoukankan      html  css  js  c++  java
  • 构造方法

    1.构造方法的相关概念

    * Java的类都要求有构造方法,如果没有定义构造方法,Java编译器会为我们提供一个默认的构造方法,默认构造方法就是指不带参数的构造方法
    * 如果类中有一个自己编写的构造方法时,编译器就不会为我们再提供那个默认构造方法。如果此时又希望还可以用默认构造方法来创建类的实例时,那就必须在类中明确添加这个默认构造方法。自定义的、默认的(无参的)跟默认2者只能存其一
    * 构造方法的名字和类名相同,并且没有返回值,并且不要加void
    * 抽象类存在构造方法,因为子类需要实例化父类

    >UserTow类
    
            //不是构造方法,这是普通成员方法
            void UserTwo(String username){
            }

    * 实例化对象时候,其本质,就是调用构造方法,调用构造方法,跟调用普通方法一样

    >UserTwo类
    
            UserTwo user = new UserTwo();
            user.username = "yaoming";
            user.password = "123";
            //等价
            UserTwo user = new UserTwo("yaoming", "123");

    * 构造方法的作用在于构造并初始化对象
    * **[访问修饰符]  注意:没有[static final]修饰符**

    2.构造方法可以重载

    >Person 类
    
            public Person(){}
        
            public Person(String name, boolean sex, int age){
                this.name = name;
                this.sex = sex;
                this.age = age;
            }

    3.为啥要有带参数的构造方法:

    * 为了初始化对象一些属性
    * 创建方便,减少量

    4.构造方法使用技巧:

    * 如果属性非常多,把必要,使用频率高的属性当做构造方法的属性
    * this调用构造函数

    5.this+构造方法:

    * 如果某个构造方法的第一条语句具有形式this(...),那么这个构造方法将调用本类中的其他构造方法。
    * this(xxxx);   构造函数的调用, 注意点:this(xxx) 必须是第一行

    >person类
    
           //Person类的构造方法1
            public Person(String name, boolean sex, int age){
            this.name = name;
            this.sex = sex;
            this.age = age;
            }
        
            //构造方法2-调用构造方法1
            public Person(){
                this("张三","男",18);
            }

    6.继承+构造函数

    * 子类初始化(创建对象)时,首先调用父类的构造器,生成父类对象,然后在进行子类初始化
    * 子类new 对象的时候,必须调用父类构造函数
    * 如果父类无法提供子类所需要的构造函数
       * 这时会报错:父类自定义带参数的构造函数,而子类使用默认的构造函数(无参数的)
       * 最佳的解法:自定义类时,自定义一个空参数的构造函数(养成习惯)
    * 可以通过,super进行调用父类的构造函数,进行初始化父类属性
    * 构造函数不能被子类继承

  • 相关阅读:
    sitemap
    sitemap
    sitemap
    微信开发 :WeixinPayInfoCollection尚未注册Mch 问题解决
    微信开发 :WeixinPayInfoCollection尚未注册Mch 问题解决
    微信开发 :WeixinPayInfoCollection尚未注册Mch 问题解决
    微信开发 :WeixinPayInfoCollection尚未注册Mch 问题解决
    HTML5 & CSS3初学者指南(2) – 样式化第一个网页
    HTML5 & CSS3初学者指南(2) – 样式化第一个网页
    django 登陆
  • 原文地址:https://www.cnblogs.com/anni-qianqian/p/5205582.html
Copyright © 2011-2022 走看看