简体   繁体   English

任何人都可以帮助我使用 java 中的“tostring”方法吗?

[英]Can anyone help me with “tostring” method in java?

Im doing an OOP assignment.. It has four classes Person, student and employee both extends person and instructor that extends employee.我正在做一个 OOP 作业。它有四个类人,学生和员工都扩展了人员和讲师,扩展了员工。 . .

I have done Almost everything i could but i cant print out values using tostring method and Cant fill the array.I have used getter setter and all the constructor and methods are there still cant get any output.我已经完成了我能做的几乎所有事情,但我无法使用 tostring 方法打印出值并且无法填充数组。我使用了 getter setter,所有的构造函数和方法仍然无法获得任何 output。 heres the person class and all the remain three classes have been made.继承人 class 并且所有剩余的三个类都已完成。 plus the main file加上主文件

abstract class Person 
{
    protected int Id;//"protected"Only child can use this
    protected String Name;

    public Person() {}


    public Person(int id,String name) 
    {
        this.Id=id;
        this.Name=name;
    }

    public int getId() 
    {
        return this.Id;
    }

    public void setId(int id) 
    {
         this.Id=id;
    }

    public String getName() 
    {
        return Name;
    }

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

    public String toString() 
    { 
        return Id + Name + " is a student "; 
    }


    public static int getMaxID()
    {

        return 0;
    }
////////////////////////////////////////////////////////////////////////////////
public class Employee extends Person 
{
    protected double Salary;
    protected String employeeName;

    public Employee() {}

    public Employee(double salary) 
    {
        this.Salary=salary;
    }

    public Employee(String employeename) 
    {
        this.employeeName=employeename;
    }

    public String getemployeeName() 
    {
        return employeeName;
    }

    public void setemployeeName(String employeename) 
    {
        this.employeeName=employeename;
    }

    public double getSalary() 
    {
        return this.Salary;
    }

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

    public String toString() 
    { 
        return employeeName + " is an instructor earning a salary of " + Salary; 
    }

}
////////////////////////////////////////////////////////////////////////////////
public class Student extends Person
{
    protected int teacherID;
    protected String teacherName;
    protected String studentName;

    public Student() {}

    public Student(int teacherid,String teachername)
    {
        this.teacherID=teacherid;
        this.teacherName=teachername;
    }


    public Student(String studentname) 
    {
        this.studentName=studentname;
    }


    public Student(String teachername, String studentname, Person[] person_array)
    {
        this.teacherName=teachername;
        this.studentName=studentname;
    }

    public int getteacherID() 
    {
        return this.teacherID;
    }

    public void setteacherID(int teacherid) 
    {
         this.teacherID=teacherid;
    }

    public String getteacherName() 
    {
        return teacherName;
    }

    public void setteacherName(String teachername) 
    {
        this.teacherName=teachername;
    }

    public String toString() 
    { 
        return studentName + " is a student "; 
    }

}
////////////////////////////////////////////////////////////////////////////////
public class Instructor extends Employee
{
    int[] studentID=new int[10];
    protected String instructorName;

    public Instructor(String instructorname) 
    {
        this.instructorName=instructorname;
    }

    public Instructor(String instructorname, double salary) 
    {
        this.instructorName=instructorname;
        this.Salary=salary;
    }

    public double getSalary() 
    {
        return Salary;
    }

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

    public String getinstructorName() 
    {
        return instructorName;
    }

    public void setinstructorName(String instructorname) 
    {
        this.instructorName=instructorname;
    }

    static void findStudents(Person[] person_array)
    {

    }

    public String toString() 
    { 
        return instructorName + " is an instructor earning a salary of " + Salary; 
    }


}
////////////////////////////////////////////////////////////////////////////////
//CIS 459.23 Lab 2
//Due Oct 30 (Sunday)
//OSU wants you write some classes for their Personnel Record System. To make it simple,
//consider only 4 classes: Person, Employee, Instructor and Student. The following figure
//illustrates the relationship between these 4 classes. The Person class is the parent class of the
//Employee class and the Student class. The Employee class is the parent class of the Instructor
//class.
//The following are the tasks you need to complete for each of these classes.
// Create appropriate fields for each class. Necessary fields are listed. Add your own fields if
//needed. Some fields need to have appropriate constraint. Use your own way to make sure
//that these constraints are satisfied.
//o Person
//ID: int, starting from 1 and should be unique
//Name: String
//o Employee
//Salary: double and should not be negative
//o Student (For simplicity, assume that a student has at most 1 teacher)
//TeacherID: int. It’s his/her instructor's ID. 0 if no instructor is given
//TeacherName: String
//o Instructor:
//  StudentIDArray: int array. An array of students’ IDs of this instructor. Set the
//  array size to be 10, initially all 0s, assuming an instructor won’t have more than
//  10 students.
//   All the above fields are private and only accessible through the access methods.
//   A “toString()” method for each class to print out all the available information about the
//  current object. In Person class “toString()” is declared as abstract.
//   A static “findStudents(Person[] personArray)” method in the Instructor class to fill an
//  instructor object’s students ID array, and the corresponding students’ TeacherID fields. See
//  the test program for better understanding.
//   Person should be declared as abstract class.
//   Provide multiple constructors/methods if needed. Check the test.java program to see what
//  constructors/methods are necessary and what actions they should do.
//   If a class can use the parent class method and constructor, use “super” to call it to reduce the
//  redundant code.
//   Make sure this test.java program can work with your class.
//   sample output. From this sample output, you’ll know what information you should print out
//  for a specific object.
//  NOTE: the sample output is not the unique output format of the test program. The real output
//  format depends on how you design the toString() methods in each class. But make sure that your
//  program will print out as much information about each object’s fields as possible, including the
//  Person
//  Instructor
//  Employee Student
//  inherited fields and the fields defined in its own class.
//  HINT:
//      o There is NO main method in any of these 4 classes
//      o To make sure ID is unique across the objects, declare a static “LAST_ID” in the Person
//      class.
//      o Read descriptions in test.java VERY CAREFULLY for better
//      understanding!
//      Submit your Person.java, Emloyee.java, Student.java and Instructor.java files
//      Appendix 1: Test Program
/*
* Lab 2 Program to test the Person, Employee, Student, and Instructor classes.
*/
public class Lab2_Test
{

