構造函數
阿新 • • 發佈:2017-05-31
data 分享 對象創建 調用次數 類型 不同 沒有 blog 值類型
b、不定義返回值類型
c、沒有具體的返回值
多個構造函數在類中是以重載的形式來體現的。 無參構造函數(默認構造函數)
帶參構造函數
一個類中如果沒有定義過構造函數,那麽該類中會有一個默認的空參數構造函數。 如果在類中定義了指定的構造函數,那麽類中的默認構造函數就沒有了。
構造函數:對象創建時,就會調用與之對應的構造函數,對對象進行初始化。
一般函數:對象創建後,需要函數功能時才調用。
b、調用次數
構造函數:對象創建時,會調用只調用一次。 一般函數:對象創建後,可以被調用多次
1、概述
構造函數:構建創造對象時調用的函數。 作用:可以給對象進行初始化。創建對象都必須要通過構造函數初始化。2、特點
a、函數名與類名相同b、不定義返回值類型
c、沒有具體的返回值
3、類別
構造函數可以有多個,用於對不同的對象進行針對性的初始化.多個構造函數在類中是以重載的形式來體現的。 無參構造函數(默認構造函數)
帶參構造函數
一個類中如果沒有定義過構造函數,那麽該類中會有一個默認的空參數構造函數。 如果在類中定義了指定的構造函數,那麽類中的默認構造函數就沒有了。
1 Person()//構造函數,而且是空參數的。2 { 3 name = "baby"; 4 age = 1; 5 System.out.println("person run"); 6 } 7 8 Person(String n) 9 { 10 name = n; 11 } 12 13 Person(String n,int a) 14 { 15 name = n; 16 age = a; 17 }
4、一般函數和構造函數的區別
a、調用時機構造函數:對象創建時,會調用只調用一次。 一般函數:對象創建後,可以被調用多次
5、構造函數內存圖解
1 class Person{ 2 private String name; 3 private int age; 4 Person(String n,int a){ 5 name = n; 6 age = a; 7 } 8 publicvoid speak(){ 9 System.out.println(name+":"+age); 10 } 11 } 12 13 class ConsDemo{ 14 public static void main(String[] args){ 15 Person p2 = new Person("小強",10); 16 p2.speak(); 17 } 18 }
a、main函數進棧,創建p2對象,在棧內存中創建p2變量,在堆內存中創建對象,對name和age默認初始化 b、調用構造函數Person(String n,int a),構造函數進棧,將傳遞的參數值賦給n和a,n和a再將值賦給堆中的name和age
c、構造函數執行完畢,彈棧,此時對象初始化完畢,再將地址值賦給變量p2,p2指向堆中對象
d、p2.speak(),speak()方法進棧,執行,完畢後彈棧
6、註意事項
a、構造函數如果完成了set功能。set方法是否需要?需要,構造函數的賦值是在創建對象時進行,且一次,而set可以多次調用。1 Person(String n) 2 { 3 name = n; 4 } 5 public void setName(String n) 6 { 7 name = n; 8 }
b,一般函數不能直接調用構造函數。 c,構造函數如果前面加了void就變成了一般函數。 d,構造函數中是有return語句的。
構造函數