gpt4 book ai didi

java - 从一个单独的类中调用一个 mutator 方法

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:42:36 26 4
gpt4 key购买 nike

我有一个构造函数类:

public class Student
{
// Declare variables
public int studentID;
public String courseName;
public int courseScore;
public char courseGrade;

// Default constructor
public Student()
{
studentID = 1;
courseName = "CIS 2085";
courseScore = 89;
}


//========================================

// Constructor with parameters
public Student(int id, String course, int score)
{
setStud(id, course, score);
}


//========================================

public String toString()
{
return (studentID + " " + courseName + " " + courseScore);
}


//========================================

public void setStud(int id, String course, int score)
{
studentID = id;
courseName = course;
courseScore = score;
}


//========================================

public int getStudentID()
{
return studentID;
}


//========================================

public String getCourseName()
{
return courseName;
}


//========================================

public int getCourseScore()
{
return courseScore;
}


//========================================

public char getCourseGrade()
{
return courseGrade;
}


//========================================

public static char calculateGrade(int courseScore)
{
if (courseScore >= 94)
courseGrade = 'A';

else if ((courseScore >= 85) && (courseScore <= 93))
courseGrade = 'B';

else if ((courseScore >= 75) && (courseScore <= 84))
courseGrade = 'C';

else if ((courseScore >= 65) && (courseScore <= 74))
courseGrade = 'D';

else
courseGrade = 'F';

return courseGrade;
}

//========================================

}

到目前为止,我有我的实现类,如下所示:

import java.util.*;

public class StudentImplementation
{
// Sllow 'console' to receive input from the user
static Scanner console = new Scanner(System.in);

// Method main
public static void main(String[] args)
{
// Declare variables

// Object 1: first. Uses the default constructor.
Student first = new Student();

//System.out.println(first);

// Object 2: second.
Student second = new Student(3, "Advanced Java Programming", 83);

//System.out.println(second);

// Use calculateGrade method to receive grade for object 1

char grade = Student.calculateGrade(first.getCourseScore);
System.out.println(grade);
}
}

所以我尝试使用我的 calculateGrade 方法根据我的对象 courseScore 输出适当的成绩。

Student 类与我的实现类位于不同的文件中。

当我运行这个程序时,我收到错误:

Exception in thread "main" java.lang.NoSuchMethodError: Student.calculateGrade(I)C
at StudentImplementation.main(StudentImplementation.java:27)

最佳答案

这是您的 Student 类的一个更清晰的版本,可以执行您希望它执行的操作。我已经删除了不需要的变量和方法,并稍微清理了一下。

我这样做的原因是因为现在,您的代码包含很多没有意义的东西(例如,向方法添加参数,以便您可以在方法本身中设置参数值,然后返回它,在构造函数中使用 setter 方法)。

public class Student {
public int studentID;
public String courseName;
public int courseScore;

public Student() {
this(1, "CIS 2085", 89);
}

public Student(int id, String course, int score) {
this.studentID = id;
this.courseName = course;
this.courseScore = score;
}

@Override
public String toString() {
return studentID + " " + courseName + " " + courseScore;
}

public int getStudentID() {
return studentID;
}

public String getCourseName() {
return courseName;
}

public int getCourseScore() {
return courseScore;
}


public char getCourseGrade() {
if (courseScore >= 94) {
return 'A';
} else if (courseScore >= 85 && courseScore <= 93) {
return 'B';
} else if (courseScore >= 75 && courseScore <= 84) {
return 'C';
} else if (courseScore >= 65 && courseScore <= 74) {
return 'D';
}
return 'E';
}

}

下面是一个示例实现:

public class StudentImplementation {

public static void main(String[] args) {
Student first = new Student(); //default constructor
System.out.println(first.getCourseGrade());
Student second = new Student(3, "Advanced JAVA Programming", 83);
System.out.println(second.getCourseGrade());
}

}

关于java - 从一个单独的类中调用一个 mutator 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33245620/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com