第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

求大神解答!

求大神解答!

騎驢跑得快 2015-11-29 16:25:21
//外部類HelloWorldpublic class HelloWorld{? ??? ? //外部類的私有屬性name? ? private String name = "imooc";? ??? ? //外部類的成員屬性? ? int age = 20;? ?? //成員內(nèi)部類Inner public class Inner { String name = "愛慕課";? ? ? ? //內(nèi)部類中的方法 public static void show() {? System.out.println("外部類中的name:" +HelloWorld.this.name); System.out.println("內(nèi)部類中的name:" +name); System.out.println("外部類中的age:" + age); } }? ?? //測試成員內(nèi)部類 public static void main(String[] args) {? ? ? ??? ? ? ? //創(chuàng)建外部類的對象 HelloWorld o = new HelloWorld ();?? ? ? ??? ? ? ? //創(chuàng)建內(nèi)部類的對象 Inner inn = o.new Inner();? ? ? ??? ? ? ? //調(diào)用內(nèi)部類對象的show方法 inn.show(); }}以上為源代碼,我有兩個(gè)問題:1、內(nèi)部類中可以創(chuàng)建靜態(tài)方法么?如果能為什么我在內(nèi)部類中的show方法的void前加上static顯示錯(cuò)誤?2、上述的show方法內(nèi)的第一條輸出語句中HelloWorld.this.name中的this去掉是否可以?如果不能的話為什么?求大神解答,在此先謝謝解答的各位了!
查看完整描述

1 回答

已采納
?
憊懶sloth

TA貢獻(xiàn)14條經(jīng)驗(yàn) 獲得超0個(gè)贊

1.說下我的理解:

內(nèi)部類中可以創(chuàng)建靜態(tài)方法,但同時(shí)內(nèi)部類要轉(zhuǎn)為靜態(tài)內(nèi)部類。具體涉及到類的加載順序和相應(yīng)的靜態(tài)常量初始化。因?yàn)槠胀▋?nèi)部類是依賴外部類的,沒有外部類的對象根本獲取不到內(nèi)部類的實(shí)例(可以把它想象成外部類的成員屬性)。而java中靜態(tài)方法是可以直接通過 類名.靜態(tài)方法名 來拿到直接使用的(在類加載時(shí)就已經(jīng)初始化了),如果你不把內(nèi)部類改為靜態(tài)類(想象它變成了靜態(tài)量,脫離了外部類的依賴),就會(huì)違反java語法規(guī)則,因?yàn)樵跊]有外部類的對象的情況下,無法通過 類名.靜態(tài)方法名 獲取那個(gè)方法。

2.由于你的外部類和內(nèi)部類屬性重名,會(huì)發(fā)生模糊匹配,你要是想拿到外部類中的同名屬性值就要加上this

查看完整回答
反對 回復(fù) 2015-11-29
  • 1 回答
  • 0 關(guān)注
  • 1063 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號