Konstruktor

pisco

Bekanntes Mitglied
Hey Leute
ich check diesen Konstruktor einfach ned

Java:
class Rational{
 Rational (Rational r){
   num = r*num;
   denom= r*denom
 }

}

Was wird hier gemacht und besonders mit was wird hier initialisiert?

Kann man auch sowas machen?
Java:
class Rational{ 
int num;
int denom;
 Rational (Rational r){
   num = num;
   denom= denom
 }

}

und was bringt sich das? Die globale var wird einfach mit sich selbst initialisiert. Jedoch könnte ich die globale var doch einfach weglassen und nur den Konstruktor schrieben ODER?


Hier noch eine Methode die ich ned ganz check:

Java:
class Rational{
 void mult (Rational p){
   num *= p.num;
   denom *= p.denom;
 }

main{
 Rational r = new Rational();
 r.set(2,3);//setzt num und denom auf 2/3
 Rational s = new Rational();
 r.mult(s);
 


}
}
ich freu mich schon auf eure Antwort...

greetz
 
T

Tomate_Salat

Gast
In der Tat, 90% von dem was du schreibst ergibt keinen Sinn. Das führt doch zu 20Millionen Exceptions was du da gepostet hast....

[c]main {...}[/c] soll das kurz für [c]public static void main(String[] args){...}[/c] sein?! Bitte keine eigenen Abkürzungen, sowas führt nur zu missverständnissen.

Java:
class Rational{
 Rational (Rational r){
   num = r*num;
   denom= r*denom
 }
 
}

num + denom nicht existent => Exception

das gleiche gilt für beispiel 3.

was dich verwirrt wird hier wohl evtl. eher sein: wie weise ich eine globalen variable den wert einer lokalen mit selben namen zu:
Java:
public class Excampel
{
     private int num;

     public Excampel(int num)
     {     
            this.num = num;
     }
}

allerdings sind Ausdrücke wie
Java:
int a = 0;
a = a;
durchaus legitim, auch wenn Sie total sinnfrei sind.

MFG

Tomate_Salat
 

Murray

Top Contributor
Oder meinst du so etwas:
Java:
class Rational{ 
int num;
int denom;
 Rational (Rational r){
   num = r.num; //--- also ein Punkt und kein Sternchen nach dem r
   denom= r.denom
 }
}
Das wäre dann ein Copy-Konstruktor: er erhält eine andere Instanz der eigenen Klasse und kopiert deren Werte.
 
Zuletzt bearbeitet:

pisco

Bekanntes Mitglied
also das letzte Bsp hab ich aus einem Buch Programmiern mit Java aus dem Pearson verlag...

Da steht es unter Referenztypen als Parameter:
Java:
class Rational{
 void mult (Rational p){
   num *= p.num;
   denom *= p.denom;
 }
 
main{
 Rational r = new Rational();
 r.set(2,3);//setzt num und denom auf 2/3
 Rational s = new Rational();
 r.mult(s);
 
 
 
}
}

nur weis ich ned wie man das interpretieren könnte einen Refenrenztyp als Parameter...

greetz und vielen dank für eure Antworten

pisco
 
G

gman

Gast
Hi,

als
Refenrenztyp als Parameter
ist einfach nur der Parameter gemeint den du der "mult"-Methode
übergibst, in diesem Fall ein Objekt der Klasse "Rational".
Ist eigentlich nichts geheimnisvolles dabei.

Du kannst dann in der Methode auf die Felder des Objektes p zugreifen
und so die beiden Brüche multiplizieren. Falls die die Schreibweise irritiert:

Java:
 void mult (Rational p){
   num = num * p.num;
   denom = denom * p.denom;
 }

ist vielleicht einfacher zu verstehen. Hilfts dir weiter?
 

Murray

Top Contributor
Auch das ist kein gültiger Java-Code - man kann zwar ganz gut raten, was gemeint ist, aber Erklärungen haben so keinen Sinn.
Was genau ist denn jetzt deine Frage: was ein Referenztyp ist? Was der Code macht? Warum der Code so geschrieben wurde?
 
