1. Aufgabe:
Sie haben folgende Klassenvereinbarung:
public class Elefant{
int gewicht;
int groesse;
}
Die Klasse Elefant befindet sich in einem Paket tiere. Kann eine andere Klasse, die sich im Paket meinetests befindet, direkt auf die Werte der Instanzvariablen gewicht und groesse der Klasse Elefant zugreifen? Begründen Sie bitte Ihre Antwort.
2. Aufgabe:
Sie haben folgende Klassenvereinbarungen in getrennten Quelltextdateien:
package tiere;
public class Katze {
private int gewicht;
private int farbe;
private int groesse;
}
package tiere;
public class ElternKatze extends Katze {
private int kinderzahl;
}
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 besonders 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.
3. Aufgabe:
Bitte sehen Sie sich die folgende Klassenvereinbarung genau an.
public class Ziege {
private int gewicht;
private char geschlecht;
//ein Konstruktor
private public Ziege(int gewicht, char geschlecht) {
this.gewicht = gewicht;
this.geschlecht = geschlecht;
}…
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üssten.
4. Aufgabe:
Erstellen Sie eine wiederverwendbare Klasse Rechnungen mit Klassenmethoden in einem Paket javaauf4. Die erste Methode quadrat() der Klasse soll das Quadrat einer übergebenen Zahl berechnen und die zweite Methode wurzel() die Quadratwurzel einer übergebenen Zahl.
Für das Berechnen der Quadratwurzel können Sie die Methode sqrt() aus der Klasse Math verwenden. Die Methode erwartet einen double-Typ als Argument und liefert einen double-Typ zurück. Eine Import-Anweisung ist für die Klasse nicht erforderlich, da sie zum Paket java.lang gehört.
Erstellen Sie von der Methode quadrat() jeweils eine Version, die int-Typen verarbeitet und einen int-Typ zurückliefert, und eine Version, die double-Typen verarbeitet und einen double-Typ zurückliefert. Der Aufruf soll aber nur durch den Namen quadrat() erfolgen. Welcher Typ verarbeitet werden soll, muss die Funktion selbst anhand des Arguments feststellen können.
Kommentieren Sie die Klasse Rechnungen ausführlich.
Erstellen Sie dann eine Klasse in einem Projekt in einem anderen Arbeitsbereich, die in einer main()-Methode die Klassenmethoden aus der Klasse Rechnungen jeweils mit einem int- und einem double-Wert aufruft. Nehmen Sie die Klasse Rechnungen dabei über einen Verweis in das Projekt mit der Testklasse auf.
Beschreiben Sie bitte für die Lösung dieser Aufgabe zusätzlich, welche Schritte Sie mit Eclipse für das Erstellen der wiederverwendbaren Klasse durchführen und wie Sie die Klasse Rechnungen in das Projekt mit der Testklasse einbinden.