как я могу сравнить две переменные в разных объектах с одним и тем же типом данных?

#java #arrays #oop #compare

#java #массивы #ооп #Сравнить

Вопрос:

           import java.util.Scanner;
public class test{
  public static void main(String[]args){
    Scanner input=new Scanner(System.in);
       SE220Std [] stdDB=new SE220Std[2];
      for(int i=0;i<stdDB.length;i  ){
        System.out.println("enter student's " (i 1) " name,id and gpa respectivly");
            String n=input.next();
    int d=input.nextInt();
    double g=input.nextDouble();
    stdDB[i]=new SE220Std (n,d,g);
    
    
  }
       for(int i=0;i<stdDB.length;i  ){
      System.out.println("student " (i 1) " info:- n" stdDB[i].getName() "n" stdDB[i].getID() "n" stdDB[i].getGPA());
      System.out.println("-----------------");
       }
        for(int i=0;i<stdDB.length;i  ){
          if(stdDB[0].getGPA()<stdDB[i].getGPA()){
            stdDB[0].getGPA()=stdDB[i].getGPA();
          }
          System.out.println(stdDB[0]);
        }
}
}
  
 class SEstd{
  private String name;
  private int id;
  private double gpa;
  
   SEstd () {
     name=null;
    id=0;
    gpa=0;
  }
   public SEstd(String newName,int newID,double newGPA){
     name=newName;
     id=newID;
     gpa=newGPA;
   }
public String getName() {
    return name;
  }

  public void setName(String newName) {
    this.name = newName;
  }
  public int getID() {
    return id;
  }

  public void setID(int newID) {
    this.id = newID;
  }
    public double getGPA() {
    return gpa;
  }

  public void setGPA(double newGPA) {
    this.gpa = newGPA;
  }
}
  

ошибка: левая часть присваивания должна быть переменной
итак, я пытаюсь создать базу данных для студентов, которая сохраняет их имя, идентификационный номер и средний балл в одном объекте, а затем сохраняет каждый объект в массиве. Я хотел добавить функцию, которая отображает самый высокий средний балл, но у меня была ошибка во время тестирования, и я не знал, как изменить свой код
как я могу сравнить средний балл выше от каждого учащегося, чтобы сохранить самый высокий?
Я пробовал использовать несколько способов, но ничего не казалось правильным

Ответ №1:

Вы не можете назначить возврат такого средства получения. Для этого и существуют сеттеры:

 stdDB[0].setGPA(stdDB[i].getGPA());
  

Комментарии:

1. в какой строке вы имеете в виду?

2. @Sarah вместо stdDB[0].getGPA()=stdDB[i].getGPA();