Hallo zusammen. Ich sitze hier an einer Praktikumsaufgabe für morgen, und bin generell eigentlich schon recht weit, habe aber gerade wieder einmal ein Verständnisproblem.
Bis hierhin bin ich jetzt gekommen:
Mein Code dazu sieht folgendermaßen aus:
Nun kommt Aufgabe 1 e) + 1f):
Bislang ist also kein Constructor, sondern nur Methoden gefragt.
Nun gehe ich also davon aus, dass ich zu jeder der drei von mir festgelegten Eigenschaften jeweils eine Set und eine Get Methode definieren muss.
Allerdings tue ich mich gerade schwer damit, wie ich die nun anlegen muss, damit sie sowohl auf die CV als auch auf die IV so zugreifen können, dass die Werte gesetzt werden, und ich weiß außerdem nicht, wie man Instanzmethoden außerhalb der Mainmethode auf die Konsole ausgeben kann.
Hat jemand vielleicht einen Denkanstoß für mich?
Bis hierhin bin ich jetzt gekommen:
Wir definieren nun die Klasse Kreis analog zu der Klasse Rechteck aus dem letzten Termin.
Die maximalen Werte für die Größe, Position und die Farbe sollen nun in Konstanten gespeichert werden.
a) Definieren sie einige geeignete Eigenschaften eines Kreises,
d.h. mit Daten, die z.B. Position, Radius und Farbe eines Kreises beschreiben
Diese Eigenschaften sollen außerhalb der Klasse nicht sichtbar sein.
b) Definieren Sie Konstanten für maximal erlaubte Werte der Eigenschaften als Klassenvariablen (CV). Verwenden Sie sinnvolle Namen!
c) Testen Sie in der Klasse Kreis in der CM main() und einer IM test() den Zugriff auf diese CV.
1. Als Eigenschaften der Klasse.
2. Ohne Angabe der Klasse.
3. Versuchen Sie, den Wert der Konstanten zu ändern.
d) Testen Sie in der Klasse Test in der CM main() und einer IM test() den Zugriff auf die Instanzvariablen eines Kreises.
1. Als Eigenschaften der Klasse.
2. Ohne Angabe der Klasse.
3. Versuchen Sie, den Wert der Konstanten zu ändern.
Mein Code dazu sieht folgendermaßen aus:
Java:
class Kreis {
private final double position = 6.0; // Definieren der
private final int radius = 45; // Instanzvariablen
private final String farbe = "Gelb";
public static final double position1 = 6.0; // Definieren der
public static final int radius1 = 45; // Klassenvariablen
public static final String farbe1 = "Gelb";
void test() { // Instanzmethode
System.out.println("Position = " + Kreis.position1);
System.out.println("Radius = " + Kreis.radius1);
System.out.println("Farbe = " + Kreis.farbe1);
//position1 = 5.5; <-- ist nicht moeglich (Konstante)
System.out.println("Position = " + position);
//System.out.println("Position = " + Kreis.position); <-- nicht moeglich
//position = 5.5; <-- nicht moeglich (Konstante)
//System.out.println(this.position1);
}
public static void main(String args[]) { // Main Methode
System.out.println("Position = " + Kreis.position1);
System.out.println("Radius = " + Kreis.radius1);
System.out.println("Farbe = " + Kreis.farbe1);
//position1 = 5.5; <-- Ist nicht moeglich (Konstante)
//System.out.println("Position = " + Kreis.position); <-- nicht möglich
//System.out.println("Position = "+ position); <-- nicht möglich
//position = 5.5; <-- nicht moeglich (nicht statisch + Konstante)
}
}
Nun kommt Aufgabe 1 e) + 1f):
Definieren Sie einige geeignete Methoden zum Setzen der Eigenschaften eines Kreises. Dabei sollten die Werte die maximal erlaubten Werte nicht überschreiten.
Dabei greifen Sie auf die Instanz‐ bzw. Klassenvariablen verschieden zu. Versuchen Sie jeweils, d.h. sowohl für die IV als auch für die CV:
‐ Mit und ohne Angabe der Klasse
‐ Mit und ohne Angabe von this
f) Definieren Sie auch eine IM, die die Werte des Kreises auf die Konsole ausgibt.
Definieren Sie eine Klassenmethode (CM), in der Sie testen, ob Sie auf CV und/oder IV zugreifen können. Versuchen Sie jeweils auf die IV als auch auf die CV zuzugreifen:
‐
Mit und ohne Angabe der Klasse
‐
Mit und ohne Angabe von this
Bislang ist also kein Constructor, sondern nur Methoden gefragt.
Nun gehe ich also davon aus, dass ich zu jeder der drei von mir festgelegten Eigenschaften jeweils eine Set und eine Get Methode definieren muss.
Allerdings tue ich mich gerade schwer damit, wie ich die nun anlegen muss, damit sie sowohl auf die CV als auch auf die IV so zugreifen können, dass die Werte gesetzt werden, und ich weiß außerdem nicht, wie man Instanzmethoden außerhalb der Mainmethode auf die Konsole ausgeben kann.
Hat jemand vielleicht einen Denkanstoß für mich?