Hallo, ich bin wieder da
Aufgabe: Bitte sehen Sie sich folgende Klassenvereinbarung genau an.
[CODE lang="java" title="Datenkapselung_2"]public class Ziege {
private int gewicht;
private char geschlecht;
}
// ein Konstruktor
private Ziege (int gewicht, char geschlecht) {
this.gewicht = gewicht;
this.geschlecht = geschlecht;
}.....
[/CODE]
Können Sie in einem Quelltext in einem anderen Paket eine Instanz der Klasse Ziege erstellen? Begründen Sie bitte Ihre Antwort und nennen Sie
gegebenenfalls die Stellen im Quelltext der Klasse Ziege, die geändert werden müssen.
Mein Lösungsansatz:
Nein, weil im Sinne der Datenkapselung, sind sowohl die Instanzvariablen und der Konstruktor auf private gesetzt sind, und somit von Außenwelt isoliert.
Eine Möglichkeit wäre den Konstruktor auf ,,public’’ zu setzen.
Falls noch weiter im Quelltext Methoden auf private gesetzt sind sollte man die innerhalb der Konstruktor aufrufen.
Also: Erste sinnvolle Veränderung wäre aus meiner Sicht:
[CODE lang="java" title="Datenkapselung_2"]public class Ziege {
private int gewicht;
private char geschlecht;
}
// ein Konstruktor
public Ziege (int gewicht, char geschlecht) {
this.gewicht = gewicht;
this.geschlecht = geschlecht;
}.....[/CODE]
Aufgabe: Bitte sehen Sie sich folgende Klassenvereinbarung genau an.
[CODE lang="java" title="Datenkapselung_2"]public class Ziege {
private int gewicht;
private char geschlecht;
}
// ein Konstruktor
private Ziege (int gewicht, char geschlecht) {
this.gewicht = gewicht;
this.geschlecht = geschlecht;
}.....
[/CODE]
Können Sie in einem Quelltext in einem anderen Paket eine Instanz der Klasse Ziege erstellen? Begründen Sie bitte Ihre Antwort und nennen Sie
gegebenenfalls die Stellen im Quelltext der Klasse Ziege, die geändert werden müssen.
Mein Lösungsansatz:
Nein, weil im Sinne der Datenkapselung, sind sowohl die Instanzvariablen und der Konstruktor auf private gesetzt sind, und somit von Außenwelt isoliert.
Eine Möglichkeit wäre den Konstruktor auf ,,public’’ zu setzen.
Falls noch weiter im Quelltext Methoden auf private gesetzt sind sollte man die innerhalb der Konstruktor aufrufen.
Also: Erste sinnvolle Veränderung wäre aus meiner Sicht:
[CODE lang="java" title="Datenkapselung_2"]public class Ziege {
private int gewicht;
private char geschlecht;
}
// ein Konstruktor
public Ziege (int gewicht, char geschlecht) {
this.gewicht = gewicht;
this.geschlecht = geschlecht;
}.....[/CODE]