1.構造方法(存在於類)
①創建對象時使用
②構造方法的名字必須和類名相同,並且無類型
示例
class People{
People{ //特點1沒有諸如int float的類型標明。
} //特點2方法名和類名完全相同。
int People{} //不是構造方法,因爲有類型名。
}
③如果沒有構造方法,系統會提供1個構造方法(缺省構造方法)
示例
將以下代碼編譯後再反編譯後(javac➡javap)
class People{
void x(){}
}
會看到以下情況
class People{
People(){}
void x(){}
}
這就是系統自動提供構造方法。但是方法內是空的。
④一個類體內可以有多個構造方法,但要求他們的參數不同,或參數的類型不同,或參數的數目不同
示例
class People{
People(int a,int b){}
People(int a,byte b){}
People(int a,int b,int c){}
//以上三類情況不互斥。
People(int a,int c){}//錯誤!!!!與People(int a,int b){}互斥!
}
2.創建對象(對類聲明的對象進行賦值操作的過程)
注意①,創建的對象中只含有成員變量不含有成員函數。
一個類中的成員函數被類所聲明的所有對象所共有,即只有一份,而成員變量是被拷貝到每一個對象中去。
注意②,一個對象的內存大小等於它所有成員變量的大小之和。
舉例
class People{
int a;
int b;
}
People xiaoming;
則xiaoming所佔的內存大小等於8(一個int類型是4個字節)
①類聲明對象
示例
class People{
int a,b,c; //
void f(){} //創建方法
}
public class Test{
public static void main(String args[]){
People a,b;
}
a和b即爲類People聲明的對象