在Java中使用setter和getter从另一个类调用方法

在Java中使用setter和getter从另一个类调用方法,java,class,variables,object,methods,Java,Class,Variables,Object,Methods,我需要一些帮助,因为我完全迷路了。我试图调用我在另一个类中创建的一个方法来输出用户输入的平均分数,但我不确定哪里出了问题。我不知道如何调用我的另一个类,我读到使用对象作为变量在Java中不起作用,但我不知道如何让它通过在另一个类中应用方法来给出正确的等级 下面是包含方法的类 public class Assignment { private double score; public double getScore(){ return score; }

我需要一些帮助,因为我完全迷路了。我试图调用我在另一个类中创建的一个方法来输出用户输入的平均分数,但我不确定哪里出了问题。我不知道如何调用我的另一个类,我读到使用对象作为变量在Java中不起作用,但我不知道如何让它通过在另一个类中应用方法来给出正确的等级

下面是包含方法的类

public class Assignment {

    private double score;

    public double getScore(){
        return score;
    }
    public void setScore(double newScore){
        score = newScore;
    }

    public static void newScore(double a, double b, double c, double d, double f) {

        double score1 = a;
        double score2 = b;
        double score3 = c;
        double score4 = d;
        double score5 = f;

        if (score1 >= 90) {
            System.out.println("Your grade is: " + score1);
            System.out.println("Great job!");
        } else if (score2 >= 80 && score2 < 90) {
            System.out.println("Your grade is: " + score2);
            System.out.println("Not bad!");
        } else if (score3 >= 70 && score3 < 80) {
            System.out.println("Your grade is: " + score3);
            System.out.println("Need a little work");
        } else if (score4 >= 60 && score4 < 70) {
            System.out.println("Your grade is: " + score4);
            System.out.println("Not looking so good.");
        } else if (score5 >= 50 && score5 < 60) {
            System.out.println("Your grade is: " + score5);
            System.out.print("Study harder!");
        } else {
            System.out.println("Yikes!");
        }
    }
}

由于变量
newScore
Assignment
对象,而不是
double
,因此代码
newScore=input.nextDouble()无法编译。我假设您使用输入的数字作为您的
分数
,因此该行应该是

newScore.setScore(input.nextDouble())

因此,下一行应该是

System.out.println(“您当前的成绩是:”+newScore.getScore())

请更换这两条线路,并检查其是否符合您的要求

编辑:

Assignment.java

public class Assignment {

    private double score;

    public double getScore(){
        return score;
    }
    public void setScore(double newScore){
        score = newScore;
    }

    public void checkScore(double a, double b, double c, double d, double f) {
        if (score >= a) {
            System.out.println("Your grade is: " + score);
            System.out.println("Great job!");
        } else if (score >= b && score < a) {
            System.out.println("Your grade is: " + score);
            System.out.println("Not bad!");
        } else if (score >= c && score < b) {
            System.out.println("Your grade is: " + score);
            System.out.println("Need a little work");
        } else if (score >= d && score < c) {
            System.out.println("Your grade is: " + score);
            System.out.println("Not looking so good.");
        } else if (score >= f && score < d) {
            System.out.println("Your grade is: " + score);
            System.out.print("Study harder!");
        } else {
            System.out.println("Yikes!");
        }
    }
}
import java.util.Scanner;

public class Grades {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        Assignment newScore = new Assignment();
        System.out.println("Enter your test score: ");
        newScore.setScore(input.nextDouble());
        newScore.checkScore(90, 80, 70, 60, 50);
        System.out.println("Your current grade is: " + newScore.getScore());
    }

}

我不太明白你的问题。您有一个接受多个分数的方法,它有一组if-else语句来确定要打印的消息

如果第一次得分超过90分,请执行此操作, 若第一个分数的条件不满足,则检查第二个分数值。 然后如果第二个条件不满足,那么检查第三个分数,看看它是否满足一定的分数。。废话

如果你想让作业课保留一组分数并最终打印出每个分数,那么就这样做

修改作业类别是为了允许一次保留多个分数。为了能够保存多个分数,您必须将分数变量至少更改为数组或列表。也就是说,
List scores=new ArrayList()

然后将setter方法修改为类似“addScore(double score)”

在“newScore”方法中,使用循环遍历分数,为每个作业输出适当的分数消息

for (Double score : scores) {
    if (score > 90) {   
        System.out.println('blah');
    }
}

注意:上面的代码只是我脑海中输入的东西,我没有使用任何编译器对其进行测试,因此您可能需要对某些语法错误进行返工。

您还没有设置所有的分数。您想调用哪种方法?和
Assignment.newScore(1,2,3,4,5)
newScore是一个对象,您无法将其分配给IntCore,那么我需要如何放置它才能完成newScore方法中的内容?我不知道如何在用户输入分数后完成分数应该是多少。我们应该创建可变的私人分数;然后为它创建一个getter和getter,我需要为每个年级创建一个getter和getter吗?它消除了错误,但没有完成我想要的。我们应该在这个任务中与二传手和传接手一起工作,他们要求为私人双倍分数创建一个变量;然后创建setter和getter来保存分数,但是在用户输入分数后,创建一个方法来说明分数是a、b、c、d还是f。我只是不知道如何准确地度过难关。我知道如何使用setter和getter,并为它们设置我自己的值,但不确定当您有多个选项可供选择时如何使用。我认为应该使用您最初的方法
newScore
检查成绩是否为a
a
b
c
d
f
,所以我修改了这个方法。该方法用于确定分数位于哪个区间,该区间由该方法的参数确定。我还添加了该方法的一个测试用例,其中
a
b
c
d
f
分别为90,80,70,60,50。请试用我更新的代码,并让我了解您的反馈@在这项任务中,我们应该与二传手和三传手一起工作,他们要求为个人双倍得分创建一个变量;然后创建setter和getter来保存分数,但是在用户输入分数后,创建一个方法来说明分数是a、b、c、d还是f。我只是不知道如何准确地度过难关。我知道如何使用setter和getter,并为它们设置自己的值,但不知道在有多个选项可供选择时如何使用。
public void addScore(double score) {
    scores.add(score)
}
for (Double score : scores) {
    if (score > 90) {   
        System.out.println('blah');
    }
}