Guten Tag,
ich versuche auf ein Array per Getter Methode zuzugreifen, um darin Parameter zu speichern/ändern. Daraus ergibt sich ein Verständnisproblem.
Hier noch der zugehörige Code.
Vielen Dank
[CODE lang="java" title="HelloWorld.class (Java Code)" highlight="5,6"]public class HelloWorld {
public static void main(String[] args) {
Car car1 = new Car();
car1.getHorsePower()=234; // zuweisen auf getHorsePower() nicht Möglich
car1.getWheels()[1] = 2; // zuweisen auf getWheels()[1] ist Möglich
car1.setHorsePower(23);
System.out.println(car1.getWheels()[1]);
int hp = car1.getHorsePower();
System.out.println(hp);
}
}[/CODE]
[CODE lang="java" title="Car.java (Java Klasse)" highlight=""]public class Car {
private int horsePower;
private int[] wheels = {0,1,2,3};
public int[] getWheels() {
return wheels;
}
public void setWheels(int[] wheels) {
this.wheels = wheels;
}
public int getHorsePower() {
return horsePower;
}
public void setHorsePower(int horsePower) {
this.horsePower = horsePower;
}
}[/CODE]
ich versuche auf ein Array per Getter Methode zuzugreifen, um darin Parameter zu speichern/ändern. Daraus ergibt sich ein Verständnisproblem.
- Es wurde eine Instanz (car1) von Car per Default Konstruktor erstellt. Darüber sind die Instanzmethoden & -attribute generell erreichbar (von sichtbarkeits Operatoren abgesehen), stimmt das?
- Instanzattribute sind per private Anweisung zu schützen. (Car.java Zeile 2 & 3)
- Die Zuweisung von car1.getHorsePower()=23; schlägt wie erwartet fehl, da es eine Getter Methode ist. Über car1.setHorsePower(23); funktioniert die Zuweisung wie erwartet.
- Über den Getter car1.getWheels()[1] = 2; kann ich der Instanzvariable den Wert 2 zuweisen. Das sollte über den Getter doch nicht möglich sein. Und hier liegt mein Verständnisproblem.
- Die Ausgabe zeigt 2 und 23. Das ist auch wie erwartet.
Hier noch der zugehörige Code.
Vielen Dank
[CODE lang="java" title="HelloWorld.class (Java Code)" highlight="5,6"]public class HelloWorld {
public static void main(String[] args) {
Car car1 = new Car();
car1.getHorsePower()=234; // zuweisen auf getHorsePower() nicht Möglich
car1.getWheels()[1] = 2; // zuweisen auf getWheels()[1] ist Möglich
car1.setHorsePower(23);
System.out.println(car1.getWheels()[1]);
int hp = car1.getHorsePower();
System.out.println(hp);
}
}[/CODE]
[CODE lang="java" title="Car.java (Java Klasse)" highlight=""]public class Car {
private int horsePower;
private int[] wheels = {0,1,2,3};
public int[] getWheels() {
return wheels;
}
public void setWheels(int[] wheels) {
this.wheels = wheels;
}
public int getHorsePower() {
return horsePower;
}
public void setHorsePower(int horsePower) {
this.horsePower = horsePower;
}
}[/CODE]