Hallo an alle!
Ich bin etwas verwirrt.
Ich habe folgenden Quellcode (zwei Pakete, "essen" und "anderes_paket"):
Das Ergebnis von diesem Code ist folgendes:
Ich habe nämlich zwei Fragen:
1.- Wieso bekomme ich eine Fehlermeldung, wenn ich die Zuweisung kilos += 20; versuche?
2.- Das erste Ergebnis Wert von 'kilos' ist: 6 verstehe ich doch, sowie auch das zweite Ergebnis
Der Wert von mehrKilos is: 12 und das vierte (Wert von kilos is: 10), nicht aber das dritte: Nachricht von der Klasse 'Fleisch' ... Hier ist 'kilos' gleicht 10. Sollte der Wert von kilos in der Klasse Fleisch nicht 5 immer noch sein? Ich haben den Wert von kilos bei MengeFleisch geändert, daher 10 anstatt 5, aber die Klasse Fleisch habe nicht berührt ...
Danke and alle und Gruß!
Ich bin etwas verwirrt.
Ich habe folgenden Quellcode (zwei Pakete, "essen" und "anderes_paket"):
Code:
/* Inhalt von Paket 'essen': */
package essen;
public class Fleisch {
protected int kilos = 5;
public void nachricht() {
System.out.println("Nachricht von der Klasse 'Fleisch' ... Hier ist 'kilos' gleich " + kilos);
}
}
/***********************************************************************/
/* Inhalt von Paket 'anderes_paket': */
package anderes_paket;
import essen.Fleisch;
public class MeineKlasse {
public static void main(String[] args) {
MengeFleisch wievielFleisch = new MengeFleisch();
wievielFleisch.nachricht();
System.out.println("Wert von kilos is: " + wievielFleisch.gibKilos());
}
}
class MengeFleisch extends Fleisch {
// kilos += 20; // <---- wenn ich versuche, den Wert vom Attribut 'kilos' zu ändern,
// funktioniert es nicht, und ich bekomme die Meldung
// '<identifier> expected - unexpected type'.
int mehrKilos = ++kilos * 2; // <---- Merkmal 'kilos' kann ich aber in dieser Zuweisung
// verwenden, das funktioniert doch.
public MengeFleisch() { // Konstruktor
System.out.println("Wert von 'kilos' ist: " + kilos);
kilos = 10; // <---- den Wert vom geerbten Attribut 'kilos' kann ich
// im Konstruktor ändern, nicht aber draußen ...
System.out.println("Der Wert von mehrKilos is: " + mehrKilos);
}
public int gibKilos() {
return kilos;
}
}
Das Ergebnis von diesem Code ist folgendes:
Wert von 'kilos' ist: 6
Der Wert von mehrKilos is: 12
Nachricht von der Klasse 'Fleisch' ... Hier ist 'kilos' gleicht 10
Wert von kilos is: 10
BUILD SUCCESSFUL (total time: 0 seconds)
Ich habe nämlich zwei Fragen:
1.- Wieso bekomme ich eine Fehlermeldung, wenn ich die Zuweisung kilos += 20; versuche?
2.- Das erste Ergebnis Wert von 'kilos' ist: 6 verstehe ich doch, sowie auch das zweite Ergebnis
Der Wert von mehrKilos is: 12 und das vierte (Wert von kilos is: 10), nicht aber das dritte: Nachricht von der Klasse 'Fleisch' ... Hier ist 'kilos' gleicht 10. Sollte der Wert von kilos in der Klasse Fleisch nicht 5 immer noch sein? Ich haben den Wert von kilos bei MengeFleisch geändert, daher 10 anstatt 5, aber die Klasse Fleisch habe nicht berührt ...
Danke and alle und Gruß!