T

Tomate_Salat

Gast
also das letzte Bsp hab ich aus einem Buch Programmiern mit Java aus dem Pearson verlag...

Java:
class Rational{
 void mult (Rational p){
   num *= p.num;
   denom *= p.denom;
 }
 
main{
 Rational r = new Rational();
 r.set(2,3);//setzt num und denom auf 2/3
 Rational s = new Rational();
 r.mult(s);
 
 
 
}
}

Wenn das echt so drin steht...schmeis das Buch weg! Dein Code hat gültigkeit bis exclusive der 3ten Zeile...
 
G

gman

Gast
@murray: Das kann ich natürlich nicht auf mir sitzen lassen :D

Java:
public class Rational {

    private Double num;
    private Double denom;
    
    public void mult(Rational p){
        num = num * p.num;
        denom = denom * p.denom;
    }
}

So ist es einigermaßen vollständig, ich weiß das da noch einiges fehlt (getter, setter, Konstruktor, ...)

@pisco:

p ist eine Referenz auf ein "Rational"-Objekt. Der Code dient dazu zwei Brüche miteinander zu
multiplizieren. Das Objekt auf dem du die Methode aufrufst ist die eine Zahl und das Objekt
das du als Parameter übergibst, ist die andere Zahl:

Java:
public class RationalTest {

    public static void main(String[] args){
        Rational r1 = new Rational(2, 3);
        Rational r2 = new Rational(1, 2);
        
        r1.mult(r2); //r1 ist danach 2/3 * 1/2 = 1/3
        
        Rational r3 = r1.mult2(r2); //r3 = 1/3
    }
}

Wobei für die Multiplikation auch folgende Lösung geht:

Java:
    public Rational mult2(Rational p){
        return new Rational(this.num * p.num, this.denom * p.denom);
    }

