在 class 中创建数组并在另一个 class 中访问数组
Create array in class and access the array in another class
我有一个问题要创建一个“人”class,一个继承“人”的“员工”class,一个可以包含的“房间”class Person 的数组 (3) 然后创建所有 setter 和 getter 以及一个方法调用 show() 来打印属性,以及一个 main class 来创建一个“房间”,添加 2 “person”和1个“staff”然后打印所有属性。
我完成了“人”和“员工”class。
class Person{
protected String Name;
protected int Age;
//... i had done the person class including the getter and setter
工作人员 class 继承人 class 并显示输出
class Staff extends Person{
private double Salary;
...
@Override
public void show(){
System.out.println("Name: " + this.Name);
System.out.println("Age: " + this.Age);
System.out.println("Salary: RM " + df.format(this.Salary));
}
我不确定如何在房间 class 中创建数组以及如何在主 class 中访问它。
在主要 class 我应该是 (a) 创建一个房间。 (b) 用你的名字添加一个人。 (c) 添加带有您父亲名字的员工。 (d) 用你母亲的名字添加一个人。 (e) 将所有人员详细信息打印到控制台。
我曾尝试创建一个数组并打印出所有属性,效果很好,但问题要求我创建房间 class 所以我对如何做有点困惑。
class Main{
public static void main(String[] args) {
Person family[] = new Person[3];
family[0] = new Person("Me", 20);
family[1] = new Staff("Papa", 60, 300);
family[2] = new Person("Mama", 55);
for(int i = 0; i<family.length; i++) {
family[i].show();
System.out.println(" ");
}
}
}
请帮我整理房间和主房间class。
是这样的吗?
Room.java:
class Room {
private Person[] persons;
public Room(Person[] persons){
this.persons = persons;
}
public void listAllPersons() {
// loop over array and print details
}
// add getters and setters as you need
}
主要class:
public static void main (String[] args) {
Person persons[] = new Person[3];
persons[0] = new Person("Me", 20);
persons[1] = new Staff("Papa", 60, 300);
persons[2] = new Person("Mama", 55);
Room room = new Room(persons);
room.listAllPersons();
}
Class 房间可以这样实现:
public class Room {
private final int capacity;
private Person[] persons;
private int id;
public Room(int capacity) {
this.capacity = capacity;
this.persons = new Person[capacity];
}
/**
* return true if capacity of the room is not
* exceeded and new person was added successfully
*/
public boolean addPerson(Person pers) {
if (id == capacity) {
return false;
}
persons[id++] = pers;
return true;
}
public void showPersons() {
/*
if you are familiar with streams you can use it instead of a loop,
otherwise remove commented limes
Arrays.stream(persons).forEach(Person::show);
*/
for (var pers: persons)
pers.show();
}
public Person[] getPersons() {
return persons;
}
}
Class 主要 - 您的客户:
public class Main {
public static void main(String[] args) {
Room room = new Room(3);
room.addPerson(new Person(new Person("Me", 20)));
room.addPerson(new Person(new Staff("Papa", 60, 300)));
room.addPerson(new Person(new Person("Mama", 55)));
room.showPersons();
}
}
如有不明之处,欢迎追问。
我有一个问题要创建一个“人”class,一个继承“人”的“员工”class,一个可以包含的“房间”class Person 的数组 (3) 然后创建所有 setter 和 getter 以及一个方法调用 show() 来打印属性,以及一个 main class 来创建一个“房间”,添加 2 “person”和1个“staff”然后打印所有属性。
我完成了“人”和“员工”class。
class Person{
protected String Name;
protected int Age;
//... i had done the person class including the getter and setter
工作人员 class 继承人 class 并显示输出
class Staff extends Person{
private double Salary;
...
@Override
public void show(){
System.out.println("Name: " + this.Name);
System.out.println("Age: " + this.Age);
System.out.println("Salary: RM " + df.format(this.Salary));
}
我不确定如何在房间 class 中创建数组以及如何在主 class 中访问它。 在主要 class 我应该是 (a) 创建一个房间。 (b) 用你的名字添加一个人。 (c) 添加带有您父亲名字的员工。 (d) 用你母亲的名字添加一个人。 (e) 将所有人员详细信息打印到控制台。
我曾尝试创建一个数组并打印出所有属性,效果很好,但问题要求我创建房间 class 所以我对如何做有点困惑。
class Main{
public static void main(String[] args) {
Person family[] = new Person[3];
family[0] = new Person("Me", 20);
family[1] = new Staff("Papa", 60, 300);
family[2] = new Person("Mama", 55);
for(int i = 0; i<family.length; i++) {
family[i].show();
System.out.println(" ");
}
}
}
请帮我整理房间和主房间class。
是这样的吗?
Room.java:
class Room {
private Person[] persons;
public Room(Person[] persons){
this.persons = persons;
}
public void listAllPersons() {
// loop over array and print details
}
// add getters and setters as you need
}
主要class:
public static void main (String[] args) {
Person persons[] = new Person[3];
persons[0] = new Person("Me", 20);
persons[1] = new Staff("Papa", 60, 300);
persons[2] = new Person("Mama", 55);
Room room = new Room(persons);
room.listAllPersons();
}
Class 房间可以这样实现:
public class Room {
private final int capacity;
private Person[] persons;
private int id;
public Room(int capacity) {
this.capacity = capacity;
this.persons = new Person[capacity];
}
/**
* return true if capacity of the room is not
* exceeded and new person was added successfully
*/
public boolean addPerson(Person pers) {
if (id == capacity) {
return false;
}
persons[id++] = pers;
return true;
}
public void showPersons() {
/*
if you are familiar with streams you can use it instead of a loop,
otherwise remove commented limes
Arrays.stream(persons).forEach(Person::show);
*/
for (var pers: persons)
pers.show();
}
public Person[] getPersons() {
return persons;
}
}
Class 主要 - 您的客户:
public class Main {
public static void main(String[] args) {
Room room = new Room(3);
room.addPerson(new Person(new Person("Me", 20)));
room.addPerson(new Person(new Staff("Papa", 60, 300)));
room.addPerson(new Person(new Person("Mama", 55)));
room.showPersons();
}
}
如有不明之处,欢迎追问。