    public static void main(String[ ] args)
    {
        // uncommenting the following line should produce a compile error.
        // This is for testing of an abstract class.
        // Person p = new Person("George");
        final int MAX_HEADCOUNT = 20;
        Person[] person_array = new Person[MAX_HEADCOUNT];
        // A student named Peter
        person_array[0] = new Student("Peter");
        // An instructor named Peter
        person_array[1] = new Instructor("Peter");
        // An instructor named Sandy and her salary
        person_array[2] = new Instructor("Sandy", 25000);
        // A janitor named Bob
        person_array[3] = new Employee("Janitor Bob");
        // A student named Tom and his instructor is Peter.
        // The constructor needs to do three things:
        // 1: sets this student’s “TeacherName” field to be “Peter”,
        // 2: finds out the ID of the 1st instructor
        // who exists in the person_array so far and named "Peter",
        // and assign it to this student's “TeacherID” field.
        // Set it to be 0 if no instructor named Peter is found in the person_array so far
        // 3: records this student’s ID in the instructor’s StudentArray if such an instructor is found
        // right after executing the following statement
        // person_array[4].TeacherID = 2
        // person_array[4].TeacherName = “Peter”
        // person_array[1].StudentArray[0] = 5
        person_array[4] = new Student("Tom", "Peter", person_array);
        // A student named Maggie and her instructor is Susan
        // right after executing the following statement
        // person_array[5].TeacherID = 0
        // person_array[5].TeacherName = “Susan”
        person_array[5] = new Student("Maggie", "Susan", person_array);
        // An instructor named Susan and her salary
        person_array[6] = new Instructor("Susan", 40000);
        // After all objects are created,
        // instructors need to fill their students arrays,
        // and some students need to fill their TeacherIDs now,
        // since there may exist cases that when a Student object is created with instructor’s name,
        // the corresponding Instructor object hasn’t been created and is not in the person_array.
        // For example, person_array[6] is created after person_array[5].
        // You need to record person_array[5]’s ID in person_array[6]’s studentArray field,
        // and record person_array[6]’s ID in person_array[5]’s TeacherID field.
        // Note: if there are more than one Instructor objects
        // having the same names as a Student object’s TeacherName,
        // it’ll always be the first one’s ID assigned to the Student object’s TeacherID
        Instructor.findStudents(person_array);
        System.out.println("ID and name of all personnel in the array");
        for (int i = 0; i < Person.getMaxID(); i++)
        {
            System.out.println(person_array[i].getId() + ":" + person_array[i].toString());
        }

    }

You are trying to print using this:您正在尝试使用此打印:

for (int i = 0; i < Person.getMaxID(); i++)
        {
            System.out.println(person_array[i].getId() + ":" + person_array[i].toString());
        }

But, the getMaxID() method in your Person class returns a hardcoded 0, so this loop will never iterate, and your print statement will never be reached.但是,您的 Person class 中的getMaxID()方法返回一个硬编码的 0,因此此循环将永远不会迭代,并且您的打印语句将永远不会到达。

EDIT: it makes no sense to even check for a maxId.编辑:甚至检查 maxId 也没有意义。 Check against the length of the array:检查数组的长度:

for (int i = 0; i < person_array.length; i++)
        {
            System.out.println(person_array[i].getId() + ":" + person_array[i].toString());
        }

toString() method toString() 方法

is object class method so it just use for show your object as string format if you use eclipse ALT+SHIFT+S and generate toString() Method. is object class method so it just use for show your object as string format if you use eclipse ALT+SHIFT+S and generate toString() Method. after that you put your person object is System.out.println(person).之后你把你的人 object 是 System.out.println(person)。 to show you Person details.向您显示人员详细信息。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM