zoukankan      html  css  js  c++  java
  • Java 面向对象(六)类的成员 之 构造器(构造方法)

    一、构造器

      构造器又称构造方法,是为了创建对象和初始化对象所产生的。

    二、构造器的特征

      1、它具有与类相同的名称。

      2、它不声明返回值类型。(与声明为 void 不同)

      3、不能与 static、final、synchronized、abstract、native 修饰,不能有 return 返回值;

    三、构造器的作用

      作用:

        (1)构造对象,创建对象,和 new 一起使用,每次调用它就是在创建新的对象

       (2)当一个对象被创建时,构造方法用来初始化对象,给对象的成员变量赋初始值

        注意:当自己没有定义构造方法时,Java 自动提供了一个无参数的构造方法,所有的类都有构造方法。一旦自己定义了构造方法,Java将不再提供构造方法。

    四、构造器的语法

      语法格式:

    修饰符  构造方法名/类名(【参数列表】){

      初始化语句;

    }

      举例:

     1 public class Animal {
     2     private int legs;
     3     
     4     //构造器
     5     public Animal() {
     6         legs = 4;
     7     }
     8     public void setLegs(int i) {
     9         legs = i;
    10     }
    11     public int getLegs() {
    12         return legs;
    13     }
    14 }

      创建 Animal  类的实例:Animal a = new Animal();

      调用构造器,将 legs初始化为4。

    五、构造器的细节

      根据参数不同,构造器可以分为如下两类:

      •   隐式无参构造器(系统默认提供)
      •   显示定义一个或多个构造器(无参、有参)

      1、如果没有显式的定义类的构造器的话,则系统默认提供一个空参的构造器。

      2、一旦我们显式的定义了类的构造器之后,系统就不再提供默认的空参构造器。

      3、一个类中定义的多个构造器,彼此构成重载

      4、一个类中,至少会有一个构造器。

      5、默认构造器的修饰符与所属类的修饰符一致。

      6、父类的构造器不可被子类继承。

      7、构造方法的名称必须与类名相同,且构造方法没有返回值类型,也不写 void。

      8、构造方法不能return一个具体的返回值。

    六、构造器的重载

      1、构造器一般用来创建对象的同时初始化对象。

    1 class Person{
    2    String name;
    3    int  age;
    4    public Person(String n, int a) {
    5          name = n;
    6          age = a;
    7    }  
    8 }

      2、构造器重载使得对象的创建更加灵活,方便创建各种不同的对象。

        构造器重载举例:

    1 public class Person{
    2     public Person(String name, int age, Date d) {this(name,age);…}
    3     public Person(String name, int age) {…}
    4     public Person(String name, Date d) {…}
    5     public Person(){…}
    6 }

      3、构造器重载,参数列表必须不同。

        Demo:

        

    七、属性赋值过程

      在创建对象的时候,在很多位置都可以对类的属性赋值。现总结这几个位置,并指明赋值的先后顺序。

      赋值的位置: 

    ① 默认初始化

    ② 显式初始化

    ③构造器中初始化

    ④ 通过“对象.属性” 或 “对象.方法” 的方式赋值

      赋值的先后顺序:① -> ② -> ③ -> ④

  • 相关阅读:
    微服务架构下分布式事务解决方案——阿里GTS
    兼容IE8以下,获取className节点的元素(document.getElementsByClassName()兼容写法)。
    解决移动端ios下overflow-x scroll无法隐藏滚动条的问题
    skeleton在心意web上的实践
    小程序开发笔记(八)—Js数组按日期分组显示数据
    小程序开发笔记(七)—加入内容安全检测
    使用react+redux+react-redux+react-router+axios+scss技术栈从0到1开发一个applist应用
    vuex无法获取getters属性this.$store.getters.getCurChildId undefined
    函数防抖节流的理解及在Vue中的应用
    Javascript Object常用方法总结
  • 原文地址:https://www.cnblogs.com/niujifei/p/13771306.html
Copyright © 2011-2022 走看看