Diese Lösung erzeugt dann ein drittes Objekt vom Typ Rational, auf diese Weise werden die
anderen beiden nicht verändert.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C OOP Parameter vom Konstruktor Java Basics - Anfänger-Themen 1
R Konstruktor mit Datum Java Basics - Anfänger-Themen 17
W Null-Pointer trotz Konstruktor? Java Basics - Anfänger-Themen 9
M Konstruktor-Aufruf im Konstruktor, aber nicht am Anfang? Java Basics - Anfänger-Themen 4
T Schlüsselworte Schlüsselwort this im Konstruktor Java Basics - Anfänger-Themen 3
frager2345 Warum muss ich hier im Konstruktor meine Exeption nicht abfangen ? Java Basics - Anfänger-Themen 4
J Konstruktor Java Basics - Anfänger-Themen 18
frager2345 Java Singleton Muster -> Methode für Konstruktor mit Parametern Java Basics - Anfänger-Themen 3
G Welche Attribute kommen in den Konstruktor? Java Basics - Anfänger-Themen 5
M wird der Konstruktor nicht als 1. ausgeführt? Java Basics - Anfänger-Themen 13
G Konstruktor und update Java Basics - Anfänger-Themen 4
K Kopier-Konstruktor Java Basics - Anfänger-Themen 6
S Default Konstruktor Java Basics - Anfänger-Themen 7
M Konstruktor ohne Übergabe eines Wertes Java Basics - Anfänger-Themen 7
M Wie kann ich in einem Konstruktor die Methode eines anderen Interfaces mit den jeweiligen Parametern aufrufen? Java Basics - Anfänger-Themen 8
J Vier gewinnt in Java,Spieler Konstruktor Java Basics - Anfänger-Themen 8
kxrdelis Konstruktor für ein Rechtwinkliges Dreieck Java Basics - Anfänger-Themen 10
Zeppi OOP Bruch kürzen im Konstruktor Java Basics - Anfänger-Themen 2
HorstSchröder Konstruktor mit Initialwert Java Basics - Anfänger-Themen 1
C Konstruktor ab serialisiertem Objekt Java Basics - Anfänger-Themen 4
J Input/Output Konstruktor ergänzen, der zur Datei mit einem Objekt passt Java Basics - Anfänger-Themen 0
InfinityDE Problem mit Datenübergabe an Konstruktor Java Basics - Anfänger-Themen 7
B Konstruktor mit Array als Parameter Java Basics - Anfänger-Themen 3
G Variablen Array Länge über den Konstruktor definieren Java Basics - Anfänger-Themen 4
L Konstruktor für eine Map-Datei/Map-Datei einlesen Java Basics - Anfänger-Themen 5
C Interface und Konstruktor Java Basics - Anfänger-Themen 1
H Generische Konstruktor Java Basics - Anfänger-Themen 12
MiMa Seltsames Verhalten im Konstruktor Java Basics - Anfänger-Themen 6
S Konstruktor passt nicht zum Rest Java Basics - Anfänger-Themen 11
C Unbekannter "Konstruktor"?? Java Basics - Anfänger-Themen 10
W OOP Warenlager mit Array(Konstruktor, Methoden) Java Basics - Anfänger-Themen 39
R Objekt in Konstruktor ist nicht zulässig Java Basics - Anfänger-Themen 5
A Mit einer Methode den Konstruktor aufrufen? Java Basics - Anfänger-Themen 2
B Warum können super() und this() nicht gemeinsam in einem Konstruktor verwendet werden? Java Basics - Anfänger-Themen 7
K Konstruktor für ein Objekt mit Zugriffsmethoden Java Basics - Anfänger-Themen 7
H Unterschied Konstruktor und Klassenname x = new Klassenname; Java Basics - Anfänger-Themen 3
B Klassen Array Parameter im Konstruktor? Java Basics - Anfänger-Themen 4
E Konstruktor mit Methode Java Basics - Anfänger-Themen 7
E ArithmeticException im Konstruktor Java Basics - Anfänger-Themen 4
S Konstruktor, Objekte Java Basics - Anfänger-Themen 4
F Konstruktor richtig implementiert? Frage zu Benutzereingaben... Java Basics - Anfänger-Themen 9
W Typecastin im Konstruktor? Java Basics - Anfänger-Themen 2
A Variablen Variablenwert über Konstruktor ändern Java Basics - Anfänger-Themen 3
F Arrays im Konstruktor Java Basics - Anfänger-Themen 5
C Konstruktor mit und ohne Parameterliste Java Basics - Anfänger-Themen 13
L Instanzvariablen, Veerbung, Konstruktor Java Basics - Anfänger-Themen 32
E Best Practice Konstruktor mit bestehender Intanz der gleichen Klasse aufrufen Java Basics - Anfänger-Themen 4
E Plausibilitätsprüfung in dem Konstruktor mit Ausnahmebehandlung Java Basics - Anfänger-Themen 8
A Aufruf von Konstruktor , obwohl 2 Parameter weggelassen werden Java Basics - Anfänger-Themen 7
A Aufruf von Konstruktor , obwohl 2 Parameter weggelassen werden Java Basics - Anfänger-Themen 0
D Compiler-Fehler Konstruktor von Superklasse übernehmen Java Basics - Anfänger-Themen 1
P Counter im Konstruktor Java Basics - Anfänger-Themen 11
J toString-Methode in Verbindung mit varArgs-Konstruktor Java Basics - Anfänger-Themen 18
I Einträge in den Konstruktor Java Basics - Anfänger-Themen 3
Aprendiendo [JAVA-Syntax] (int... variable) bei einem Konstruktor Java Basics - Anfänger-Themen 8
J Superklassen Konstruktor Verständnisfrage Java Basics - Anfänger-Themen 1
G Int-Array im Konstruktor Parameter Java Basics - Anfänger-Themen 37
T Datentypen Warum mit Konstruktor Objektvariablen initalisieren? Java Basics - Anfänger-Themen 19
A Vererbung bei Klassen mit Objekt der Klasse im Konstruktor Java Basics - Anfänger-Themen 4
P Konstruktor. Java Basics - Anfänger-Themen 4
D Best Practice Objekt automatisch im Konstruktor füllen? Java Basics - Anfänger-Themen 9
D Objekt oder Konstruktor Java Basics - Anfänger-Themen 2
F Java default Konstruktor Java Basics - Anfänger-Themen 1
R Fragen über den Konstruktor Java Basics - Anfänger-Themen 0
T Konstruktor mit Referenzdatentypen Java Basics - Anfänger-Themen 5
H Klassen Konstruktor Parameter als Instanzvariablen zwischen speichern... Java Basics - Anfänger-Themen 11
T setter im Konstruktor einbauen? Java Basics - Anfänger-Themen 8
R ArrayList im Konstruktor. Java Basics - Anfänger-Themen 4
T Konstruktor Probleme Java Basics - Anfänger-Themen 3
J Wie lässt sich der Konstruktor einer Klasse einer Funktion einer Klasse nutzen. Java Basics - Anfänger-Themen 4
S Variable, die im Konstruktor gesetzt wird, wird nicht gefunden vom Compiler. Java Basics - Anfänger-Themen 4
C Generic im Konstruktor Java Basics - Anfänger-Themen 1
F Privater Konstruktor und statische Methoden Java Basics - Anfänger-Themen 4
W Konstruktor von FileInputStream nicht gefunden Java Basics - Anfänger-Themen 18
B Methoden Konstruktor im Konstruktor aufrufen Java Basics - Anfänger-Themen 2
N Aufgabe: Pizza Konstruktor mit mehreren beliebigen Durchmesser/Preiskombinationen Java Basics - Anfänger-Themen 8
K arraygröße durch variablen Konstruktor? Java Basics - Anfänger-Themen 7
K ArrayList in Konstruktor - wie späterer Zugriff Java Basics - Anfänger-Themen 2
G Verwendung von Konstruktor Java Basics - Anfänger-Themen 8
X Übergabeparameter Konstruktor (File) Java Basics - Anfänger-Themen 13
K Wieso muss man finale statische Variablen sofort oder eben im Konstruktor initialisieren? Java Basics - Anfänger-Themen 2
C Konstruktor in Abstrakten Klassen Java Basics - Anfänger-Themen 4
B Konstruktor Problem Java Basics - Anfänger-Themen 8
Joew0815 konstruktor und damit erstellte objekte Java Basics - Anfänger-Themen 1
K Hashtable mit eigenen Konstruktor Java Basics - Anfänger-Themen 2
S Java Fragen Konstruktor & Statische Methoden Java Basics - Anfänger-Themen 4
H Fehler im Konstruktor abfangen Java Basics - Anfänger-Themen 10
J Konstruktor Problem bei Vererbung Java Basics - Anfänger-Themen 1
I Java Eingabe aus einer anderen Klasse in eine andere an Konstruktor übergeben Java Basics - Anfänger-Themen 4
O Konstruktor und Default Konstruktor Java Basics - Anfänger-Themen 7
S Kapselung Objekt bei Übergabe an Konstruktor nicht initalisiert Java Basics - Anfänger-Themen 3
I Vererbung Frage zum Konstruktor Java Basics - Anfänger-Themen 5
Y Konstruktor - Setter/Getter Java Basics - Anfänger-Themen 3
P Konstruktor Java Basics - Anfänger-Themen 4
E Initialisierung von Attributen und Konstruktor Java Basics - Anfänger-Themen 0
H Compiler-Fehler NullPointerException bei .length, Konstruktor fehlerhaft? Java Basics - Anfänger-Themen 3
M Objekt Array an konstruktor übergeben und Initialisieren Java Basics - Anfänger-Themen 1
llabusch Vererbung Super Konstruktor Java Basics - Anfänger-Themen 5
P Erste Schritte WindowBuilder erstellt Konstruktor wie zugreifen Java Basics - Anfänger-Themen 5
M Parameter von Konstruktor, der Superklassen-Konstruktor aufruft Java Basics - Anfänger-Themen 2

Ähnliche Java Themen


Oben