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

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

靜態內部類中可以定義靜態方法嗎?如果可以,怎樣訪問外部類中的非靜態變量和靜態變量及它所在的靜態內部類中的不同變量?靜態內部類中可以定義靜態變量嗎?如果可以外部類如何訪問它呢?

??public class HelloWorld {????
???? // 外部類中的靜態變量score
???? private static int score = 84;?????
???? // 創建靜態內部類
???? public? static? class SInner {
???????? // 內部類中的變量score
???????? int score = 91;??????
???????? public static void show() {
???????????? System.out.println("訪問外部類中的score:" + HelloWorld.score? );
???????????? System.out.println("訪問內部類中的score:" + score);
???????? }
???? }
???? // 測試靜態內部類
???? public static void main(String[] args) {
???????? // 直接創建內部類的對象
???????? SInner si=new SInner();
???????? // 調用show方法
???????? si.show();
???? }

正在回答

2 回答

。。eclipse里面沒有報錯??!

package com.shiyan;


public class Outer2 {

? ?static int score1=150; ? ? ? ? ? //外部類的靜態變量

? ?int score2=61; ? ? ? ? ? ? ? ? ? //外部類的普通變量

? ?

? ?public static class Inner{ ? ? ? //靜態內部類Inner

? static int score1=89; ? ? ? ? ?//靜態內部類的靜態變量

? int score2=88; ? ? ? ? ? ? ? //靜態內部類的普通變量

??

? public static void show(){ ? ? ? ?//靜態內部類中的靜態方法

? System.out.println(Outer.score1);

? System.out.println(new Outer().score2);//為什么不能用Outer.this.score2

? System.out.println(score1);

? System.out.println(new Inner().score2);//為什么不能直接用score2;

? }

? ?}

? ?//內部測試類

? ?public static void main(String[] args) {

System.out.println(score1);

System.out.println(new Outer().score2);

// Inner.show();

/*Inner in=new Inner();

in.show();*/

new Inner().show();

}

??

}

輸出:

150

62

99

62

89

88


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

激流勇進__

你的輸出結果是錯誤的!
2016-03-22 回復 有任何疑惑可以回復我~
#2

wswzh0329 回復 激流勇進__

。。是錯了!! 代碼中new Outer2().... 第三個應該是150 62應該是61 對了吧 感謝指出,不過重點不在結果 現在也已經早就解決了注釋中的兩個問題!再次感謝你能認真的幫我看代碼解決問題,謝謝!
2016-03-25 回復 有任何疑惑可以回復我~
#3

激流勇進__ 回復 wswzh0329

不客氣。慕課網能提供這么好的學習交流平臺才是最該感謝的!
2016-03-25 回復 有任何疑惑可以回復我~
#4

wswzh0329 回復 激流勇進__

對對對 學這種東西還是得多交流 我之前剛剛接觸java的時候,把慕課網中每個小節下面別人的問題都瀏覽了一遍 很多東西就看了概念根本理解不到位
2016-03-25 回復 有任何疑惑可以回復我~
#5

wswzh0329 回復 激流勇進__

。。對了 你能幫我看看這個問題嗎 關于內部類繼承的問題 http://bbs.csdn.net/topics/391920591
2016-03-25 回復 有任何疑惑可以回復我~
查看2條回復

不能定義靜態方法

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

wswzh0329

。。eclipse 里面沒有報錯??! 還有能幫我解決注釋中的問題嗎?謝謝!
2015-10-04 回復 有任何疑惑可以回復我~
#2

saintyyu

為了回復你這個問題,我還特意來注冊個賬號,是能定義靜態方法的哈,不僅可以定義靜態方法,還可以定義靜態變量,為什么呢?原因是static修飾了內部類,這時該內部類中所定義的所有方法和變量都默認是static的了,所以你加不加static都沒問題。樓上說不能定義靜態方法是說的非靜態內部類吧?
2015-10-24 回復 有任何疑惑可以回復我~
#3

saintyyu 回復 wswzh0329

要訪問也是很容易的啊,new一個對象就可以訪問其變量了撒。
2015-10-24 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

靜態內部類中可以定義靜態方法嗎?如果可以,怎樣訪問外部類中的非靜態變量和靜態變量及它所在的靜態內部類中的不同變量?靜態內部類中可以定義靜態變量嗎?如果可以外部類如何訪問它呢?

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

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

幫助反饋 APP下載

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

公眾號

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