Hallo, im Buch: Programmieren lernen mit Java: Aktuell zu Java 7 - Keine Vorkenntnisse erforderlich: Amazon.de: Hans-Peter Habelitz: Bücher hat es eine Aufgabe :
Erstellen sie eine Klasse mit dem Namen Kreis. Die Klasse soll nur eine Datenelement (Attribut) mit dem Namen radius verfügen, indem der Radius als Kommazahl festgehalten wird. Erstellen Sie einen Konstruktor mit leerer Parameterliste, der den Radius mit dem Wert 0 initialisiert, und einen Konstruktor, dem als Parameter eine Kommmazahl zur Initialisierung des Radius übergeben wird. Als Methoden soll die Klasse verfügen über:
Erstellen Sie dazu ein Testprogramm mit dem Namen Kreistest, das mit einem JOptionPane.showInputDialog den Radius eines Kreises einliêst und anschliessend durch Aufruf der drei Methoden den Radius, den Umfang und die Fläche des Kreises in der Konsole (mit System.out.println) ausgibt.
umfang = 2.0 * 3.1415926 * radius;
flaeche = 3.1415926 * radius * radius;
Die Lösung ist :
Kreis.java:
und Kreisberechnung.java:
1.) Wieso braucht es überhaupt eine set-Methode?
Weil ohne die set funktioniert das Programm genauso..
Dachte zuerst jede get-Methode brauchst eine set-Methode?
2.) Rechnet der Compiler automatisch um? Die Schreibweise ist etwas verwirrend...warum nicht u = ..... ?
Erstellen sie eine Klasse mit dem Namen Kreis. Die Klasse soll nur eine Datenelement (Attribut) mit dem Namen radius verfügen, indem der Radius als Kommazahl festgehalten wird. Erstellen Sie einen Konstruktor mit leerer Parameterliste, der den Radius mit dem Wert 0 initialisiert, und einen Konstruktor, dem als Parameter eine Kommmazahl zur Initialisierung des Radius übergeben wird. Als Methoden soll die Klasse verfügen über:
Java:
double getRadius();
set Radius(double r);
double getUmfang();
double getFlaeche();
Erstellen Sie dazu ein Testprogramm mit dem Namen Kreistest, das mit einem JOptionPane.showInputDialog den Radius eines Kreises einliêst und anschliessend durch Aufruf der drei Methoden den Radius, den Umfang und die Fläche des Kreises in der Konsole (mit System.out.println) ausgibt.
umfang = 2.0 * 3.1415926 * radius;
flaeche = 3.1415926 * radius * radius;
Die Lösung ist :
Kreis.java:
Java:
package uebung06;
/*
* Klasse Kreis
* Hans-Peter Habelitz
* 2011-12-21
*/
public class Kreis {
double radius;
Kreis() {
radius = 0;
}
Kreis(double r) {
radius = r;
}
double getRadius() {
return radius;
}
void setRadius(double r) {
radius = r;
}
double getUmfang() {
return 2 * Math.PI * radius;
}
double getFlaeche() {
return Math.PI * radius * radius;
}
void setUmfang(double u) {
radius = u / (2 * Math.PI);
}
void setFlaeche(double f) {
radius = Math.sqrt(f / Math.PI);
}
}
und Kreisberechnung.java:
Java:
package uebung06;
/*
* Programm Kreis zum Testen der Klasse Kreis
* Hans-Peter Habelitz
* 2011-12-21
*/
import javax.swing.JOptionPane;
public class Kreistest {
public static void main(String[] args) {
String kreisradius, einheit;
double r;
kreisradius = JOptionPane
.showInputDialog("Geben Sie einen Kreisradius ein:");
einheit = JOptionPane.showInputDialog("Geben Sie die Maßeinheit ein:");
r = Double.parseDouble(kreisradius);
Kreis k = new Kreis(r);
System.out.println("Kreisradius: " + k.getRadius() + " " + einheit);
System.out.println("Umfang: " + k.getUmfang() + " " + einheit);
System.out.println("Fläche: " + k.getFlaeche() + " " + einheit
+ '\u00b2');
}
}
1.) Wieso braucht es überhaupt eine set-Methode?
Weil ohne die set funktioniert das Programm genauso..
Dachte zuerst jede get-Methode brauchst eine set-Methode?
2.) Rechnet der Compiler automatisch um? Die Schreibweise ist etwas verwirrend...warum nicht u = ..... ?
Java:
void setUmfang(double u) {
radius = u / (2 * Math.PI);