Java學習第八天

1.構造方法是一種特殊的方法,專門用於構造/實例化對象,構造方法根據是否有參數分爲無參構造和有參構造jvm

無參構造優化

無參構造方法就是構造方法沒有任何參數。構造方法在建立對象(new Dog())調用,無參構造方法中通常用於給屬性賦值默認值。spa

 

public class Dog{對象

   

    String name;blog

    int health;ci

    int love;作用域

    String strain;開發

   

    public Dog(){table

       System.out.println("構造方法");class

       health = 100;

       love = 0;

    }

   

}

 

若是開發中沒有定義無參構造方法,jvm默認給類分配一個無參構造,形如

public Dog(){

}

  有參構造

當構造/實例化一個對象時,能夠向構造方法中傳遞參數,這樣的構造方法稱爲有參構造。

  1. 局部變量和成員變量優先級

若是在一個做用域中,局部變量和成員變量同名,局部變量的優先級更高。

public class Dog{

   

    String name;

    int health;

    int love;

    String strain;

   

    public Dog(String name,int health,int love,String strain){

       name = name;

       health = health;

       love = love;

       strain = strain;

    }

}

 

優化後

public class Dog{

   

    String name;

    int health;

    int love;

    String strain;

   

    /*

    public Dog(){

       System.out.println("構造方法");

       health = 100;

       love = 0;

    }

    */

   

    public Dog(String _name,int _health,int _love,String _strain){

       name = _name;

       health = _health;

       love = _love;

       strain = _strain;

    }

   

    public void showInfo(){

       System.out.print("個人名字叫"+name);

       System.out.print(",健康值"+health);

       System.out.print(",親密度"+love);

       System.out.println(",我是一隻"+strain);

    }

}

 

有參構造和無參構造是方法重載關係。

 1.   有參構造常見問題

若是一個類提供了有參構造方法,jvm不在給類默認分配無參構造。

 

public class Dog{

   

    String name;

    int health;

    int love;

    String strain;

   

    /*

    public Dog(){

       System.out.println("構造方法");

       health = 100;

       love = 0;

    }

    */

 

    public Dog(String _name,int _health,int _love,String _strain){

       name = _name;

       health = _health;

       love = _love;

       strain = _strain;

    }

   

    public void showInfo(){

       System.out.print("個人名字叫"+name);

       System.out.print(",健康值"+health);

       System.out.print(",親密度"+love);

       System.out.println(",我是一隻"+strain);

    }

}

Dog dog = new Dog();

dog.name = name;

dog.health = 100;

dog.love = 0;

dog.strain = strain;

 

總結:

在開發過程當中,若是開發者提供了有參構造方法,必定要習慣性的提供無參構造。

相關文章
相關標籤/搜索