用户定义类的代码错误

时间:2015-11-04 03:48:26

标签: java

我有两个需要使用的程序。 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在Grade"。

中拥有私人访问权限

据我了解,我错过了一种获取成绩的mutator方法。但是,我不确定我应该如何编码以及从哪里开始。

这是我到目前为止所尝试的:

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

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

    }
}

除此之外,该计划的第二部分还包括以下内容:

在GradeClient类的主要方法

Grade g = new Grade( "A" );

编译它会产生错误" string无法转换为char。

我对如何开始创建GradeClient.java完全感到困惑,因为前面的示例公共字符串和公共类都是for accessor方法和mutator方法,但我不确定它们是怎样的工作。

有人可以向我解释我应该如何启动GradeClient.java以及公共字符串和公共类的区别?另外,它是什么意思"在GradeClient类的主要方法中,只是在void main中,或者它完全不同。

2 个答案:

答案 0 :(得分:1)

在类的主要方法中,GradeClient意味着您必须放入

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

此外,您有g.letterGrade = 'A';,请使用g.setLetterGrade('A');

答案 1 :(得分:0)

您已将letterGrade声明为Grade的私有,这意味着它只能在Grade内直接访问。

如果要在实例化后更改letterGrade的值,则可以使用定义的公共方法setLetterGrade,如

g.setLetterGrade('A');

关于编译错误"字符串无法转换为char",因为在行Grade g = new Grade( "A" );中,您在构造函数的参数中使用了双引号。使用双引号表示您正在定义String。但是,在构造函数中,您将参数定义为char。如果您想使用char作为参数,那么在实例化Grade

时应该使用单引号
Grade g = new Grade( 'A' );