繁体   English   中英

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

[英]How to call a class of instance variables through a method of another class

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

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);
}

带变量的class如下

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;
}

我认为你以错误的方式接近你的课程设计。 由于这是家庭作业,我不想提供解决方案。 等级 class 应该不在乎它是主要还是次要。 成绩是学生参加课程所获得的东西。 该课程是主修课程还是副修课程是学生课程的一个属性。 课程没有主要/次要属性。

要计算该专业的平均分、总分等,您需要迭代学生课程中属于该专业的课程的成绩。 学生 class 可以有一个名为 computeMajorGPA() 或 computeGPA(some enum) 的方法。

我建议您避免使用复数的类。 我认为代表单个对象的类是更好的设计,多个对象应该由一个集合处理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM