導航:首頁 > 研究方法 > java中為什麼要引用構造方法

java中為什麼要引用構造方法

發布時間:2022-07-04 09:51:54

㈠ java程序設計語言中為什麼要引出對象和構造方法這兩個概念,有啥用途!說具體的!

java 是一門面向對象的語言,正所謂 anything is object。每一件事物,每一種類型,都可以看做一個對象。比如一個具體的人,就是一個對象,而對這個具體的人進行了抽象,那麼這就變成了一個類,這個類就是人。不再具體的人,只保有人的公共特徵。這樣,在計算機編程應用,就能更加人性化的去設計程序,而不再是基於內存,基於地址,基於系統中斷,基於運算器,控制器的編程,我們可以按照構造一件事物的邏輯思維去設計程序。比如說:人員表。有多個人構成。但是他們各自具備自己的特徵,但是又有公共屬性,我們就可以把公共屬性抽象出來作為人這個類。具體到個人的時候再實例成具體的對象,並且賦給他們各自的屬性值。而構造方法是一個類中,用於初始化一個對象的方法,必須要有,沒有寫構造方法的,虛擬機默認該類有 類名(){} 的空構造方法,用於初始化對象的各個屬性。

㈡ java子類實例化為什麼需要調用父類構造方法

java中擴展類的初始化過程是這樣的,最初虛擬機會依次遞推找到最上層的父類,執行完類載入與靜態成員的初始化;當main函數中執行代碼,產生某個子類對象時,再依次遞歸找到最上層的父類先進行成員初始化(對象引用沒有直接賦值就初始化為Null),再調用相應的構造器產生對象,然後逐層的進行對象初始化直到最底層的子類。

㈢ java中什麼是構造方法及其作用

無意中翻到這條提問,看了很多回答,發現歧義較重,在這里解答一下,為了避免後邊來的朋友們踩雷
新手學習Java在構造方法這里很容易踩雷,構造方法是用來初始化的,這句勉強沒錯,可構造方法是用來創建對象的,這句就錯了,實際上,在構造方法執行之前,類的內存空間已經開辟完成了,意思就是說對象已經創建了,這步是由new關鍵字來完成的,而構造方法的作用是給類中的變數進行初始化賦值
假設,假設構造方法是用來創建對象用的,就無法解釋抽象類中為什麼允許構造方法的存在,抽象類無法實例化,不能被創建,但是抽象類中允許構造方法的存在,舉例從側面證明一下:
abstract class Animal{
String name;
public Animal() {
System.out.println("抽象父類的無參構造");
}
abstract void eat();
}
class Dog extends Animal{
public Dog() {
super();
System.out.println("子類的無參構造");
}
@Override
void eat(){

}
}
public class Test {
public static void main(String[] args) {
Dog d = new Dog();
System.out.println(d.name);
}
}
隨手敲的很簡陋的一段代碼,不要在意格式上的不嚴謹,領會精神,這段代碼執行後的結果為:
抽象父類的無參構造
子類的無參構造
null

當執行Dog d = new Dog()這句代碼時,大致會分兩步,一是載入類,開辟類的內存空間,這是由new完成的,第二步執行構造方法,為類中的變數初始化賦值,在執行Dog的無參構造時,系統會默認調用父類的無參構造,也就是super(),super關鍵字是對該類的父類進行的引用,它並不是一個對象,這也是個難點,感興趣的可以去查一下,而super()這句代碼可以簡單理解為調用這個類的父類的無參構造
在上述代碼中,父類Animal是一個抽象類,而抽象類不可被實例化,如果構造方法的作用是創建對象,在這一步上邏輯就無法自洽,而實際情況是:抽象類執行了構造方法,但卻沒有創建對象,同時成員變數name也有了初始值null

㈣ java中為什麼要有構造方法

一個對象被創建出來時,經常要先做一些事這個對象才能正常使用,也可以說是准備工作,比如給這個對象賦些初始值,或者先運行一些別的方法。
把那些在創建時要做的事寫在構造方法里,每次創建就會被執行一遍。

就你描述的情況,默認構造方法其實就什麼都沒做啊,但是會有對象創建的時候就要賦值一些成員變數的情況,這種就要自定義構造方法,重載啊。可能你會說為什麼非得要構造的時候就賦值呢,不能對象創建出來,set成員變數就得了。原因:1是麻煩。2是會有很多人創建了對象,忘記了set某些成員變數,然後直接去調用對象的別的方法,這時可能就會由於對象未賦值而拋出異常。

