首页 > 解决方案 > 如何在java中将一个对象作为参数传递并将它的一些值与另一个对象进行比较

问题描述

我是一名 APCS 学生,目前我们正在学习构建课程。在下面的代码中,我已经编写了我们需要的大部分方法,例如 setGpa、setName 等。我需要最后一个方法的帮助,即 compareToStudent。此方法旨在用于类似 s2.compareToStudent(s1)。所以它应该拿学生 s1 和 s2 的 gpa 并比较它们并打印哪个更高。我知道如何使用 >,< == 和打印行进行比较。

我需要有关如何将 s2 作为参数传递并编写获取 s1 对象的 gpa 和 s2 对象的 gpa 的方法的帮助。如何将对象作为参数传递给该方法,然后使用它来获取值。

请帮忙。谢谢!

import java.util.*; 
public class Student
{
//Private Variables (Available throughout Class)
  private String firstName;
  private String lastName;
  private int grade;
  private double gpa;
  private int studentID;  
  Random rn = new Random();
  public Student(String lName, String fName, int classGrade)

  //Parameter 
  Constructor
  {
  lastName= lName;
  firstName=fName;
  grade=classGrade;
  gpa=0.0;
  studentID=rn.nextInt(201850)+201806;
  }

  public Student() //Default Constructor 
  {
  firstName=null;
  lastName=null;
  grade = 9;
  gpa = 0.00;
  studentID=rn.nextInt(201850)+201806;
  }

  public void printStudentInfo()
  {
  System.out.println("Student Information");
  System.out.println("Name       : " +firstName+" "+lastName);
  System.out.println("Grade      : " +grade);
  System.out.println("Gpa        : " +gpa);
  System.out.println("Student ID : " +studentID);
  System.out.println();
  }
   public void setGpa(double newGpa)
  {
  gpa=newGpa;
  }
  public void setName(String newlastName, String newfirstName)
  {
  firstName=newfirstName;
  lastName=newlastName;
  }
  public void setGrade(int newGrade)
  {
  grade=newGrade;
  }

  // Challenge Methods ///////////////////////
  public void printGrad()
  {
  System.out.println("Here's the graduation status :");  
  if(grade==9)
  System.out.println(firstName+ " " +lastName+ " is expected to graduate in 
   4 years.)");
  if(grade==10)
  System.out.println(firstName+ " " +lastName+ " is expected to graduate in 
  3 years.");
  if(grade==11)
  System.out.println(firstName+ " " +lastName+ " is expected to graduate in 
  2 years.");
  if(grade==12)
  System.out.println(firstName+ " " +lastName+ " is expected to graduate 
  this year.");
  }

  public void compareToStudent()
  {    
  //NEED HELP HERE.
  } 
  }

标签: javadrjava

解决方案


欢迎并祝你学习顺利。compareToStudent 方法需要一个 Student 参数。参数的一个示例是 setGrade 方法中的 newGrade。但是,对于 compareToStudent,参数将是 Student 类型。一旦你有了它, compareToStudent 方法就可以比较它所在的 Student 实例和传入的 Student 的字段值,例如String.compare(this.name, student.name)

当您尝试这样做时,如果您需要更多帮助,请使用更新的代码和更具体的问题来更新问题。


推荐阅读