Java 如何通过另一个类的方法调用实例变量类

Java 如何通过另一个类的方法调用实例变量类,java,system,project,Java,System,Project,我正在为学校做一个项目,要求我为学校建立一个等级体系 我很难理解为什么当我有一个公共变量类时,不允许在另一个类的方法中调用它们。有人能举个例子或解释一下这是如何工作的吗 public void AddEngGrade(Grades obj) { Scanner sc1 = new Scanner(System.in); System.out.println("Which Grade would you like to enter"); System.out.println

我正在为学校做一个项目,要求我为学校建立一个等级体系 我很难理解为什么当我有一个公共变量类时,不允许在另一个类的方法中调用它们。有人能举个例子或解释一下这是如何工作的吗

public void AddEngGrade(Grades obj)
{
Scanner sc1 = new Scanner(System.in);


System.out.println("Which Grade would you like to enter");
System.out.println("");
System.out.println("Major");
System.out.println("Minor");
System.out.println("Other");
System.out.println("");

String gr = sc1.nextLine();

if(gr.equals("Major"))
{
  System.out.print("Please enter the grade here - ");
  obj.EngMajor = sc1.nextInt();
  obj.EngMajPoints += obj.EngMajor;
  obj.EngMajorTot++;
  obj.EngMajAvg = (obj.EngMajPoints/2)*(.6);
}
包含变量的类如下所示

import java.util.*;
public class Grades
{
public int EngMajor = 0;
public int EngMinor = 0;
public int EngOther = 0;
public int EngMajorTot = 0;
public int EngMinorTot = 0;
public int EngOtherTot = 0;
public double EngMajAvg = 0;
public double EngMinAvg = 0;
public double EngOtAvg = 0;
public int EngMajPoints = 0;
public int EngMinPoints = 0;
public int EngOtPoints = 0;
}

我认为你对待课程设计的方式是错误的。由于这是一个家庭作业,我不想提供一个解决方案。年级班不应该在意它是主修课还是辅修课。分数是学生修完一门课程后得到的分数。该课程是否算作主修或辅修是学生课程的一个属性。课程没有主修/辅修属性

要计算专业的平均分、总分等,您需要迭代学生课程中属于专业一部分的课程的分数。学生类可以有一个名为computeMajorGPA()或computeGPA(某些枚举)的方法。
我建议您避免使用复数形式的类。我认为表示单个对象的类是更好的设计,多个对象应该由一个集合处理。你说的“不允许调用它们”是什么意思?您当前看到的错误是什么?(我要指出的是,这些名称并不遵循Java命名约定,公共字段在我看来几乎总是一个坏主意,但这是另一回事。)您从这段代码中看到了什么样的失败或错误消息?我在编写Bryan.AddEngGrade(Grades)时收到了一个错误,即找不到符号;很抱歉,我是java的新手。