0
public enum Scale2 {

    GOOD('C') { 
        public char getGrade() { 
            return grade; 
        } 
    },
    BETTER('B') { 
        public char getGrade() { 
            return grade; 
        } 
    },
    BEST('A') { 
        public char getGrade() { 
            return grade; 
        } 
    };

    private char grade;

    Scale2(char grade) {
        this.grade = grade;
    }

    // (1) INSERT CODE HERE
    public char getGrade() { 
        return grade; 
    }

    public static void main (String[] args) {
        System.out.println(GOOD.getGrade());
    }
}

これは、ハリド・ムガル scjp guid のプログラムで、オプションと質問は次のとおりです。これを日食で実行しようとしたとき、非静的グレードは静的コンテキストからアクセスできないと言っていますが、概念的には正しいと思いますが、本が書かれているかどうか混乱しています...再生してください。

(1) に挿入すると、プログラムが C を出力するコードはどれですか?

正しい答えを 2 つ選択してください。

(a) public char getGrade() { return grade; }

(b) public int getGrade() { return grade; }

(c) abstract public int getGrade();

(d) abstract public char getGrade();
4

1 に答える 1

1
GOOD('C')
{ public char getGrade() { return grade; } },
BETTER('B') { public char getGrade() { return grade; } },
BEST('A')
{ public char getGrade() { return grade; } };
private char grade;

サンプル コードの問題gradeは、として宣言されていることですprivate。sogradeはそのサブクラスからアクセスできません。gradeそのサブクラスからアクセスできるか、メソッドを介してScale2アクセスする必要があるのサブクラスのいずれかです。gradesuper.getGrade()

// (1) INSERT CODE HERE
public char getGrade() { return grade; } // inserted!

おそらく正しいコードを投稿に挿入しましたが、そうです、本は間違っています.

于 2011-04-07T05:04:48.023 に答える