一.構造函數特點
1.函數名與類名相同
2.不用定義返回值類型
3.沒有具體的返回值
/*
構造函數: 構建創造對象時調用的函數 作用: 可以給對象進行初始化。
創建函數都必須要通過構造函數初始化
一個類中如果沒有定義過構造函數,那麼該類中會有一個默認的空參數的構造函數。
如果類中定義了指定的構造函數,那麼類中默認的構造函數就沒有了
*/
class PerSon
{
private String name;
private int age;
//定義一個person類的構造函數
PerSon()//構造函數而且是空參數的
{
}
public void speak()
{
System.out.println(name + age);
}
}
class demo
{
public static void main(String[] args)
{
PerSon = new PerSon(); //new 的時候會自動調用 person 構造函數 ,並運行
}
}
class PerSon
{
private String name;
private int age;
//定義一個person類的構造函數
PerSon()//構造函數
{
name = “baby”
}
person(String n) //一出生就有 名字
{
name = n
}
public void speak()
{
System.out.println(name + age);
}
}
class demo
{
public static void main(String[] args)
{
PerSon p = new PerSon(); //new 的時候會自動調用 person 構造函數 ,並運行
person p1 = new person("xiaoming");
}
}
2.一般函數和構造函數的區別:
1.構造函數:對象創建時,就回調用與之對用的構造函數,對對象進行初始化。
2.一般函數:對象創建後,需要函數功能時才調用。
3.構造函數,對象創建時,會只調用一次
4.一般函數:對象創建後,可以被調用多次。
3. This 關鍵字
class PerSon
{
private String name;
private int age;
//定義一個person類的構造函數
//erSon()//構造函數
//{
// name = “baby”
//}
person(String name) //一出生就有 名字
{
this.name = name //防止初始化時出錯
}
/*
當成員變量和局部變量重名時,可以用 this 關鍵字區分
this: 代表對象,代表當前對象
this就是所在函數所屬對象的引用
簡單說那個對象調用了 this 所在的函數,this 就代表哪個對象。
*/
public void speak()
{
System.out.println(name + age);
}
}
class demo
{
public static void main(String[] args)
{
//erSon p = new PerSon(); //new 的時候會自動調用 person 構造函數 ,並運行
person p1 = new person("xiaoming");
}
}
構造函數調用構造函數:(但是 this 只能定義在構造函數的第一行)
class PerSon
{
private String name;
private int age;
//定義一個person類的構造函數
perSon()//構造函數
{
name = “baby”
}
person(String name) //一出生就有 名字
{
this(name);
this.name = name; //防止初始化時出錯
}
/*
判斷是否是同齡人
*/
public boolean compare(person p)
{
if (this.age == p.age)
return ture;
else
return false;
}