Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
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);
}
}
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.
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...
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?
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?
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);
}
}
@murray: Das kann ich natürlich nicht auf mir sitzen lassen
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.