title: Why does this class have two constructors?
body: <p>I see this in the slide that aims to illustrate constructors. I'm confused now because it has two constructors that have the same job accept setting gpa to zero in the second one. Why does the coder need to repeat <code>this.id = id;  this.name = name;</code> again? Why does this class even need two constructors?    </p>
  
  <pre><code>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 &amp;&amp; name.equals(other.name) 
                         &amp;&amp; gpa == other.gpa;
        }
        public String toString(){
          return name + " " + id + " " + gpa;
        }
        public void setName(String name){
          this.name = name;
        }
        public double getGpa(){
          return gpa;
        }
      }
  </code></pre>