㈤ 為什麼java的子類中必須調用父類的構造方法

csdn博客上有個人說的比較好,參考一下:
子類繼承父類的欄位和方法。
你想那麼子類中從父類繼承的欄位,要誰來初始化呢?
父類中有這些欄位的初始化方式,所以最好的選擇就是用父類的構造方法。
設計者,可能是這么考慮的。
再告訴你一個事,每當你new一個子類對象的時候,子類對象都隱式內置了一個父類對象。
java創建對象的三個步驟就是,申請內存,調用構造方法,返回對象引用。
所以說,為了那個內置的父類對象,也需要進行初始化。

㈥ 學習java一段時間了,突然就不明白為什麼要用構造函數了它有什麼作用呢

在new的時候自動調用,一般用來進行初始化,作用就是方便。

㈦ java中的構造方法是用來幹嘛的怎麼就想到要用構造方法我寫的時候想不到要寫

構造方法就是用來構造一個對象出來的。
一個對象通常有很多屬性,這些屬性通常是定義為private訪問級別的,通常定義了public 的GET SET方法,操作這些屬性。
當new 一個無參數的對象,即調用默認構造方法,這些屬性的值一般就是為空的。
當調用帶參數的構造方法的時候 一般我們是給一些屬性賦值。
所以當你想初始化NEW出來的對象有些值的時候就去調用你自己定義的帶參數構造方法。
其實不難理解 吧 親再好好地去學習一下!

㈧ java為什麼要提供默認構造方法作用是什麼

class Test {
int n;
}
這段沒有人為構造方法
class Test {
int n;
Test(int n) {
this.n=n
}
Test(){
this.n=1;
}
}
這段有人為(的兩種不同參數的)構造方法
默認構造方法的作用和人為構造方法作用差不多,就是假如你不聲明構造方法,他總得調用一個構造方法,但是他又找不到人為定義的,所以就用這個默認的不帶參數的空方法作為構造方法
作用大概就是這樣

㈨ java程序中為什麼要用構造函數 在什麽情況下要用到

數據的初始化是非常重要的,未經初始化的數據很多情況下都不是期望的結果,很多忘記初始化的數據是導致錯誤的根源。構造函數就是提供了一個初始化的地方,可以把初始化數據的代碼寫在構造函數里。

構造方法,顧名思義,就是在你new一個對象的時候就被調用的。當沒有定義構造方法時每個類里都有一個默認的無參的構造方法,此時該類就只有一個構造方法;而當你顯示定義類的構造方法時,那就沒有那個默認的構造方法了,該類所以的構造方法就是定義了的那些構造方法;例如:定義一個Student類:
class Student1{
//不定義構造方法,此時默認的構造方法是Student1();new
//一個對象時只能這樣構造,Student1 s=new Studnet1();

另外再寫一個有定義構造方法的類:
class Student2{
Student(String name);
Student(String name,int age);
}
Student2有兩個構造方法,默認的構造方法就沒有了
創建Student2對象時只能用兩個構造方法

Student2 s2=new Student2("xiaoming");
Student2 s2=new Student2("xiaoqiang",12);

還可以提供更多的構造方法,參數可以任意個,構造對象的時,就根據你定義的構造方法來構造。

閱讀全文

與java中為什麼要引用構造方法相關的資料

熱點內容
健身甩筒鍛煉方法 瀏覽:942
集成吊頂燈安裝方法圖 瀏覽:475
肥胖體脂率測量方法 瀏覽:15
自己用什麼方法去眼袋 瀏覽:650
常用的幾種野外求救方法 瀏覽:443
電動料理機的安裝方法視頻 瀏覽:573
如何更改資費方法 瀏覽:880
水分的計算方法 瀏覽:884
里外雙鎖芯安裝方法 瀏覽:263
甜甜圈發使用方法 瀏覽:155
500卡路里鍛煉方法 瀏覽:894
怎麼讓孩子開竅的方法 瀏覽:618
性癮症的治療方法 瀏覽:377
雞飼料釣草魚方法視頻 瀏覽:244
低危型房顫的治療方法 瀏覽:808
歐姆龍耳溫計使用方法 瀏覽:550
數罪並罰後附加刑的計算方法 瀏覽:828
水電工安裝地線走線方法 瀏覽:574
冬天果樹育苗基質最佳方法 瀏覽:414
靈芝孢子粉食用方法和什麼同吃 瀏覽:621