Почему у этого класса два конструктора?

Я вижу это на слайде, цель которого - проиллюстрировать конструкторы. Я запутался сейчас, потому что у него есть два конструктора, у которых одно и то же задание принимает установку gpa на ноль во втором. Почему кодировщику нужно повторять this.id = id; this.name = name; снова? Зачем этому классу вообще нужны два конструктора?

class Student{
      private int id;
      private String name;
      private double gpa;
      public Student(int id, String name, double gpa){
        this.id = id;  this.name = name;   this.gpa = gpa;
      }
      public Student(int id, String name){
        this.id = id;  this.name = name;   gpa = 0.0;
      }
      public boolean equals(Student other){
          return id == other.id && name.equals(other.name) 
                       && gpa == other.gpa;
      }
      public String toString(){
        return name + " " + id + " " + gpa;
      }
      public void setName(String name){
        this.name = name;
      }
      public double getGpa(){
        return gpa;
      }
    }
5
задан Sandy Muspratt 3 June 2015 в 01:56
поделиться