欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Java是通過什么機制來確保對象初始化呢?-創(chuàng)新互聯

在 Java 中,無論是對象,還是基本類型,都不允許在未經初始化的情況下使用它們;否則,Java 編譯器就會熱情地提醒你——請初始化后再使用。

成都創(chuàng)新互聯公司-云計算及IDC服務提供商,涵蓋公有云、IDC機房租用、四川主機托管、等保安全、私有云建設等企業(yè)級互聯網基礎服務,咨詢電話:18982081108

那,Java 是通過什么機制來確保對象初始化呢?

答案就是“構造器”——類的對象要被正確的初始化,就必須先過構造器這一關。

程序清單1-1:一個帶有構造器的簡單類

class?Writer?{
public?Writer()?{
System.out.println("我是一名寫作愛好者");
}

public?static?void?main(String[]?args)?{
new?Writer();
}
}

當使用關鍵字 new 來創(chuàng)建一個對象 Writer 時,就會調用構造器(與類名 Writer 相同的方法Writer())進行初始化,因此上述程序就會輸出“我是一名寫作愛好者”。

構造方法Writer()沒有參數,因此被稱為無參構造器;事實上,無參構造器是可以省略的——編譯器會自動創(chuàng)建一個無參構造器,被稱為“默認構造器”(Java 設計者真的無比明智啊——幫助程序員省去了創(chuàng)建默認構造器的麻煩)。

程序清單1-2:默認構造器

class?Writer?{
public?static?void?main(String[]?args)?{
new?Writer();
}
}

默認構造器并不會一直“默認”存在,如果已經定義了一個構造器,無論有參還是無參,編譯器將不再自動創(chuàng)建默認構造器。

程序清單1-3:不會一直存在的默認構造器

class?Writer?{
public?Writer(String?name)?{
System.out.println(name?+?"是一名寫作愛好者");
}

public?static?void?main(String[]?args)?{
new?Writer();
new?Writer("沉默王二");
}
}

一旦定義了一個有參構造器,那么在創(chuàng)建對象的時候就必須傳遞構造器需要的參數,否則編譯器會提示“The constructor Writer() is undefined”(使用new Writer()創(chuàng)建對象對)——這樣做的好處就是,確保對象在初始化的時候符合類設計的初衷(上例中,Writer 需要指定作者姓名,所以你在創(chuàng)建 Writer 對象時不能不傳遞作者姓名)。

讀王小波的《沉默的大多數》,我喜歡上了一句話:“參差不齊乃幸福本源”。王小波的意思可能是想說:一個能容忍不同觀點與不同的生活方式的社會,才是一個幸福的社會。那么,在 Java 的世界里,也有一個幸福的社會。

由于構造器的特殊性(不能與其他成員方法的名字沖突),導致構造器的名字必須和類名保持一致,也就是說,一個類,只能有一個構造器名。這似乎局限了構造器的使用方式。但其實不然,Java 允許方法重載——可以只有一個方法名,但方法的參數列表可不盡相同;哎,問題就這么巧妙的解決了。

程序清單2-1:構造方法的重載

class?Writer?{
private?String?name;
private?String?bookName;

public?Writer(String?name)?{
this.name?=?name;
System.out.println(name?+?"是一名寫作愛好者");
}

public?Writer(String?name,?String?bookName)?{
this.name?=?name;
this.bookName?=?bookName;

System.out.println(name?+?"不僅是一名寫作愛好者,還出版了書籍"?+?bookName);
}

public?static?void?main(String[]?args)?{
new?Writer("沉默王二");
new?Writer("沉默王三",?"《Web全棧開發(fā)進階之路》");
}
}

你看,沉默王二沒出版書籍,可以是一名寫作愛好者;沉默王三雖然出版了書籍《Web全棧開發(fā)進階之路》,但仍然和王二是好兄弟,并沒有看不起王二(從來沒說過:“王二,你個渣渣,連本書都沒有出版,好意思說自己是寫作愛好者?”)。是不是很和諧?

Java 該如何區(qū)分重載方法(畢竟參數名相同)呢?上例中,你也看到了,參數個數的不同就可以區(qū)分;另外,參數的類型和順序(不建議使用,因為這樣做會讓代碼難以維護,見下例)也可以用來作為區(qū)分的條件。

程序清單2-2:難以維護的方法重載(靠順序,別這樣!)

class?Writer?{
private?String?name;
private?int?age;

public?Writer(String?name,?int?age)?{
this.name?=?name;
this.age?=?age;
}

public?Writer(int?age,?String?name)?{
this.age?=?age;
this.name?=?name;
}
}

上一篇:Java 流程控制語句

下一篇:Java 訪問權限控制:public、private、protected

微信搜索「沉默王二」公眾號,關注后回復「免費視頻」獲取 500G Java 高質量教學視頻(已分門別類)。

創(chuàng)新互聯www.cdcxhl.cn,專業(yè)提供香港、美國云服務器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網絡助力業(yè)務部署。公司持有工信部辦法的idc、isp許可證, 機房獨有T級流量清洗系統(tǒng)配攻擊溯源,準確進行流量調度,確保服務器高可用性。佳節(jié)活動現已開啟,新人活動云服務器買多久送多久。

名稱欄目:Java是通過什么機制來確保對象初始化呢?-創(chuàng)新互聯
文章路徑:http://aaarwkj.com/article6/dpipig.html

成都網站建設公司_創(chuàng)新互聯,為您提供自適應網站、動態(tài)網站網站設計公司、響應式網站、搜索引擎優(yōu)化網站導航

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

商城網站建設
亚洲欧美午夜福利视频| 国产精品自产拍在线网站| 激情五月开心五月麻豆| 国产精品中文字幕日韩在线| 91久久国产综合久久91| 国产精精精精品欧美日韩| 亚洲黄色片大奶子水多| 日本在线高清不卡免费播放| 观看亚洲一区二区三区大片| 久草热不卡的av在线| 岛国av不卡一二三区| 日本中文字幕三级专区| 青青草免费视频观看在线| 免费av不卡一区二区| 国产一区二区三区在线视频播放| 日本欧美二区在线看| 手机看片黄色福利视频91| 午夜两性做爰免费视频| 国产精品一区久久91| av 一区二区三区av| 国产免费成人黄视频网站| 中文欧美一区二区精品| 欧美日韩精品综合国产| 自由成熟性生活免费视频 | 日韩在线欧美在线一区二区| 中文字幕在线视频黄字幕| 熟女一区二区蜜桃视频| 亚洲黄色成人在线观看| 中文日本强暴人妻另类视频| 国产高清视频在线观看流白浆| 18禁的视频在线观看| 国产亚洲综合精品综合区| 九色91成人在线视频| 黄色免费大片在线播放| 美女av在线免费观看| 免费观看毛片一区二区三区| 麻豆人妻一区二区三区| 2018在线不卡爱视频| 成人中文字幕日韩电影| 色橹橹欧美午夜精品福利| 亚洲少妇插进去综合网|