【发布时间】:2016-10-11 07:53:55
【问题描述】:
我尝试搜索和阅读槽(类似的声音)问题,但我似乎找不到解决方案。
我目前正在制作一个原型来控制一些带有文本输入的灯。 文本输入已经工作,它可以正确过滤输入,只挑选出相关部分。
无论如何,为了让这个有用,我需要首先创建我的房子的对象,其中包含所有楼层,包含所有房间,包含所有演员(灯等)。
这些是所有这些对象的 sn-ps,从上到下,因为它们应该相互堆叠(代码尚未完成也未优化,我知道我可以对所有 if-else 语句使用 switch-case ):
import java.util.ArrayList;
public class Building {
String Name;
ArrayList<floor> floor = new ArrayList<floor>();
public Building(String Name){
this.Name = Name;
}
public boolean checkFloor(String Name){
int count = floor.size();
boolean ret = false;
while(count < floor.size()){
if (floor.get(count).Name == Name){
count = floor.size();
ret = true;
}
count++;
}
return(ret);
}
public void newFloor(String Name){
Name = Name.toLowerCase();
if (Name == "keller" || Name == "basement"){
floor basement = new floor("basement");
floor.add(basement);
}
else if (Name == "eg"){
floor ground = new floor("eg");
floor.add(ground);
}
else if (Name == "1og"){
floor first = new floor("first");
floor.add(first);
}
else if (Name == "2og"){
floor second = new floor("second");
floor.add(second);
}
else if (Name == "3og"){
floor third = new floor("third");
floor.add(third);
}
}
public void newRoom(String Floor, String Name){
}
}
public class floor {
String Name;
ArrayList<room> room = new ArrayList<room>();
transcoder transcode = new transcoder();
public floor(String Name){
this.Name = Name;
}
public boolean checkRoom(String Name){
int count = room.size();
boolean ret = false;
while(count < room.size()){
if (room.get(count).Name == Name){
count = room.size();
ret = true;
}
count++;
}
return(ret);
}
public void newRoom(String mName){
String Name = transcode.getRoom(mName);
if( Name == "ground"){
room ground = new room("ground");
room.add(ground);
}
else if ( Name == "basement"){
room basement = new room("basement");
room.add(basement);
}
else if ( Name == "first"){
room first = new room("first");
room.add(first);
}
else if ( Name == "second"){
room second = new room("second");
room.add(second);
}
}
}
public class room {
String Name;
ArrayList<Actor> Actors = new ArrayList<Actor>();
public room(String Name){
this.Name = Name;
}
public void addActor(String Name, int Type, String Address, int Channel, boolean Dim){
Actors.add(new Actor(Name, Type, Address, Channel, Dim));
}
public void removeActor(String Name){
int count = 0;
while (count <= Actors.size()){
if (Actors.get(count).Name == Name){
Actors.remove(count);
count = Actors.size();
}
count++;
}
}
public boolean containsActor(String Name){
int count = 0;
boolean ret = false;
while (count < Actors.size()){
if (Actors.get(count).Name == Name){
ret = true;
count = Actors.size();
}
count++;
}
return(ret);
}
public String getAddress(String Name){
int count = 0;
String ret = "leer";
while (count < Actors.size()){
if (Actors.get(count).Name == Name){
ret = Actors.get(count).Address;
count = Actors.size();
}
count++;
}
return(ret);
}
public int getType(String Name){
int count = 0;
int ret = 0;
while (count < Actors.size()){
if (Actors.get(count).Name == Name){
ret = Actors.get(count).Type;
count = Actors.size();
}
count++;
}
return(ret);
}
}
public class Actor {
String Name;
String Address;
int Channel;
int Type;
boolean Dim;
int On; //muss noch deklariert werden!
int Off;
public Actor(String Name, int Type, String Address, int Channel, boolean Dim){
this.Name = Name;
this.Type = Type;
this.Address = Address;
this.Channel = Channel;
this.Dim = Dim;
}
}
我现在在我的 Mainclass 中尝试做的是创建一个带有地板、房间和一些演员的新建筑。代码如下:
System.out.println("Gebäudename eingeben(egal): ");
String Name = user_input.nextLine();
Building Building = new Building(Name);
System.out.println("Stockname eingeben(eg): ");
Name = user_input.nextLine();
Building.newFloor(Name);
System.out.println("Raumname eingeben(wohnen): ");
Name = user_input.nextLine();
Building.floor
现在在 Building.floor 的最后,我不太明白如何将新房间添加到对象楼层。我很感激任何帮助,因为我对 Java 还不是很喜欢,而且可能缺少一个明显的部分。
【问题讨论】:
标签: java object arraylist methods