日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java的构造特点_JAVA学习第八课(构造函数及其特点)

發(fā)布時間:2024/7/23 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java的构造特点_JAVA学习第八课(构造函数及其特点) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

構(gòu)造函數(shù):

構(gòu)造函數(shù),就是在構(gòu)建 創(chuàng)造對象 時所調(diào)用的函數(shù),作用就是給對象進行初始化

特點:

1.函數(shù)名和類名相同

2.不需要定義返回值類型

3.沒有具體的返回值

作用:給對象進行初始化

注意:

1.默認(rèn)構(gòu)造函數(shù)的特點

2.多個構(gòu)造函數(shù)是以重載的形式存在的

代碼演示:

class man

{

private int age;

private String name;

man()//定義一個man類的構(gòu)造函數(shù)

{

System.out.println("sun");

}

public void fun()

{

System.out.println(name+" "+age);

}

}

public class Main

{

public static void main(String[] args)

{

man jo = new man();

}

}

打印 sun、

PS:一個類中如果沒有定義過構(gòu)造函數(shù),那么該類中會有一個默認(rèn)的空參數(shù)構(gòu)造函數(shù)

如果在類中定義了指定的構(gòu)造函數(shù),那么類中的默認(rèn)構(gòu)造函數(shù)就沒有了

特別注意:如果定義了有參的構(gòu)造函數(shù),那么默認(rèn)構(gòu)造函數(shù)的形式也構(gòu)造,編譯器不再自動生成

實際上:默認(rèn)的空參數(shù)函數(shù)是:man(){}

比如一個類:

class test

{

}

什么也沒有,但是實際上里面有一個test(){},編譯器編譯時會先判斷有沒有寫構(gòu)造函數(shù),沒有自動添加,有就刪除默認(rèn)的構(gòu)造函數(shù)

構(gòu)造函數(shù),是在一創(chuàng)建對象的同時被調(diào)用了

一般函數(shù)和構(gòu)造函數(shù)的區(qū)別:

1.構(gòu)造函數(shù):對象創(chuàng)建時,就會調(diào)用與之對應(yīng)的構(gòu)造函數(shù),并對該對象進行初始化

一般函數(shù): 創(chuàng)建對象后,需要進行函數(shù)的調(diào)用的時候才會被調(diào)用

2.構(gòu)造函數(shù),對象創(chuàng)建時,只調(diào)用一次

一般函數(shù):對象創(chuàng)建后,想調(diào)用幾次就調(diào)用幾次

什么時候使用構(gòu)造函數(shù)?

在描述某一事物時,該事物存在一些內(nèi)容,這些內(nèi)容都定義在構(gòu)造函數(shù)里。

如:對象一創(chuàng)建,就有一個默認(rèn)的年齡、姓名

示例代碼:

class man

{

private int age;

private String name;

man()//定義一個man類的構(gòu)造函數(shù)

{

age = 20;

name = "john";

}

public void fun()

{

System.out.println(name+" "+age);

}

}

public class Main

{

public static void main(String[] args)

{

man jo = new man();

jo.fun();

}

}構(gòu)造函數(shù)的重載:

class man

{

private int age;

private String name;

man()//定義一個man類的構(gòu)造函數(shù)--------------- |

{ |

age = 20; |

name = "john"; |

} |

//對象在創(chuàng)建前就有年齡,名字 |

|

man (int a,String s) |-------->重載

{ |

age = a; |

name =s; |

} |

man (String s) |

{ |

name =s; |

} ---------------|

public void fun()

{

System.out.println(name+" "+age);

}

}

public class Main

{

public static void main(String[] args)

{

man jo = new man();

jo.fun();

man jj = new man(1,"BLF");

jj.fun();

man jjj = new man("BLF2");

jj.fun();//打印BLF 0

}

}

PS:一個類中出現(xiàn)同名的函數(shù)名,必須要用的重載。

一個對象創(chuàng)建時如果沒有調(diào)用構(gòu)造函數(shù),就意味著創(chuàng)建失敗。

構(gòu)造函數(shù)的內(nèi)存分配圖(如下圖):對象要進堆,函數(shù)要進棧

構(gòu)造函數(shù)細(xì)節(jié):

構(gòu)造函數(shù),為了方便日后修改信息,所以要加set

構(gòu)造函數(shù)的名前,不可加void等,加了之后就不是構(gòu)造函數(shù),而變成一般函數(shù)了(構(gòu)造函數(shù)的特點2)

錯誤代碼示例

class man

{

private int age;

private String name;

man(int a)

{

age = a;

}

//對象在創(chuàng)建前就有年齡,名字

man (int a,String s)

{

age = a;

name =s;

fun();

}

public void set(String s)

{

name = s;

}

public void fun()

{

System.out.println(name+" "+age);

}

}

public class Main

{

public static void main(String[] args)

{

man jo = new man();

jo.set("BLF2");

jo.fun();

}

}

這段代碼的問題在于:

因為沒有定義構(gòu)造函數(shù)。

默認(rèn)的構(gòu)造函數(shù)是代碼沒有創(chuàng)建構(gòu)造函數(shù)時自動添加,但是上述代碼有構(gòu)造函數(shù)了,但是沒有man(){}找一個類型的構(gòu)造函數(shù),所以報錯

總結(jié)

以上是生活随笔為你收集整理的java的构造特点_JAVA学习第八课(构造函数及其特点)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。