tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
7
ZUGRIFFE
1667
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Teutone33 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
     

  2. #2
    SONY2 SONY2 ist offline Mitglied Bronze
    Registriert seit
    Aug 2007
    Beiträge
    33
    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:
    Code :
    1
    2
    3
    4
    
    Rechteck ([B]double breiteü, double hoeheü[/B]){
        breite = [B]breiteü[/B];
        hoehe = [B]hoeheü[/B];
    }
    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
    5
    
    Rechteck(double breite, double hoehe)
    {
           this.breite = breite;
           this.hoehe = hoehe;
    }

    Hoffe ich hab das halbwegs verständlich erklärt.

    Gruß
    sony2
     

  3. #3
    Registriert seit
    Oct 2008
    Beiträge
    8
    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
     

  4. #4
    Avatar von hammet
    hammet hammet ist offline himekishi
    Registriert seit
    Aug 2006
    Ort
    Bayern
    Beiträge
    334
    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!

  5. #5
    Avatar von Matze
    Matze Matze ist offline Weltenwanderer
    Registriert seit
    Jul 2007
    Ort
    Die Welt
    Beiträge
    1.504
    Blog-Einträge
    7
    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"

  6. #6
    Registriert seit
    Oct 2008
    Beiträge
    8
    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?
     

  7. #7
    Avatar von Matze
    Matze Matze ist offline Weltenwanderer
    Registriert seit
    Jul 2007
    Ort
    Die Welt
    Beiträge
    1.504
    Blog-Einträge
    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"

  8. #8
    Avatar von tim staeglich
    tim staeglich tim staeglich ist offline Mitglied Silber
    Registriert seit
    Sep 2008
    Beiträge
    84
    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, Tim
     
    XING -- Hat Dir mein Beitrag geholfen? Dann würde ich mich über eine positive Bewertung freuen!

Ähnliche Themen

  1. Was sind Konstruktoren?
    Von Davicito im Forum Java
    Antworten: 4
    Letzter Beitrag: 27.10.10, 11:55
  2. Konstruktoren
    Von drpingoo im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 17.09.08, 18:41
  3. Konstruktoren
    Von mostwanted90 im Forum C/C++
    Antworten: 12
    Letzter Beitrag: 22.03.07, 14:16
  4. Konstruktoren bei Qt
    Von Azi im Forum C/C++
    Antworten: 5
    Letzter Beitrag: 11.08.06, 18:39
  5. Konstruktoren
    Von MrDude im Forum C/C++
    Antworten: 1
    Letzter Beitrag: 25.01.04, 14:22