什麼是java構造函數
建構子是物件導向中的一員,建構函式可以叫做建構器,它的函式名稱與類別名稱相同,不用定義傳回值類型,也沒有特定的回傳值。建構函數是在建構創造時物件時呼叫函數,作用是可以給物件進行初始化,創建物件都必須透過建構函數初始化。一個類別中如果沒有定義過建構函數,那麼該類別會有一個預設的空參數建構函數。如果在類別中定義了指定的建構函數,那麼該類別中的預設建構函數就沒有了。
我們人出生的時候,有些人一出生之後再起名字的,但是有些人一旦出生就已經起好名字的。那我們在java裡面怎麼在物件一旦創建就賦值呢?
1.建構方法的作用:
建構方法功能:對物件進行初始化。
如圖:
2.建構子與普通函數的差異:
(1)一般函數是用來定義物件應該具備的功能。而建構函數定義的是,物件在呼叫功能之前,在建立時,應該具備的一些內容。也就是物件的初始化內容。
(2)建構子是在物件建立時由jvm呼叫, 給物件初始化。一般函數是物件建立後,當物件呼叫該功能時才會執行。
(3)普通函數可以使用物件多次調用,而建構函數在創建物件時調用。
(4)建構子的函式名稱要與類別名稱一樣,而普通的函式只要符合標識符的命名規則即可。
(5)建構子沒有傳回值型別。
3.建構子要注意的細節:
(1)當類別中沒有定義建構子時,系統會指定給該類別加上一個空參數的構造函數。這個是類別中預設的建構子。當類別中如果自訂了建構函數,這時預設的建構子就沒有了。
備註:可以透過javap指令驗證。
(2)在一個類別中可以定義多個建構函數,以進行不同的初始化。多個構造函數存在於類別中,是以重載的形式體現的。因為構造函數的名稱都相同。
class Perosn{ private int id; private String name; private int age; public Perosn(){ cry(); } public Perosn(int id, String name, int age) { this.id = id; this.name = name; this.age = age; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public void cry(){ System.out.println("哇哇哇...."); } }
問題:要求每個小孩出生都會哭,這份程式碼有兩個建構函數,如果需要每個小孩出生都要哭的話,那麼就需要在不同的建構函數中都呼叫cry( )函數,但是這樣子的話造成了程式碼重複問題,那麼要怎麼解決呢?構造程式碼塊。
4.建構程式碼區塊:
建構程式碼區塊作用:給所有的物件進行統一的初始化。
class Perosn{ private int id; private String name; private int age; { cry();// 每个Person对象创建出来都会执行这里的代码 } public Perosn(){ cry(); } public Perosn(int id, String name, int age) { this.id = id; this.name = name; this.age = age; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public void cry(){ System.out.println("哇哇哇...."); } }
具體作用:
1:給物件初始化。物件一建立就運行並且優先於建構函式。
2:與建構子區別
(1)建構程式碼區塊與建構函式的區別,建構程式碼區塊是給所有物件進行統一初始化, 建構子給對應的物件初始化。
(2)建構程式碼區塊的作用:它的功能是將所有建構方法中公共的資訊進行擷取。
例如孩子一出生統一哭
代碼如下:
class Boy { String name; int age; String gender; // 构造代码块,给所有对象进行初始化。 { System.out.println("哭。。。"); } Boy() { System.out.println("无参构造"); } Boy(String n, int a, String g) { name = n; age = a; gender = g; System.out.println("有参构造"); } void run() { System.out.println("跑..."); } } class Demo9 { public static void main(String[] args) { System.out.println(); Boy b = new Boy(); Boy b2 = new Boy("jack", 1, "男"); } }
php中文網,大量的免費Java入門教程,歡迎在線學習!
以上是什麼是java構造函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undress AI Tool
免費脫衣圖片

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Importjava.ioandjava.net.SocketforI/Oandsocketcommunication.2.CreateaSocketobjecttoconnecttotheserverusinghostnameandport.3.UsePrintWritertosenddataviaoutputstreamandBufferedReadertoreadserverresponsesfrominputstream.4.Usetry-with-resourcestoautomati

容器化Java應用:創建Dockerfile,使用基礎鏡像如eclipse-temurin:17-jre-alpine,複製JAR文件並定義啟動命令,通過dockerbuild構建鏡像並用dockerrun測試本地運行。 2.推送鏡像到容器註冊表:使用dockertag標記鏡像並推送到DockerHub等註冊表,需先登錄dockerlogin。 3.部署到Kubernetes:編寫deployment.yaml定義Deployment,設置副本數、容器鏡像和資源限制,編寫service.yaml創建

VSCode中可通過快捷鍵快速切換面板與編輯區。要跳轉至左側資源管理器面板,使用Ctrl Shift E(Windows/Linux)或Cmd Shift E(Mac);返回編輯區可用Ctrl `或Esc或Ctrl 1~9。相比鼠標操作,鍵盤快捷鍵更高效且不打斷編碼節奏。其他技巧包括:Ctrl KCtrl E聚焦搜索框,F2重命名文件,Delete刪除文件,Enter打開文件,方向鍵展開/收起文件夾。

runthewindowsupdatetrubloubleshooterviaSettings>更新&安全> is esseShootsoAtomationfixCommonissues.2.ResetWindowSupDateComponentsByStoppingRealatedServices,RenamingTheSoftWaredWaredWaredSoftwaredSistribution andCatroot2Folders,intrestrestartingthertingthertingtherserviceSteStoceTocle

JavaserializationConvertSanObject'SstateIntoAbyTeSteAmForStorageorTransermission,andDeserializationReconstructstheObjectStheObjectFromThstream.1.toenableserialization,aclassMustimustimplementTheSerializableizableface.2.UseObjectObjectObjectObjectOutputputputputputtreamToserialializeanobectizeanobectementeabectenobexpent,savin

AwhileloopinJavarepeatedlyexecutescodeaslongastheconditionistrue;2.Initializeacontrolvariablebeforetheloop;3.Definetheloopconditionusingabooleanexpression;4.Updatethecontrolvariableinsidethelooptopreventinfinitelooping;5.Useexampleslikeprintingnumber

NumPy數組的使用包括:1.創建數組(如從列表、全零、全一、範圍創建);2.形狀操作(reshape、轉置);3.向量化運算(加減乘除、廣播、數學函數);4.索引與切片(一維和二維操作);5.統計計算(最大值、最小值、均值、標準差、求和及軸向操作);這些操作高效且無需循環,適合大規模數值計算,最終掌握需多加練習。

ahashmapinjavaiSadattrastureturethatStoreskey-valuepairsforefficeFitedReval,插入和deletion.itusesthekey’shashcode()methodtodeTermInestorageLageLageAgeLageAgeAgeAgeAgeAneStorageAgeAndAllowSavereo(1)timecomplexityforget()
