Vererbung änderung des Konstruktors

ocsme

Top Contributor
Guten Tag zusammen,

ich komme mal wieder bei einer Aufgabe nicht weiter :(
Wir haben eine Rational Klasse bekommen die ich etwas abgeändert habe aber um diese Klasse soll es hier nicht gehen. Es soll eine zweite Klasse geschrieben werden mit:
Geben Sie eine Unterklasse SignedRational an, die Brüche mit Vorzeichen
darstellen kann.

Hier die gegebene Klasse (wie gesagt etwas geändert):
Java:
class Rational {
    protected long num, denom;
   
    Rational(long num, long denom) {
        this.num = num;
        this.denom = denom;
    }
   
    Rational sum(Rational b) {
        long res1 = (num * b.denom) + (b.num * denom);
        long res2 = denom * b.denom;
        return new Rational(res1, res2);
    }
   
    long getDenom() {
        return denom;
    }
   
    long getNum() {
        return num;
    }
   
    String text() {
        if (getDenom() == 1)
        return "" + getNum();
        return getNum() + "/" + getDenom();
        }
}

und hier mein Versuch der SignedRational Klasse.
Mein Problem ist das ich nach dem Aufruf von super die Werte nicht mehr ändern kann :(

Java:
public class SignedRational extends Rational {
   
    SignedRational(int n, int d){
        super(n,d);
        if(d<0) {
            d=-d;
            n=-n;
        }
       
    }
   
}

Kann mir da jemand weiter Helfen?

LG
 

ocsme

Top Contributor
Achso stimmt ja ich hab ja zugriff auf die Datenelemente über this! o_O gut das es euch gibt :) man man man!!!
Irgendwann muss man das ganze doch mal verstehen :( *kopfschüttel!*
Dank dir =)

Kann sein das hier noch ein paar mehr Fragen kommen zu der Aufgabe :D
LG
 

ocsme

Top Contributor
Der Zweite Teil der Aufgabe heißt:
Erweitern Sie Ihre Klasse SignedRational um eine Methode normalize() , die
den Zustand des Objektes so ändert, dass num und denom keine negativen
Werte enthalten.

Die Methode sieht bei mir so aus:
Java:
SignedRational normalize() {
        if(getNum()<0)
            num = -getNum();
        return this;
    }

Was mir nicht gefällt ist der Zugriff auf die Datenelement also hier num = . Kann man das ändern?
und der dritte Teil lautet:
Erweitern Sie Ihre Klasse SignedRational so, dass für zwei Brüche b1 und b2
mit Vorzeichen der Aufruf b1.sum(b2) die Summe von b1 und b2 als Ergebnis
zurückliefert.
Damit konnte ich nichts anfangen denn man kann doch einfach die sum Methode von Rational benutzen:
Java:
Rational sum(Rational b) {
        long res1 = (num * b.denom) + (b.num * denom);
        long res2 = denom * b.denom;
        return new Rational(res1,res2);
    }

Deswegen sieht die SignedRational Klasse wie folgt aus:
Java:
public class SignedRational extends Rational {
   
   
     SignedRational(int n, int d){   
        super(n,d);
        if(d<0) {
            denom=-d;
            num=-n;
        }
    }
   
    SignedRational normalize() {
        if(getNum()<0)
            num = -getNum();
        return this;
    }
   
    Rational sum(Rational b) {
        long res1 = (num * b.denom) + (b.num * denom);
        long res2 = denom * b.denom;
        return new Rational(res1,res2);
    }

}
 

ocsme

Top Contributor
Das mit dem Datenelement habe ich grade selbst hin bekommen :)
Java:
SignedRational normalize() {
        if(getNum()<0)
            setNum(-getNum());
        return this;
    }

Denn Setter habe ich in Rational gebaut sieht so aus:
Java:
    void setNum(long n) {
        num=n;
    }
 

mihe7

Top Contributor
Probier mal
Java:
SignedRational r1 = new SignedRational(1,1);
SignedRational r2 = new SignedRational(-1, 1);
r1.sum(r2).normalize();
 

ocsme

Top Contributor
mhhh... klar dann kommt das normalize() ja nicht definiert ist für Rational. Ist es ja auch nicht :D
Wie kann ich das ändern? Ich hab mir heute zwar die Vererbung nochmals angeschaut doch das Thema ist sehr umfangreich finde ich und es fällt mir jetzt nicht ein wie ich das ändern könnte.
Ich wollte es so machen das ich bei sum jeden Rational benutzen kann. Da es ja eh eine Redefinitione werden soll muss man den Methodenkopf nutzen und da steht ja auch Rational. Würde ein Typcast das Problem beseitigen?
LG
 

