Hallo zusammen,
ich habe folgendes Problem: Es muss diese Komposition realisiert werden (Abbildung). Dabei soll Gebäude-Stockwerk über Package-Sichtbarkeit und alles Andere über den Konstruktor des Teils realisiert werden. Wie kann ich den von der Main-Klasse, die in einem anderen Package liegt auf z.B. Büro zugreifen?
Mein Code wäre:
[CODE lang="java" title="Gebäude"]public class Gebäude {
private String name;
private Stockwerk stockwerk;
public Gebäude(String name) {
setName(name);
}
public void setName(String name) {
if (name == null || name.length() < 3 || !name.matches("[a-zA-Z0-9]+"))
throw new RuntimeException("Name ungültig");
this.name=name;
}
public String getName() {
return name;
}
public void addStockwerk(String name) {
if(name==null||name.length()<2||!name.matches("[a-zA-Z0-9]*"))
throw new RuntimeException("Name ungültig");
stockwerk=new Stockwerk(name);
}
public Stockwerk getStockwerk() {
return stockwerk;
}
}[/CODE]
[CODE lang="java" title="Stockwerk"]class Stockwerk {
private String name;
private Büro büro;
public Stockwerk(String name) {
setName(name);
}
public void setName(String name) {
if (name == null || name.length() < 2 || !name.matches("[a-zA-Z0-9]+"))
throw new RuntimeException("Name ungültig");
this.name=name;
}
public String getName() {
return name;
}
public void addBüro(String name) {
if (name == null || name.length() < 3 || !name.matches("[a-zA-Z0-9]+"))
throw new RuntimeException("Name ungültig");
büro=new Büro(name, this);
}
public String getBüro() {
return büro.getName();
}
}[/CODE]
[CODE lang="java" title="Büro"]public class Büro {
private String name;
private Stockwerk stockwerk;
private Einbauschrank schrank;
public Büro(String name, Stockwerk stockwerk) {
setName(name);
setStockwerk(stockwerk);
}
public void setName(String name) {
if (name == null || name.length() < 3 || !name.matches("[a-zA-Z0-9]+"))
throw new RuntimeException("Name ungültig");
}
public String getName() {
return name;
}
public void setStockwerk(Stockwerk stockwerk) {
if (stockwerk == null)
throw new RuntimeException("Stockwerk ungültig");
this.stockwerk=stockwerk;
}
public Stockwerk getStockwerk() {
return stockwerk;
}
public void addSchrank(String name) {
if (stockwerk == null)
throw new RuntimeException("Schrank ungültig");
this.schrank = new Einbauschrank(name, this);
}
public Einbauschrank getSchrank() {
return schrank;
}
}[/CODE]
[CODE lang="java" title="Einbauschrank"]public class Einbauschrank {
private String name;
private Büro büro;
public Einbauschrank(String name, Büro büro) {
setName(name);
}
public void setName(String name) {
if (name == null || name.length() < 3 || !name.matches("[a-zA-Z0-9]+"))
throw new RuntimeException("Name ungültig");
}
public String getName() {
return name;
}
public Büro getBüro() {
return büro;
}
public void setBüro(Büro büro) {
if (büro == null)
throw new RuntimeException("Büro ungültig");
this.büro = büro;
}
}[/CODE]
ich habe folgendes Problem: Es muss diese Komposition realisiert werden (Abbildung). Dabei soll Gebäude-Stockwerk über Package-Sichtbarkeit und alles Andere über den Konstruktor des Teils realisiert werden. Wie kann ich den von der Main-Klasse, die in einem anderen Package liegt auf z.B. Büro zugreifen?
Mein Code wäre:
[CODE lang="java" title="Gebäude"]public class Gebäude {
private String name;
private Stockwerk stockwerk;
public Gebäude(String name) {
setName(name);
}
public void setName(String name) {
if (name == null || name.length() < 3 || !name.matches("[a-zA-Z0-9]+"))
throw new RuntimeException("Name ungültig");
this.name=name;
}
public String getName() {
return name;
}
public void addStockwerk(String name) {
if(name==null||name.length()<2||!name.matches("[a-zA-Z0-9]*"))
throw new RuntimeException("Name ungültig");
stockwerk=new Stockwerk(name);
}
public Stockwerk getStockwerk() {
return stockwerk;
}
}[/CODE]
[CODE lang="java" title="Stockwerk"]class Stockwerk {
private String name;
private Büro büro;
public Stockwerk(String name) {
setName(name);
}
public void setName(String name) {
if (name == null || name.length() < 2 || !name.matches("[a-zA-Z0-9]+"))
throw new RuntimeException("Name ungültig");
this.name=name;
}
public String getName() {
return name;
}
public void addBüro(String name) {
if (name == null || name.length() < 3 || !name.matches("[a-zA-Z0-9]+"))
throw new RuntimeException("Name ungültig");
büro=new Büro(name, this);
}
public String getBüro() {
return büro.getName();
}
}[/CODE]
[CODE lang="java" title="Büro"]public class Büro {
private String name;
private Stockwerk stockwerk;
private Einbauschrank schrank;
public Büro(String name, Stockwerk stockwerk) {
setName(name);
setStockwerk(stockwerk);
}
public void setName(String name) {
if (name == null || name.length() < 3 || !name.matches("[a-zA-Z0-9]+"))
throw new RuntimeException("Name ungültig");
}
public String getName() {
return name;
}
public void setStockwerk(Stockwerk stockwerk) {
if (stockwerk == null)
throw new RuntimeException("Stockwerk ungültig");
this.stockwerk=stockwerk;
}
public Stockwerk getStockwerk() {
return stockwerk;
}
public void addSchrank(String name) {
if (stockwerk == null)
throw new RuntimeException("Schrank ungültig");
this.schrank = new Einbauschrank(name, this);
}
public Einbauschrank getSchrank() {
return schrank;
}
}[/CODE]
[CODE lang="java" title="Einbauschrank"]public class Einbauschrank {
private String name;
private Büro büro;
public Einbauschrank(String name, Büro büro) {
setName(name);
}
public void setName(String name) {
if (name == null || name.length() < 3 || !name.matches("[a-zA-Z0-9]+"))
throw new RuntimeException("Name ungültig");
}
public String getName() {
return name;
}
public Büro getBüro() {
return büro;
}
public void setBüro(Büro büro) {
if (büro == null)
throw new RuntimeException("Büro ungültig");
this.büro = büro;
}
}[/CODE]