What is my java code missing - won't output anything

Viewed 48

When I run my code in NetBeans, it just says Build Successful, it does not include any output. Can you please help me review my code to find out what it is missing? I have tried everything that I know to do.


public class Lab04 {
   public static void main(String[] args) {
   class Person {
     String name;
     String address;
     String phoneNumber;
     
    public Person(String name, String address, String phoneNumber) {
      this.name = name;
      this.address = address;
      this.phoneNumber = phoneNumber;
    }
    
     @Override
    public String toString() {
      return String.format("Name: "+name+"Address: "+address+"Phone Number: "+phoneNumber);
    }
    
    public static class Student extends Person {
      String status;
      
      public Student(String name, String address, String phoneNumber, String status) {
        super(name, address, phoneNumber);
        this.status = status;
      }
      
      @Override
      public String toString() {
        return String.format("Name: "+name+"Address: "+address+"Phone Number: "+phoneNumber+"Status: "+status);
      }
    }
    public static class Instructor extends Person {
      String rank;
      
      public Instructor(String name, String address, String phoneNumber, String rank) {
        super(name,address,phoneNumber);
        this.rank = rank;
      }
      
      @Override
      public String toString() {
        return String.format("Name: "+name+"Address: "+address+"Phone Number: "+phoneNumber+"Rank: "+rank);
      }
    }
    
    //Testing code - printing statements
    public class TestingCode {
    public static void main(String [] args) {
    Person person = new Person("Peter", "111 Main St.", "2223333");
    System.out.println(person);
    
    person = new Student("Susan", "123 2nd Ave.", "3334444", "Sophomore");
    System.out.println(person);
    
    person = new Instructor("Frank", "4315 Walnut Ct.", "4445555", "Professor");
    System.out.println(person);
    }
    }
}
}
}

Click the link for the assignment description

1 Answers

I made some changes to your code the main mistake was while using inheritance try to use different files so that readability of code increases.

Whenever a child class extends a parent class make sure to completely close the parent class and then start the child else it leads to error.

Also there is no need to override toString() method each time instead you can just create a display method in the parent class and make the extra variables in the child classes private so that they can be accessed using getters and setters.

Main Class:

class Person {
    public String name;
    public String address;
    public String phoneNumber;

    public Person(String name, String address, String phoneNumber) {
        this.name = name;
        this.address = address;
        this.phoneNumber = phoneNumber;
    }
    public void displayDetails() {
        System.out.println("name is "+ this.name);
        System.out.println("address is "+ this.address);
        System.out.println("Phone number is "+this.phoneNumber);

    }

}


class Student extends Person {
    private String status;//made this private so that you can access using getters and setters

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public Student(String name, String address, String phoneNumber, String status) {
        super(name, address, phoneNumber);
        this.status = status;
    }



}

class Instructor extends Person {
    private String rank;//made this private so that you can access using getters and setters

    public Instructor(String name, String address, String phoneNumber, String rank) {
        super(name,address,phoneNumber);
        this.rank = rank;
    }

    public String getRank() {
        return rank;
    }

    public void setRank(String rank) {
        this.rank = rank;
    }
}

Tester Class:(make sure to create this in a seperate file)

public class TestingCode {
    public static void main(String [] args) {
    Person person = new Person("a","b","c");
    person.displayDetails();
    
    System.out.println("-------------\n");
    
    Student y = new Student("Susan", "123 2nd Ave.", "3334444", "Sophomore");
    y.displayDetails();
    System.out.println(y.getStatus());
    
    System.out.println("-------------\n");
    
    Person y1= new Student("Frank", "4315 Walnut Ct.", "4445555", "Sophomore");//dynamic binding  from parent to child
    y1.displayDetails();
    
    System.out.println("-------------\n");
    
    Instructor y2= new Instructor("Frank", "4315 Walnut Ct.", "4445555", "Professor");
    y2.displayDetails();
    System.out.println(y2.getRank());
    }
    }
Related