javaconstructor

java: Use Constructor of another class


I have to write a program Student that has 2 constructors (one with parameters). Now I am trying to test it in my testclass StudentTest2 but I just can't get to the constructor of class Student.

My Class Student is:

import java.util.ArrayList;

public class Student{
  
  boolean validMatNumber;
  String name;
  private int matrikelnummer;
  //statisch, da sich die Anzahl der Studenten global ändern muss
  static int numberOfStudents;
  static ArrayList<Student> students = new ArrayList<Student>();
  
  public Student() {
    new Student();
    students.add(this);
    numberOfStudents++;
  }
  
  public Student(String name, int matrikelnummer){
    if (matrikelnummer > 9999 && matrikelnummer < 100000){
      validMatNumber = true;
      this.matrikelnummer = matrikelnummer;
      this.name = name;
      students.add(this);
      numberOfStudents++;  
    }
    else{
      validMatNumber = false;
    }
  }
 
  String printInformation(){
    return ("Name: "+ this.name + " Matrikelnummer: " + this.matrikelnummer);
  }
  void printAllInformation(){
    for(Student aStudent: students){
      System.out.println("Name: " + aStudent.getName() + "Matrikelnummer: " +
                         aStudent.getMatrikelnummer());
    }
  }
  public String getName(){
    return name;
  }
  public int getMatrikelnummer(){
    return matrikelnummer;
  }
  
  boolean isValidMatNumber(){
    //Da die Matrikelnummer 5 stellig sein soll und nicht mit 0 anfangen darf,
    //habe ich diesen Zahlenbreich gewählt
    if (matrikelnummer > 9999 && matrikelnummer < 100000){
      validMatNumber = true;
      return validMatNumber;
    }
    else{
      validMatNumber = false;
      return validMatNumber;
    }
  }

  
  static int getNumberOfStudents(){
    return numberOfStudents;
  }

And my testclass so far is (doesn't work though):

public class StudentTest2{
  
  public static void main(String[] args){
    
    Student s1 = new Student(Peter, 12345);
  }
}

I get the error:

StudentTest2.java:5: error: cannot find symbol
Student s1 = new Student(Peter, 12345);
                         ^
symbol:   variable Peter
location: class StudentTest2

Solution

  • In your constructor, you have defined a String and an int;

    public Student(String name, int matrikelnummer){
    

    And your problem is - you are trying to pass in Peter, 12345, but Peter is not a String. You just need to surround a String with "

    For example:

    Student s1 = new Student("Peter", 12345);