Hallo liebe Community,
ich bin gerade dabei mich mit der Vererbung bei Java zu beschäftigen und um Dinge nachzuvollziehen gehe ich oft wie unten vor, ich schreibe relativ viele Kommentare im Code um mir zu merken "was was macht" und "was was ist" etc.
Beim folgenden Code Beispiel habe ich ein paar Probleme was den Ablauf angeht, ich versuche dann den Code mit dem Debugger (verwende Eclipse) zu öffnen um zu sehen wie die Schritte durchgegangen werden aber irgendwie hab ich hier Probleme das Ganze nachzuvollziehen:
meine Fragen wären:
1. Vielleicht könntet ihr mir was den Ablauf betrifft weiterhelfen und eine kurze Übersicht geben wie dieser hier ist
2. Diese Zeile versteh ich nicht ganz: "b_wert = (int) p;", hier wird meiner Meinung nach b_wert auf int p gesetzt. Warum ist das int in Klammern?
3. Falls ihr Ergänzungen/Tipps zu meinen Kommentaren im Code habt, ich in für jeden Tipp dankbar. Wie gesagt mir geht es grundsätzlich darum das Ganze nachzuvollziehen und ich bin der Meinung wenn man die Zeilen immer ein bisschen definiert und schreibt was so vorgeht fällt einem das Ganze leichter (oder was meint ihr?)
Vielen Dank schon mal für Eure Hilfe, falls Fragen bestehen immer her damit
ich bin gerade dabei mich mit der Vererbung bei Java zu beschäftigen und um Dinge nachzuvollziehen gehe ich oft wie unten vor, ich schreibe relativ viele Kommentare im Code um mir zu merken "was was macht" und "was was ist" etc.
Beim folgenden Code Beispiel habe ich ein paar Probleme was den Ablauf angeht, ich versuche dann den Code mit dem Debugger (verwende Eclipse) zu öffnen um zu sehen wie die Schritte durchgegangen werden aber irgendwie hab ich hier Probleme das Ganze nachzuvollziehen:
Java:
//Basisklasse
class Basis2 {
//Attribut:
int b_wert;
//Methode Basis2, b_wert wird auf 1 gesetzt:
Basis2() {
b_wert = 1;
}
//Werden Variablen mit final gekennzeichnet,
//so sind sie nach der Initialisierung nicht mehr änderbar
//Methode Basis2, als Parameter wird final double p übergeben:
Basis2(final double p) {
//b_wert wird auf ???
b_wert = (int) p;
}
//Methode Basis2, als Parameter wird final int p übergeben:
Basis2(final int p){
//b_wert wird auf p gesetzt
b_wert = p;
}
}
//mit extends wird Basis2 als Basisklasse verwendet:
class Abgeleitet extends Basis2 {
//Attribut:
int abg_wert;
//Methode Abgeleitet, abg_wert wird auf 1 gesetzt:
Abgeleitet() {
abg_wert = 1;
}
//Hier werden Argumente an den Basisklassenkonstruktor weitergereicht:
Abgeleitet(final int param1, final double param2){
//mit super wird der Konstruktor der Basisklasse aufgerufen, param2 wird übergeben
super(param2);
//abg_wert wird auf param1 gesetzt:
abg_wert = param1;
}
}
//Main Methode, diese wird immer als erstes ausgeführt:
class Basisklassenkonstruktor {
public static void main(final String[] args) {
//Absatz:
System.out.println();
//Es wird nun ein neues Objekt mit dem Namen obj1 und dem Typ Abgeleitet angelegt
final Abgeleitet obj1 = new Abgeleitet();
System.out.println(" obj1 /n");
System.out.println(" b_wert = " +obj1.b_wert);
System.out.println(" abg_wert = " +obj1.abg_wert);
//Es wird nun ein neues Objekt mit dem Namen obj2 und dem Typ Abgeleitet angelegt
//es werden 2 Parameter übergeben: 22 und 11.90
final Abgeleitet obj2 = new Abgeleitet(22, 11.90);
System.out.println(" obj2 /n");
System.out.println(" b_wert = " +obj2.b_wert);
System.out.println(" abg_wert = " +obj2.abg_wert);
}
}
meine Fragen wären:
1. Vielleicht könntet ihr mir was den Ablauf betrifft weiterhelfen und eine kurze Übersicht geben wie dieser hier ist
2. Diese Zeile versteh ich nicht ganz: "b_wert = (int) p;", hier wird meiner Meinung nach b_wert auf int p gesetzt. Warum ist das int in Klammern?
3. Falls ihr Ergänzungen/Tipps zu meinen Kommentaren im Code habt, ich in für jeden Tipp dankbar. Wie gesagt mir geht es grundsätzlich darum das Ganze nachzuvollziehen und ich bin der Meinung wenn man die Zeilen immer ein bisschen definiert und schreibt was so vorgeht fällt einem das Ganze leichter (oder was meint ihr?)
Vielen Dank schon mal für Eure Hilfe, falls Fragen bestehen immer her damit