ocsme

Top Contributor
System.out.println(r1.sum(r2).normalize().text());
Ausgabe ist 0

Wenn ich die Methode aber Überlade nicht redefiniert!
Java:
SignedRational sum(Rational b) {
        long res1 = (num * b.denom) + (b.num * denom);
        long res2 = denom * b.denom;
        return new SignedRational(res1,res2);
    }
 

ocsme

Top Contributor
ich werde heute oder morgen das Thema zur Vererbung erneut durcharbeiten dann kann ich meine Frage vielleicht genauer stellen oder vielleicht sogar eine Lösung zeigen!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
imocode Vererbung Problem mit Vererbung Java Basics - Anfänger-Themen 2
M Vererbung - Polymorphie Java Basics - Anfänger-Themen 37
L Java- Vererbung Java Basics - Anfänger-Themen 4
ineedhelpinjava Vererbung Java Basics - Anfänger-Themen 12
ineedhelpinjava Vererbung Java Basics - Anfänger-Themen 1
I JSON / XML Struktur mit Vererbung / Interfaces Java Basics - Anfänger-Themen 0
M Interface oder Vererbung? Java Basics - Anfänger-Themen 12
M Vererbung Java Basics - Anfänger-Themen 6
M Designentscheidung von Attributen/Methoden im Falle von Vererbung Java Basics - Anfänger-Themen 8
M Generics Vererbung Listen Java Basics - Anfänger-Themen 2
A Methoden Vererbung und Interface Java Basics - Anfänger-Themen 14
D Klassen und Vererbung Java Basics - Anfänger-Themen 2
U Vererbung Java Basics - Anfänger-Themen 7
D Vererbung Java Basics - Anfänger-Themen 3
K Schleife berechnet kein Ergebnis (Vererbung) Java Basics - Anfänger-Themen 6
00111010101 Objektorientiertes Programmieren mit Vererbung (Zahlen in Array verschwinden) Java Basics - Anfänger-Themen 3
W Zur Vererbung: Wann und wie? Java Basics - Anfänger-Themen 35
H Datenkapselung, Vererbung und UML Java Basics - Anfänger-Themen 16
districon Super-Stichwort/ Vererbung Java Basics - Anfänger-Themen 3
YaU Vererbung erstellt NullPointerException? Java Basics - Anfänger-Themen 4
1 Vererbung Klassenattribute Java Basics - Anfänger-Themen 9
TimoN11 Frage zu Java-Vererbung (Cast) Java Basics - Anfänger-Themen 5
N Thema Vererbung Java Basics - Anfänger-Themen 31
A Vererbung Vererbung Übung Java Basics - Anfänger-Themen 5
B Vererbung - Sichtbarkeitsmodifikation - protected Java Basics - Anfänger-Themen 10
B Best Practice Unschlüssig ob Vererbung oder Interface Java Basics - Anfänger-Themen 2
G Java Vererbung Java Basics - Anfänger-Themen 8
Y Vererbung Konto - Anfangsprobleme Java Basics - Anfänger-Themen 7
A Vererbung Klassen im Bezug auf Auto´s Java Basics - Anfänger-Themen 18
A Klassen Vererbung und zusätzliche Unterklassen Java Basics - Anfänger-Themen 23
M Vererbung mit Enums Java Basics - Anfänger-Themen 8
Kirby.exe Vererbung im Detail erklärt? Java Basics - Anfänger-Themen 9
N Modellierung, vererbung, Java Basics - Anfänger-Themen 163
M Fehlendes Verständnis für dynamische Bindung und Vererbung Java Basics - Anfänger-Themen 13
W OOP Vererbung im Computerspiel Java Basics - Anfänger-Themen 7
J Probleme mit Vererbung Java Basics - Anfänger-Themen 4
I Vererbung Java Basics - Anfänger-Themen 13
W OOP Vererbung und Problem bei Zählschleife in einer Methode Java Basics - Anfänger-Themen 10
W Methoden Verständnisfrage Vererbung von Methoden Java Basics - Anfänger-Themen 14
V Vererbung Java Basics - Anfänger-Themen 2
J Frage zur Vererbung Java Basics - Anfänger-Themen 1
J Vererbung Java Basics - Anfänger-Themen 3
U Was löst meine NullPointerException aus? (Vererbung) Java Basics - Anfänger-Themen 12
O Vererbung Ueben mit kleiner Datenstruktur von Räumen Java Basics - Anfänger-Themen 10
O Umgang mit Vererbung verstehen Java Basics - Anfänger-Themen 4
A Vererbung/Interfaces/Generics Java Basics - Anfänger-Themen 12
L Vererbung Java Basics - Anfänger-Themen 5
E HashMap+Vererbung Java Basics - Anfänger-Themen 11
E Vererbung super-Methoden Aufruf Java Basics - Anfänger-Themen 3
B Java Vererbung Fragen (zu Code Beispiel) Java Basics - Anfänger-Themen 3
A Objekterstellung bei der Vererbung Java Basics - Anfänger-Themen 7
P Vererbung Warum funktioniert die Vererbung hier nicht Java Basics - Anfänger-Themen 14
S Vererbung Java mehrfach Java Basics - Anfänger-Themen 10
B Objekte zählen/ Vererbung/ Kopplung/ Interface/ Abstract Class Java Basics - Anfänger-Themen 5
A Klassen Vererbung privater Methoden und Member Java Basics - Anfänger-Themen 12
A Konstruktoren Vererbung Java Basics - Anfänger-Themen 3
ReinerCoder Vererbung von JFrame in einer Klasse entfernen Java Basics - Anfänger-Themen 5
W Vererbung, abstract und Konstruktoren Java Basics - Anfänger-Themen 30
J Vererbung und Methodenaufruf Java Basics - Anfänger-Themen 11
G Polymorphie, Vererbung, statischer Typ, Laufzeittyp Java Basics - Anfänger-Themen 2
H Vererbung mit private instanzvariablen Java Basics - Anfänger-Themen 9
S Vererbung Funktionsweise Code zur Vererbung Java Basics - Anfänger-Themen 1
C Methoden Vererbung private Attribute/public Methoden Java Basics - Anfänger-Themen 4
S Verständnis Vererbung Java Basics - Anfänger-Themen 3
D JavaFX Vererbung Java Basics - Anfänger-Themen 2
U Vererbung Generizität und Vererbung Java Basics - Anfänger-Themen 4
A Vererbung bei Klassen mit Objekt der Klasse im Konstruktor Java Basics - Anfänger-Themen 4
K Vererbung Octagon von Circle Java Basics - Anfänger-Themen 0
B Hilfe bei Vererbung Java Basics - Anfänger-Themen 2
D Vererbung Frage zum Klassenaufbau mit Vererbung Java Basics - Anfänger-Themen 1
T Vererbung und interface. Java Basics - Anfänger-Themen 1
S Gehaltsberechnung (Vererbung, abstrakte Methoden) Java Basics - Anfänger-Themen 6
S Vererbung Java Basics - Anfänger-Themen 1
F Vererbung in zwei Richtungen? Java Basics - Anfänger-Themen 14
D Vererbung / Polymorphie Java Basics - Anfänger-Themen 5
O Vererbung Java Basics - Anfänger-Themen 5
MiMa Vererbung Theorie OK, Praxis ?? Java Basics - Anfänger-Themen 4
Arif Vererbung Vererbung Variablen überschreiben Java Basics - Anfänger-Themen 1
C Vererbung - Ausgaben bestimmen Java Basics - Anfänger-Themen 6
S Vererbung Java Basics - Anfänger-Themen 10
L Setter und Getter/Vererbung Java Basics - Anfänger-Themen 6
C Konstruktoren und Vererbung Java Basics - Anfänger-Themen 2
J Kleinere Frage zur Vererbung/Objekterzeugung Java Basics - Anfänger-Themen 2
G Vererbung Java Basics - Anfänger-Themen 12
J Vererbung privater Variablen Java Basics - Anfänger-Themen 7
J Vererbung Vererbung von Methoden Java Basics - Anfänger-Themen 6
B Vererbung Java Basics - Anfänger-Themen 12
K Vererbung (super) Java Basics - Anfänger-Themen 2
A ArrayQueue mit Exceptions und Vererbung Java Basics - Anfänger-Themen 3
J Java: static bei Vererbung Java Basics - Anfänger-Themen 5
C Vererbung Java Basics - Anfänger-Themen 4
L Vererbung Java Basics - Anfänger-Themen 3
J Klassenorganisation | Vererbung Java Basics - Anfänger-Themen 1
B Vererbung Vererbung Java Basics - Anfänger-Themen 2
N Generics Vererbung Wildcard Interface Java Basics - Anfänger-Themen 8
A Benötige Hilfe bei Vererbung Java Basics - Anfänger-Themen 1
M Anfängerprobleme mit Vererbung Java Basics - Anfänger-Themen 27
J Vererbung Java Basics - Anfänger-Themen 9
F Vererbung von Attributen zwischen zwei Klassen Java Basics - Anfänger-Themen 6
J Konstruktor Problem bei Vererbung Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben