亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

類類型可以創建對象,照你這么說,void d= new void(); 應該也是可以的,可是為什么就不行了?請給解釋。

類類型可以創建對象,照你這么說,void d= new void(); ?應該也是可以的,可是為什么就不行了?請給解釋。

正在回答

2 回答

因為Void這個類的無參構造方法是私有的(private),如圖所示

58a4871e000120cd05000344.jpg

因為 new 對象的時候需要調用這個構造方法,但是私有的無法訪問到,就調用不了,所以就無法通過new的方式來創建類的實例化對象,即使用類的類類型的newInstarce()方法來實例化對象也會拋出異常,如圖所示

58a4872000012c2c05000269.jpg

總結:構造方法的訪問修飾符為私有的(private)的時候,就無法實例化該類了,除非重構個公開的有參構造方法,并調用這個有參的構造方法來實現實例化類的對象。

如下,創建一個Student類

public?class?Student?{
	private?Student()?{?//?私有的無參構造方法
	}

	public?Student(String?name)?{?//?重構一個?公開的?有參?構造方法
		System.out.println(name);
	}
}

實例化對象時如下圖所示。

http://img1.sycdn.imooc.com//58a489980001d4bc05100192.jpg

7 回復 有任何疑惑可以回復我~
#1

昔日情瞳

抱歉一時手快寫錯了,不是重構,而是方法重載! // 重載一個 公開的 有參 構造方法
2017-02-16 回復 有任何疑惑可以回復我~

因為new 是靜態加載類對象,需要調用無參的構造方法,而Void的無參構造方法是私有的,所有不能直接new出來。如果要實例化,只能通過Class.forName()方式。

2 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

類類型可以創建對象,照你這么說,void d= new void(); 應該也是可以的,可是為什么就不行了?請給解釋。

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號