摘要:初始化與清理構(gòu)造器通過來(lái)創(chuàng)建類的對(duì)象。如果一個(gè)類沒有顯式提供構(gòu)造器,則編譯器會(huì)為該類自動(dòng)生成一個(gè)默認(rèn)構(gòu)造器。構(gòu)造器采用與類名相同的名稱。
初始化與清理 構(gòu)造器
通過new來(lái)創(chuàng)建類的對(duì)象。每當(dāng)調(diào)用new來(lái)創(chuàng)建對(duì)象時(shí),java會(huì)調(diào)用構(gòu)造器對(duì)象進(jìn)行初始化。初始化完畢,意味著這個(gè)對(duì)象已經(jīng)準(zhǔn)備好對(duì)外提供服務(wù)了。
如果一個(gè)類沒有顯式提供構(gòu)造器,則編譯器會(huì)為該類自動(dòng)生成一個(gè)默認(rèn)構(gòu)造器。
構(gòu)造器采用與類名相同的名稱。
class Rock { Rock() { //This is the constructor System.out.println("This is the constructor"); } }重載
Java支持構(gòu)造器和方法的重載(不是重寫override)
區(qū)分重載方法的簽名:方法名+參數(shù)列表
通過方法的簽名來(lái)區(qū)分重載,所以返回類型不作為區(qū)分重載的因素。
this關(guān)鍵字對(duì)當(dāng)前對(duì)象的引用
有了this關(guān)鍵字可以實(shí)現(xiàn)在構(gòu)造器中調(diào)用其他重載構(gòu)造器,如:
class Rock { public int id; Rock(int id) { this.id = id; } Rock() { this(1); } }初始化
對(duì)類變量的初始化有兩種方法:
在申明時(shí)直接初始化
顯式初始化
在構(gòu)造器內(nèi)進(jìn)行初始化
初始化順序:
通過new創(chuàng)建對(duì)象時(shí),對(duì)象的初始化順序:
對(duì)申明的變量進(jìn)行變量的默認(rèn)值的初始化:變量的申明可以散落在類的定義的不同位置,但初始化時(shí),會(huì)按申明的先后順序,完成初始化然后調(diào)用構(gòu)造函數(shù)進(jìn)行初始化;
調(diào)用構(gòu)造器:如果變量未在申明時(shí)就完成初始化,則可以通過構(gòu)造器完成初始化;
靜態(tài)數(shù)據(jù)的初始化優(yōu)先于非靜態(tài)數(shù)據(jù);
初始化例子public class Rock { public int id = 1; //initialization when define public String name; public static String greeting1; public static String greeting2; public static int age = 1000; static{ greeting1 = "Hello"; //explicitly initialization } Rock(String name) { this.name = name; // initialization in constructor greeting2 = "Hi"; } public String location1 = "Shanghai"; public String getName(){ return name; } public String location2 = "China"; public String getLocation(){ return location1 + " - " + location2; } public void greeting(){ System.out.println(this.greeting); } public static void main(String[] args){ Rock r = new Rock("Robin"); System.out.println("Name: " + r.getName()); System.out.println("Location: " + r.getLocation()); r.greeting(); } }數(shù)組初始化
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/75867.html
摘要:前言編程思想這本書,陸陸續(xù)續(xù)讀了年,終于基本都瀏覽了一遍。每個(gè)對(duì)象對(duì)外暴露接口,程序通過對(duì)象暴露的接口向?qū)ο蟀l(fā)送消息,獲取該對(duì)象的服務(wù)能力。異常處理異常處理,為編寫程序階段提供了一種預(yù)見性的防止程序崩潰的出路。 前言 《Java編程思想》這本書,陸陸續(xù)續(xù)讀了1年,終于基本都瀏覽了一遍。通過這本書,試圖理解作者的想法,才真的體會(huì)到Java思想。感謝本書的作者,不僅講述了java的語(yǔ)法,更...
摘要:編寫一個(gè)程序編譯器一些規(guī)則程序文件的后綴為每個(gè)文件名最多包含一個(gè)類,也可以沒有類當(dāng)指定某個(gè)類為時(shí),該類的類名必須與文件名相同關(guān)于寫代碼時(shí),需要用到其他類庫(kù),最常用的就是自帶的類庫(kù)。 編寫一個(gè)Java程序 編譯器:ideal 一些規(guī)則 java程序文件的后綴為.java 每個(gè).java文件名最多包含一個(gè)public類,也可以沒有public類 當(dāng)指定某個(gè)類為public時(shí),該類的類名必須...
摘要:設(shè)計(jì)模式是以面向?qū)ο缶幊虨榛A(chǔ)的,的面向?qū)ο缶幊毯蛡鹘y(tǒng)的的面向?qū)ο缶幊逃行┎顒e,這讓我一開始接觸的時(shí)候感到十分痛苦,但是這只能靠自己慢慢積累慢慢思考。想繼續(xù)了解設(shè)計(jì)模式必須要先搞懂面向?qū)ο缶幊?,否則只會(huì)讓你自己更痛苦。 JavaScript 中的構(gòu)造函數(shù) 學(xué)習(xí)總結(jié)。知識(shí)只有分享才有存在的意義。 是時(shí)候替換你的 for 循環(huán)大法了~ 《小分享》JavaScript中數(shù)組的那些迭代方法~ ...
摘要:代碼之髓讀后感如何高效的學(xué)習(xí)語(yǔ)言技術(shù)讀后感王垠如何掌握程序語(yǔ)言代碼之髓這本書里提出了三種學(xué)習(xí)語(yǔ)言的方法如何高效的學(xué)習(xí)語(yǔ)言在比較中學(xué)習(xí)在歷史中學(xué)習(xí)在實(shí)踐中學(xué)習(xí)在比較中學(xué)習(xí)通過比較多種語(yǔ)言,總結(jié)出某種語(yǔ)言的獨(dú)有特點(diǎn),以及多種語(yǔ)言的共有特點(diǎn)。 title: 代碼之髓讀后感——如何高效的學(xué)習(xí)語(yǔ)言date: 2017-07-08 17:17:00categories: 技術(shù)tags: 讀后感 ...
摘要:日期和時(shí)間使用類完成讀取設(shè)置比較和計(jì)算日期與時(shí)間。單元測(cè)試單元測(cè)試是從編寫開始,貫穿于整個(gè)開發(fā)周期的一種用于保證函數(shù)類和方法的行為與預(yù)期一致的編程方法。是應(yīng)用的單元測(cè)試框架的業(yè)界標(biāo)準(zhǔn),其他幾個(gè)可選框架是行為驅(qū)動(dòng)開發(fā)行為驅(qū)動(dòng)開發(fā)有兩種方式和。 《php之道》閱讀地址:http://wulijun.github.io/php-the-right-way/#code_style_guide ...
閱讀 1276·2023-04-26 01:38
閱讀 1473·2021-11-15 11:39
閱讀 3264·2021-09-22 15:43
閱讀 2660·2019-08-30 15:55
閱讀 2059·2019-08-30 14:17
閱讀 2861·2019-08-29 14:16
閱讀 3072·2019-08-26 18:36
閱讀 2616·2019-08-26 12:19