ERLEDIGT
NEIN
NEIN
ANTWORTEN
7
7
ZUGRIFFE
1667
1667
EMPFEHLEN
-
20.10.08 20:13 #1Teutone33 Tutorials.de Gastzugang
Hallo,
wir haben die Programmiersprache Java ganz neu in der Schule und es geht um das Thema Konstruktoren. Hier einmal eine simple Rechnung zum Rechteck:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
class Rechteck{ double breite; // Eigenschaften double hoehe; double flaeche(){ // Methoden double fl; fl = breite * hoehe; return fl; } double umfang(){ double um; um = 2 * (breite + hoehe); return um; } //Konstruktor Rechteck (double breiteü, double hoeheü){ breite = breiteü; hoehe = hoeheü; } public class HauptRechteck { } public static void main(String[] args) { Rechteck r1= new Rechteck(5,7); Rechteck r2 = new Rechteck (10,20); double fl1,fl2; fl1 = r1.flaeche(); fl2 = r2.flaeche(); System.out.println(fl1); System.out.println(fl2); } }
Mir geht es nun um die Zeile des Konstruktors..... . Wofür dient der Parameter "hoeheü" und "breiteü"? Darunter gebe ich dann an, dass mein Attribut/Eigenschaft "breite" den Wert von "breiteü" bekommen soll, finde da irgendwie nicht durch, wie ich den Konstruktor nu zu händeln habe. Wäre nett, wenn mir das wer ganz langsam und logisch erklären könnte.
Ich danke euch jetzt schonmals für eure Mühen
Gruß
Teutone33
-
Durch den Konstruktor wird ein Objekt vom Typ Rechteck erstellt und initialisiert. Die übergebenen Parameter dienen hierbei der initialisierung der einzelnen Werte. Damit nun aber der übergebene Parameter von den Klassenvariablen unterschieden werden können gibst du ihnen andere Namen:
in der Praxis wird hierfür der this-Operator benutzt. Wenn du direkt vor die Variable this. schreibst wird automatisch die Klassenvariable benutzt. Dein konstruktor würde dann wie folggt aussehen.Code :1 2 3 4
Rechteck ([B]double breiteü, double hoeheü[/B]){ breite = [B]breiteü[/B]; hoehe = [B]hoeheü[/B]; }
Code :1 2 3 4 5
Rechteck(double breite, double hoehe) { this.breite = breite; this.hoehe = hoehe; }
Hoffe ich hab das halbwegs verständlich erklärt.
Gruß
sony2
-
06.11.08 17:22 #3
Ich habe ein Problem mit meinen Konstruktor:
Code :1 2 3 4
public Stromsicherung(int derzeitigestromlast, int anzahlangeschlossenerGeraete, float maxampere) { //.... }
wenn ich dann für maxampere eine Kommazahl z.B. 2.56 eintrage kommt die Meldung: "Error: possible loss of precision"
Programm: mit BlueJ
-
Du musst zwischen einem Float und einem Double unterscheiden.
Ein Float hat nur eine geringe Anzahl an Nachkommastellen udn wird meist auch mit einem nachgestellten "f" gekennzeichnet (z.B. 2.3f). Ein Double bietet mehr Nachkommastellen und drüfte einer Dezimalzahl im allgemeinen am nähsten kommen.Handlanger des Dr. Ex1tus
Ich kenne Matzes dunkles Geheimnis ! oO
o
L_/
OL
This is Schäuble. Copy Schäuble into your signature to help him on his way to Überwachungsstaat.
Hallo Nuray!
-
06.11.08 19:41 #5
Um Hammet noch zu ergänzen: Java sieht jede Zahl als double, die nicht explizit als float deklariert wurde
"... Jeder von uns ist Kunst... gezeichnet vom Leben" (Casper)
"Sir?, we're sorrounded!"
"Excellent, we can attack in any direction"
-
06.11.08 20:12 #6
ah, ok - Danke
Ich habe gedacht, wenn er float erwartet, denkt er auch, das er es bekommt. Weil es ja im Konstruktor so definiert wurde. Das ist aber nur bei float so?
-
06.11.08 22:01 #7
Kanns grad nicht nachschauen, aber bei short und so ist das das Gleiche.
Wenn du eine Zahl übergibst (keine Gleitkomme) dann wird diese immer als int bebetrachtet, auch wenn ein z.b. short erwartet wird. Da muss mann dann schon explizit einen short übergeben."... Jeder von uns ist Kunst... gezeichnet vom Leben" (Casper)
"Sir?, we're sorrounded!"
"Excellent, we can attack in any direction"
-
07.11.08 12:11 #8
Hi,
wenn man Fehler vermeiden will (Beispielsweise ab der 13. Nachkommastelle)
sollte man BigDecimal zum Rechnen benutzen (und auch als Parameter).
Wenn beispielsweise Deine DB Dir 9.9999999999999999999999999 gibt und Du ohne Fehler in Java damit rechnen willst, verpackst Du solche Werte in BigDecimal
(siehe API).
Grüße, TimXING -- Hat Dir mein Beitrag geholfen? Dann würde ich mich über eine positive Bewertung freuen!
Ähnliche Themen
-
Was sind Konstruktoren?
Von Davicito im Forum JavaAntworten: 4Letzter Beitrag: 27.10.10, 11:55 -
Konstruktoren
Von drpingoo im Forum C/C++Antworten: 2Letzter Beitrag: 17.09.08, 18:41 -
Konstruktoren
Von mostwanted90 im Forum C/C++Antworten: 12Letzter Beitrag: 22.03.07, 14:16 -
Konstruktoren bei Qt
Von Azi im Forum C/C++Antworten: 5Letzter Beitrag: 11.08.06, 18:39 -
Konstruktoren
Von MrDude im Forum C/C++Antworten: 1Letzter Beitrag: 25.01.04, 14:22





Zitieren
Login





