Ok I am a programming student and need help with a problem, I already have most of it (so I don't need you guys to do my hw :P) but I am having problems with am, and I am not even sure if I am doing it right.

Problem: (The Person, Sruden, Employee, Faculty, and Staff classes) Design a class named Person and its two subclasses named Student and Employee. Make Faculty and Staff subclasses of Employee. A person has a name, address, phone number, and email address. A student has a class status (freshman, sophomore, junior, or senior). Define the status as a constant. An employee has an office, salary, date hired.

Define a class named MyDate

that contains the fields year, month, and day. A faculty member has office hours and a rank. A staff member has a title. Overridde the toString method in each class to display the class name and the person's name.
Draw the UML diagram for classes. Implement the classes. Write a tes program that creates a Person, Student, Employee, Faculty, and Staff, and invokes their toString() methods.

how can i do this Define a class named MyDate ?

public class person {

private String name, address, phone, email;

public person(){
}

public person(String name, String address, String phone, String email){
    this.name = name;
    this.address = address;
    this.phone = phone;
    this.email = email;
}

public String getName(){
    return name;
}

public void setName(String name){
    this.name = name;
}

 public String getAddress(){
    return address;
}

public void setAddress(String address){
    this.address = address;
}

public String getPhone(){
    return phone;
}

public void setPhone(String phone){
    this.phone = phone;
}

public String getEmail(){
    return phone;
}

public void setEmail(String email){
    this.email = email;
}

@Override
public String toString(){
    return getClass().getName() + "\n" + name;
}

}

public class student extends person{

private final String CLASS_STATUS;

public student(String CLASS_STATUS){
    this.CLASS_STATUS =CLASS_STATUS;
}
public String getClassStatus(){
    return CLASS_STATUS;
}

}

public class employee extends person{
private String office,salary;
private MyDate DATE_HIRED;

public employee(){
}

public employee(String office, String salary, MyDate DATE_HIRED){
    this.office = office;
    this.salary = salary;
    this.DATE_HIRED = DATE_HIRED;
}
public String office(){
    return office;
}

public void setOffice(String office){
    this.office = office;
}

 public String getSalary(){
    return salary;
}

public void setSalary(String salary){
    this.salary = salary;
}

public MyDate getMyDate(){
    return DATE_HIRED;
}

}

public class MyDate{
private int month, day, year;

public MyDate(int month, int day, int year){
    this.day = day;
    this.month =month;
    this.year = year;   
}

}

public class faculty extends employee {
private String office_hours, rank;
public faculty(){
}

public faculty(String office_hours, String rank){
    this.office_hours = office_hours;
    this.rank = rank;
}
public String getOfficeHours(){
    return office_hours;
}

public void setOfficeHours(String office_hours){
    this.office_hours = office_hours;
}

 public String getRank(){
    return rank;
}

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

}

public class staff extends employee{
private String title;

public staff(){
}

public staff(String title){
    this.title = title;
}

public String getTitle(){
    return title;
}

public void setTitle(String title){
this.title =title;
}

}

public class test {

/**
 * @param args the command line arguments
 */

public static void main(String[] args) {
    person person = new Person("John Doe", "123 Somewhere", "415-555-1212", "johndoe@somewhere.com");
    person student = new  Student("Mary Jane", "555 School Street", "650-555-1212", "mj@abc.com", "junior");
    person employee = new Employee("Tom Jones", "777 B Street", "408-888-9999", "tj@xyz.com");
    person faculty = new Faculty("Jill Johnson", "999 Park Ave", "925-222-3333", "jj@abcxyz.com");
    person staff = new Staff("Jack I. Box", "21 Jump Street", "707-212-1112", "jib@jack.com");

    System.out.println(person.toString() + "\n");
    System.out.println(student.toString() + "\n");
    System.out.println(employee.toString() + "\n");
    System.out.println(faculty.toString() + "\n");
    System.out.println(staff.toString() + "\n");
    }

}

in the main method how to creates Employee?

i do ilke that

Person employee=new Employee("jo" , 12.600 ); 

but there is a red line

how to do this ?

The constructor of employee takes three arguments, but you use only two arguments.

public employee(String office, String salary, MyDate DATE_HIRED)

Hence a valid employee construction would be:

employee foo = new employee("Engine Company", "5000", new MyDate(4, 7, 2012)

Keep in mind that your employee class is named employee and NOT Employee. You might want to fix that, although my example runs on your current code.

EDIT: I also noticed that you are inconsistent with capital letters. For example:

person person = new Person("John Doe", "123 Somewhere", "415-555-1212", "johndoe@somewhere.com");

In that line of code you have two classes: person and Person. Please be consistent, because otherwise it will never work. You only have a class person, not a class Person.

Edited 4 Years Ago by Kashaku

This article has been dead for over six months. Start a new discussion instead.