我是Java的新手,我想知道是否可以将对象分配给另一个对象。例如,假设我有一个名为Classroom的对象。在这个教室里,我有椅子,桌子,板等。 椅子,桌子和板子本身就是对象,它们有各自独立的属性,例如椅子腿数,桌腿,板子宽度等等。基本上,我有4个课程。现在我想将椅子,桌子,板子分配为ClassRoom的属性。我不知道该如何解决这个问题。
任何帮助将不胜感激, 提前致谢 酯
答案 0 :(得分:1)
你需要让课堂成为一个&#34;复合&#34; class,一个包含引用你提到的其他类的字段的类。例如,“课堂”可以包含ArrayList<Furnature>
(或称为装备的ArrayList ),您的主席,表格和类似类可以从抽象的Furnature类扩展。然后,您可以提供允许您从ArrayList添加和删除Furnature项的Classroom方法。
答案 1 :(得分:1)
修改:用于添加对象
public final class Classroom {
public Classroom() {
this.tables = new ArrayList<Table>;
this.chairs = new ArrayList<Chair>;
this.boards = new ArrayList<Board>;
}
public void addTable(final Table table) {
this.tables.add(table);
}
public void addChair(final Chair chair) {
this.chairs.add(chair);
}
public void addBoard(final Board board) {
this.boards.add(board);
}
private final List<Table> tables;
private final List<Chair> chairs;
private final List<Board> boards;
}
以及外部,例如来自main
Table table = new Table(param1, param2);
Table anotherTable = new Table(param1, param2);
Chair chair = new Chair(param1, param2);
Board board = new Board(param1, param2);
现在让你的教室:
Classroom classroom = new Classroom();
// adding object
classrooom.addTable(table);
classroom.addChair(chair);
classroom.addTable(anotherTable);
// and so on...
答案 2 :(得分:1)
教室和桌子之间有 has-many 关系(例如)。基本设计如下:
public class Classroom {
List<Table> tables = new ArrayList<Table>();
// you may want to add a table to the classroom
public void addTable(Table table) {
tables.add(table);
}
// you may want to remove one
public void removeTable(Table table) {
tables.remove(table);
}
// here we can replace (a broken) one
public void replaceTable(Table oldTable, Table newTable) {
tables.set(tables.indexOf(oldTable), newTable);
}
// and: the inventory
public List<Table> getTables() {
return tables;
}
}
答案 3 :(得分:0)
我想一个简单的方法就是使用列表
class ClassRoom {
private List<Chair> chairs = new ArrayList<Chair>();
private List<Table> tables = new ArrayList<Chair>();
...
void addChair(Chair chair) {
chairs.add(chair);
}
List<Chair> getChairs() {
....
答案 4 :(得分:0)
我不是一个大家伙,但我怀疑它类似于在C ++中这样做... 只要定义了类,就应该能够将它们声明为另一个对象的属性,就像使用String这样的东西一样。 只需确保定义每个对象,并在该类中定义支持方法 这可能在语法上不完全正确,但它看起来应该是这样的:
class classRoom {
Chair chair;
Table table;
Board board;
String name;
add_chair();
add_table();
remove_table();
}
class Chair {
Leg leg1;
Leg leg2;
}
class Leg {
int height;
set_height();
get_height();
}
class Board {
int width;
int height;
}
现在,如果您想访问classRoom主席,您可以执行以下操作:
classRoom room = new classRoom();
height = room.chair.leg.get_height();
虽然注意这是不好的做法,但你应该设置函数来获取这些值,而不是直接访问它们。