2015-11-04 38 views
0

我有兩個需要使用的程序。 Grade.java和Gradeclient.java。 我爲Grade.java提供以下內容。用戶自定義類的代碼錯誤

public class Grade 
{ 
    private char letterGrade; 

    public Grade(char 1g) 
    { 
    letterGrade = 1g; 
    } 
    public char getLetterGrade() 
    { 
    return letterGrade; 
    } 
    publicvoid setLetterGrade(char 1g) 
    { 
    letterGrade = 1g; 
    } 
} 

,我說「在類級客戶端的主要方法,

Grade g = new Grade('B'); 
g.letterGrade = 'A'; 

這顯示了一個錯誤‘lettergrade在甲級私人通道’。

從我所瞭解的情況來看,我缺少一個用於訪問成績的變種方法。但是,我不確定我應該如何編碼以及從哪裏開始。

這是我迄今爲止嘗試:

public class GradeClient 
{ 
    public static void main(String [] agrs) 
    { 

Grade g = new Grade('B'); 
    g.letterGrade = 'A': 

    } 
} 

除此之外,該計劃的第二部分有以下幾點:

在類GradeClient的主要方法

Grade g = new Grade("A"); 

和編譯它創建的錯誤「字符串不能轉換爲char。

對於如何從以前的示例public string和public class開始創建GradeClient.java,我都完全困惑,它們都是用於訪問方法和增量方法,但我不確定它們是如何工作的。

有人可以向我解釋我應該如何啓動GradeClient.java和公共字符串和公共類的區別?另外,它是什麼意思「在GradeClient類的主要方法中」,就是簡單地在void main中,或者它是完全不同的。

回答

1

在類GradeClient的主要方法意味着你必須把

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

此外,你必須g.letterGrade = 'A';,使用g.setLetterGrade('A');

0

您已經聲明letterGrade爲私有的Grade這意味着它只能在Grade之內直接訪問。

如果你想實例化後改變letterGrade的值,那麼您可以使用您定義的公共方法setLetterGrade

g.setLetterGrade('A'); 

關於編譯錯誤「字符串不能轉換爲char」,這是因爲在行Grade g = new Grade("A");你在構造函數的參數中使用了雙引號。使用雙引號表示您正在定義String。但是,在構造函數中,您將參數定義爲char。如果您想使用char作爲參數,那麼在實例化Grade時應使用單引號。

Grade g = new Grade('A');