Java 学生班。如何根据单位输入打印成绩?

Java 学生班。如何根据单位输入打印成绩?,java,Java,输出: import java.util.Scanner; public class StudentTest { public static void main(String[] args){ Student student = new Student(0, " ", 0); Scanner scan = new Scanner(System.in); int ID; String name; double unitsTaken; String grade = ""; System.o

输出:

import java.util.Scanner;
public class StudentTest {


public static void main(String[] args){
Student student = new Student(0, " ", 0);

Scanner scan = new Scanner(System.in);

int ID;
String name;
double unitsTaken;
String grade = "";

System.out.println("Student information:");
System.out.print("Student ID: ");
ID = scan.nextInt();
student.setID(ID);

scan.nextLine();
System.out.print("Student Name: ");
name = scan.nextLine();
student.setName(name);


System.out.print("Total Number of Units Completed: ");
unitsTaken = scan.nextDouble();
student.setUnits(unitsTaken);


    student.getGrade(grade);

    System.out.println("\nUpdated Student information");
    System.out.println("Student ID: " + ID);
    System.out.println("Student Name: " + name);
    System.out.println("Total Number of Units Completed: " + unitsTaken);
    System.out.println("Class standing: " + grade);
}


}

班级站姿不会打印出来。我想根据输入的单位数量打印出来。为什么我的方法不起作用?

简而言之,你的问题是,“两个属性如何依赖于一个字段?”所讨论的字段是单位,它应该只有一个setter或“mutator”方法。对于两个属性getUnit和getGrade,应该有两个getter或accessor方法。e、 g

Student information:
Student ID: 123123
Student Name: john
Total Number of Units Completed: 34

Updated Student information
Student ID: 123123
Student Name: john
Total Number of Units Completed: 34.0
Class standing: 
它不应使用以下参数:

student.getGrade(grade);
另一个选项是为计算创建静态“实用程序”方法:

student.getGrade();  // better

去掉
setGrade(…)
,改为使用
getGrade()
中当前的公式来计算要返回的字符串。换句话说,计算或“衍生”a级property@HovercraftFullOfEels比我快。但是更具体地说:您从未在任何地方调用
setGrade()。您只需调用
setUnits()
,然后调用
getGrade()
@HovercraftFullOfEels如何使其返回字符串?它说不能将double转换为String正如我前面所说的,将
setGrade(…)
中找到的if块移动到
getGrade()
中,并在这些块中返回字符串。我明白了,但我的问题是在Student中调用getGrade()时Test@Tiblack9:但是如果你用这个来修复它,那么
getGrade()
willwork@Tiblack9:您调用的
getGrade()
错误。不要让它接受参数。谢谢你(对不起,我是新来编码的)!。我把System.out.println(等级)放进去;如果我为这两个类制作一个UML图,StudentTest会在图中包含方法吗?或否,因为该方法未在该类中声明?
student.getGrade(grade);
student.getGrade();  // better
public static String getGrade(int units) {
    if (units < 30) {
        return "Freshman";
    } else if (units < 60) {
        return "Sophmore";
    } else if (units < 90) {
        return "Junior";
    } else {
        return "Senior";
    }
}
System.out.println("Student grade: " + Student.getGrade(student.getUnits());