Ive попытался найти и прочитать прогиб (похожее звучание), но я не могу найти решение.Вызов метода из объекта в Object? (Java)
В настоящее время я делаю прототип для управления некоторыми лампами с текстовым вводом. Ввод текста уже работает, и он может корректно фильтровать входные сигналы и выбирать только соответствующие части.
В любом случае, для этого мне нужно сначала создать Объекты моего дома, которые содержат все этажи, в которых есть все комнаты, в которых есть все актеры (лампы и т. Д.).
Это фрагменты для всех этих объектов, сверху вниз, поскольку они должны быть уложены внутри друг друга (код еще не завершен и не оптимизирован, я знаю, что могу использовать ключ-переключатель для всех операторов if-else) :
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, я не совсем понимаю, как я могу теперь добавить новый номер для объекта этажа. Я ценю любую помощь, так как Im не совсем интересуется Java еще и, вероятно, не хватает очевидной части.
http://stackoverflow.com/help/how-to-ask http://stackoverflow.com/help/mcve –