2009-05-04 68 views
6
一個類內部定義枚舉的一個問題

此代碼是從SCJP實踐的檢驗採取:有關使用Java

3. public class Bridge { 
4. public enum Suits { 
5.  CLUBS(20), DIAMONDS(20), HEARTS(30), SPADES(30), 
6.  NOTRUMP(40) { public int getValue(int bid) { 
         return ((bid-1)*30)+40; } }; 
7.  Suits(int points) { this.points = points; } 
8.  private int points; 
9.  public int getValue(int bid) { return points * bid; } 
10. } 
11. public static void main(String[] args) { 
12.  System.out.println(Suits.NOTRUMP.getBidValue(3)); 
13.  System.out.println(Suits.SPADES + " " + Suits.SPADES.points); 
14.  System.out.println(Suits.values()); 
15. } 
16. } 

在第8行points被聲明爲私有,並且在第13行它被訪問的,所以從什麼我可以看到我的答案是編譯失敗。但書中的答案另有說明。我在這裏錯過了什麼,或者是書中的錯字?

回答

11

單個外部類中的所有代碼可以在外部類的任何訪問級別訪問任何。

3

首先檢查了線12

System.out.println(Suits.NOTRUMP.getBidValue(3)); 

getBidValue未定義

+0

它被定義在第6行 – Vasil 2009-05-04 06:00:33

0

同樣,內部類可以訪問其外部類的私有成員。