1、構造函數概念
構造函數就是構建創造對象時調用的函數,構造函數在創造對象時就調用,用於對該對象屬性的初始化。所有的對象創建時,都需要進行初始化纔可以使用。一個類中如果沒有定義構造函數,那麼該類中會有一個默認的空參數的構造函數,如果在類中定義了構造函數,類中默認的那個空參數的構造函數就不再存在了。
構造函數特點:
①構造函數名稱和所在類名稱相同
②構造函數不需要定義返回值類型
③構造函數沒有具體的返回值
所有的對象都需要進行初始化才能夠使用
class Person
{
private String name;
private int age;
Person()
{
age = 12;
name = "小強";
System.out.println("Person() is running");
}
void speak()
{
System.out.println("name="+name+"\nage="+age);
}
}
class PersonTest
{
public static void main(String[] args)
{
Person p = new Person();
p.speak();
}
}
該程序運行結果是:
name=小強
age=12
2、構造函數和一般函數的區別
構造函數:對象創建時,就會調用與之對應的構造函數,對對象進行初始化。初始化動作只執行一次。
一般函數:對象創建後,需要函數功能時才調用。 可以多次進行調用。
3、構造函數的重載
一個類中可以有多個構造函數,他們是以重載的形式來體現的,即以參數列表的不同來區分的。
class Person
{
private String name;
private int age;
Person()
{
name = "旺財";
age = 10;
}
Person(String n)
{
name = n;
age = 0;
}
Person(int a)
{
name = "babby";
age = a;
}
void speak()
{
System.out.println("name="+name+"\nage="+age);
}
}
class PersonDemo
{
public static void main(String[] args)
{
Person p = new Person("小強");
p.speak();
}
}
輸出結果:
name=小強
age=0
4、內存圖解
創造對象時內存使用情況如下;
5、構造函數使用細節
①一般函數不能直接調用構造函數。
②構造函數如果前面加了void就變成了一般函數。
③構造函數中是有return語句的,return用於結束函數。