Hallo,
ich habe eine kleine Klasse mit Hauptprogramm programmiert, weil mir eine Sache noch nicht klar ist.
1) haus1 und haus2 kann man bestimmt nicht in der main-Methode definieren, weil diese static sind. Aber warum ist das so, dass man statische Variablen nicht in der main definieren kann/darf?
2) haus5 ist als final deklariert. Trotzdem kann ich die Hausfarbe ändern. Was bewirkt also dieses final?
3) Mir ist noch nicht der Unterschied zwischen diesen beiden Codezeilen bekannt. Beide geben dasselbe auf der Konsole aus aber nur haus2 ist static.
Wann verwendet man, welche Variante?
static Haus haus2 = new Haus("Haus 1", "rot");
Haus haus3 = new Haus("Haus 1", "rot");
ich habe eine kleine Klasse mit Hauptprogramm programmiert, weil mir eine Sache noch nicht klar ist.
Java:
public class Haus {
private String name;
private String farbe;
public Haus() {
}
public Haus(String name, String farbe) {
this.name=name;
this.farbe=farbe;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getFarbe() {
return farbe;
}
public void setFarbe(String farbe) {
this.farbe = farbe;
}
}
Java:
public class HausTest {
static Haus haus1 = new Haus();
static Haus haus2 = new Haus("Haus 1", "rot");
public static void main(String[] args) {
Haus haus3 = new Haus("Haus 1", "rot");
Haus haus4 = new Haus("Haus 4", "grün");
final Haus haus5 = new Haus();
haus5.setFarbe("weiss");
System.out.println("Farbe: " + haus1.getFarbe() + "\tName: " + haus1.getName());
System.out.println("Farbe: " + haus2.getFarbe() + "\tName: " + haus2.getName());
System.out.println("Farbe: " + haus3.getFarbe() + "\tName: " + haus3.getName());
System.out.println("Farbe: " + haus4.getFarbe() + "\tName: " + haus4.getName());
System.out.println("Farbe: " + haus5.getFarbe() + "\tName: " + haus5.getName());
}
}
1) haus1 und haus2 kann man bestimmt nicht in der main-Methode definieren, weil diese static sind. Aber warum ist das so, dass man statische Variablen nicht in der main definieren kann/darf?
2) haus5 ist als final deklariert. Trotzdem kann ich die Hausfarbe ändern. Was bewirkt also dieses final?
3) Mir ist noch nicht der Unterschied zwischen diesen beiden Codezeilen bekannt. Beide geben dasselbe auf der Konsole aus aber nur haus2 ist static.
Wann verwendet man, welche Variante?
static Haus haus2 = new Haus("Haus 1", "rot");
Haus haus3 = new Haus("Haus 1", "rot");