Guten Tag,
ich habe folgende Aufgabe erhalten und bin mir nicht sicher, ob ich die Aufgabe richtig gelöst habe?
Aufgabe: Sie haben folgende Klassenvereinbarungen in getrennten Quelltextdateien:
[CODE lang="java" title="Datenkapselung"]package tiere;
public class Katze {
private int gewicht;
private int farbe;
private int groesse;
}
package tiere;
public class Elternkatze extends Katze {
private int kinderzahl;
}[/CODE]
Die Klasse Elternkatze soll auf die Instanzvariable gewicht der Klasse Katze zugreifen können.
Welche Möglichkeiten kennen Sie, diesen Zugriff zu ermöglichen? Bewerten Sie diese Möglichkeiten bitte auch.
Achten Sie dabei auf die Datenkapselung.
Ein Tipp: Sie sollten mindestens drei verschiedene Varianten nennen können. Zwei hängen direkt mit der Vereinbarung der Instanzvariablen zusammen, die dritte dagegen nicht.
Meine Lösungsvorschläge:
Mit dem Zugriff, verstehe ich sowohl gewicht setzen, und abfragen?
1 Möglichkeit ) private weg lassen, allerdings verletze ich die Regeln der Datenkapselung?
2 Möglichkeit ) Mit 2 Methoden erweitern die auf public gesetzt sind ?
3 Möglichkeit ) Öffentlicher Kostruktor, zum beispiel:
// öffentlicher Konstruktor
public Katze (int gewicht) {
setGewicht(gewicht);
}
// die Methode ist als private deklariert!
private void setGewicht(int gewicht) {
this.gewicht = gewicht;
}
4 Möglichkeit) Habe ich mir gedacht, ersetzte private durch public, aber ich denke ist nicht Sinn und Zweck der Aufgabe oder ?
ich habe folgende Aufgabe erhalten und bin mir nicht sicher, ob ich die Aufgabe richtig gelöst habe?
Aufgabe: Sie haben folgende Klassenvereinbarungen in getrennten Quelltextdateien:
[CODE lang="java" title="Datenkapselung"]package tiere;
public class Katze {
private int gewicht;
private int farbe;
private int groesse;
}
package tiere;
public class Elternkatze extends Katze {
private int kinderzahl;
}[/CODE]
Die Klasse Elternkatze soll auf die Instanzvariable gewicht der Klasse Katze zugreifen können.
Welche Möglichkeiten kennen Sie, diesen Zugriff zu ermöglichen? Bewerten Sie diese Möglichkeiten bitte auch.
Achten Sie dabei auf die Datenkapselung.
Ein Tipp: Sie sollten mindestens drei verschiedene Varianten nennen können. Zwei hängen direkt mit der Vereinbarung der Instanzvariablen zusammen, die dritte dagegen nicht.
Meine Lösungsvorschläge:
Mit dem Zugriff, verstehe ich sowohl gewicht setzen, und abfragen?
1 Möglichkeit ) private weg lassen, allerdings verletze ich die Regeln der Datenkapselung?
2 Möglichkeit ) Mit 2 Methoden erweitern die auf public gesetzt sind ?
3 Möglichkeit ) Öffentlicher Kostruktor, zum beispiel:
// öffentlicher Konstruktor
public Katze (int gewicht) {
setGewicht(gewicht);
}
// die Methode ist als private deklariert!
private void setGewicht(int gewicht) {
this.gewicht = gewicht;
}
4 Möglichkeit) Habe ich mir gedacht, ersetzte private durch public, aber ich denke ist nicht Sinn und Zweck der Aufgabe oder ?