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:

        

    七、属性赋值过程

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

      赋值的位置: 

    ① 默认初始化

    ② 显式初始化

    ③构造器中初始化

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

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

  • 相关阅读:
    关于初学者Could not find action or result :No result defined for action com.lyw.action.LoginAction and result success
    tomcat运行时候出现java.net.BindException: Address already in use: JVM_Bind错误解决方法
    关于jQuery中环境配置中的问题
    myeclicps开发web时候复制一个工程改名字后执行出现404错误
    非正常关闭myeclicps后,出现错误Errors occurred during the build.的解决方法
    【软件工程】读《人月神话》有感
    【软件工程】一个学期软件工程课的感想
    【软件工程】“谁是卧底”之NABC分析
    [软件工程] 查找二维数组最大子数组的之和 郭莉莉&李亚文
    【软件工程】软件开发方法综述
  • 原文地址:https://www.cnblogs.com/niujifei/p/13771306.html
Copyright © 2011-2022 走看看