Klassen Vergleich zweier Klassen

Guten Morgen / Abend, je nachdem wann ihr das hier lest,

Ich bin leider Gottes noch etwas unerfahren und werde mich wohl des öfteren in diesem Forum melden.
Für die folgende Aufgabenstellung bin ich auf ein kleines Problem gestoßen, ich hänge bei Aufgabe d:
Exercise 4b – Terms & Polynomials
Let’s do some more mathematical stuff to get even more familiar to OOP:
1) Develop a class Term that objects represent terms of type a * xb with
a. two attributes for the coefficient and the exponent
b. three useful constructors
c. a method to calculate the value for a given x
d. a method that can sum two terms if the exponent is equal​

Aufgabe a bis c waren kein Problem, bei d scheitert es allerdings.

Ich hab mir gedacht ich könnte einfach eine Methode in meine Klasse "Term" schreiben die die Exponenten beider erstellten Objekte vergleicht und dann zusammen fasst.
Das würde dann ungefähr so aussehen:
Java:
  //Zusammenfassen
   
    public boolean Zip(Term t1, Term t2) {
   
       this.t1 = t1;
       this.t2 = t2;
           if(t1.b == t2.b) {
               Term t3 = new Term( (t1.a * t2.a), (t2.b + t2.b));
               return true;
           }  else {
                   return false;
                   }
           }
}
Die Methode sollte funktioniere, allerdings kan ich mit t3 in meiner Main nichts machen, weil er meint, er kennt t3 nicht.

Über einen kleinen Denkanstoß würde ich mich freuen, gleich eine ganze Lösung muss nicht sein
 

mrBrown

Super-Moderator
Mitarbeiter
t3 ist nur in dem Block bekannt, in dem er deklariert wurde - also bei dir nur innerhalb des if.

warum gibt die Methode denn einen boolean zurück, und nicht den neuen Term? ;)
 
Ich könnte natürlich einen Term zurückgeben:
Code:
 public Term Zip(Term t1, Term t2) {
   
        this.t1 = t1;
        this.t2 = t2;
            if(t1.b == t2.b) {
             Term t3 = new Term( (t1.a * t2.a), (t2.b + t2.b));
                return t3;
            }  else {
           
                    }
            }

Dan habe ich aber das Problem das ich den Error habe, dass die function einen Term zurückgeben soll, auch wenn es nicht möglich ist beide Terme zusammenzufassen, deswegen das noch leere else statement.
Und dann noch das Problem das t3 in der Main nicht bekannt ist.
 

JStein52

Top Contributor
Was ist in deinem Code denn Exponent und was Koeffizient ?

Edit: und warum heisst deine Methode Zip(...) und nicht sum(...) ?
 

VfL_Freak

Top Contributor
Moin,
etwa so :
Java:
public Term Zip( Term t1, Term t2 )
{
    this.t1 = t1;
    this.t2 = t2;
    if( t1.b == t2.b )
    {
         Term t3 = new Term( (t1.a*t2.a), (t2.b+t2.b) );
         return t3;
    }
    return null;  // oder entsprechendes !!
}
Falls das else unbedingt drin bleiben soll, dann muss auch hier ein return erfolgen !!
Also in allen denkbaren Zweigen, in denen die Methode verlassen werden kann !!

VG Klaus

EDIT:
warum heisst deine Methode Zip(...) und nicht sum(...) ?
gutes Argument :)
 

JStein52

Top Contributor
zumindest in funktionalen Sprachen.
Was hat die Benennung mit der Programmiersprache zu tun ? Und ist Java hier nun eine funktionale Sprache ? Und davon abgesehen tut die Methode das falsche. Aber den Namen Zip kann man dann ja lassen da es egal ist was sie tut. ;);)

Edit: und würdest du die Methode die den Produktterm bilden soll dann ZipZip(...) nennen ?
 

mrBrown

Super-Moderator
Mitarbeiter
Was hat die Benennung mit der Programmiersprache zu tun ? Und ist Java hier nun eine funktionale Sprache ? Und davon abgesehen tut die Methode das falsche. Aber den Namen Zip kann man dann ja lassen da es egal ist was sie tut. ;);)
Einiges - weiß man aber eigentlich auch, wenn man sich mal damit beschäftigt...

Und die Funktion tut genau das, was der Name sagt - dass es nicht das in der Aufgabe gefordert ist, ist was anderes
 
Der Koeffizient ist a und der Exponent b.
Ich hatte gerade das Problem das er bei 0 gemeckert hat, hab nicht dran gedacht null zu schreiben :confused:

Der Code on Freak funktioniert ja, danke dafür, aber ich kriege es noch nicht hin t3 in der Main zu "greifen".
Wenn ich in der Main weiter mache, möchte ich mit einem Setter den x-Wert von t3 setzen (der Setter läuft) und den ganzen Term dan ausrechnen (die method läuft auch).
Aber wen ich jetzt sage:
t3.Set(2);
erkennt er t3 immer noch nicht obwohl ich ihn doch zurück gebe?

Zip war eine spontan Idee weil ich nicht an das zusammenrechnern sondern eher an das zusammepacker beider Terme gedacht habe
 

JStein52

Top Contributor
Auch wenn @mrBrown jetzt abhebt, aber du so solltest deine Bennenungen noch mal überdenken, und wozu brauchst du Set(..) du brauchst eine Methode calculate(17);
 

JStein52

Top Contributor
Und deine Zip bruacht keine zwei Parameter sondern einen. Und sie bildet dann die Summe von this und dem übergebenen Term.

Du könntest dann schreiben:
Code:
Term t1 = new Term(3,4);
Term t2 = new Term(4,4);
Term t3 = t1.produktTerm(t2); // oder summenTerm, je nachdem was du nun willst
t3.calculate(17);
 
das mit dem Set ist wohl nur ein Zwischenschritt, da hast du Recht, den könnte ich rauslassen. Den Produktterm bilde ich mit calc, für calculation. Die richtige Bezeichnung sollte ich mir wohl angewöhnen allerdings ist das Programm so klein und mit Kommentaren gespickt das das kein Problem sein sollte.

Ich kann die Methode ja nicht in produktTerm oder summenTerm umbennenen, da ich den Exponenten addieren und die Koeffizienten multiplizieren muss. Deswegen zwei Werte rein und zwei Werte raus.
 

mrBrown

Super-Moderator
Mitarbeiter
Ich kann die Methode ja nicht in produktTerm oder summenTerm umbennenen, da ich den Exponenten addieren und die Koeffizienten multiplizieren muss. Deswegen zwei Werte rein und zwei Werte raus.
Nein, zum einfachen summieren zweier Termine musst du das nicht machen - da lieg der Fehler in der Methode.

Übergeben musst du wirklich nur eins - das zweite ist this ;)
 
Ich brauche aber die Werte von a von t1 und t2 und die Werte von b von t1 und t2. Dann gebe ich entweder die Werte für a und b für t3 aus oder erstelle in der MEthode bereits t3 mit den vorhandenen Werten.
 

mrBrown

Super-Moderator
Mitarbeiter
Du brauchst du Werte von this und die von einem übergebenem Term, aus denen kannst du den neuen berechnen.
Übergebe musst du aber eben nur einen, den andere hast du ja schon als this


Oder andere Frage: weist du was this ist?
 

JStein52

Top Contributor
Code:
public class Term {
private int koeffizient;
private int exponent;
   public(Term(...) { /// geeignete Konstruktoren
   }
   public Term summenTerm(Term t) {
             // drumrum mal weggelassen
             Term summe = new Term(this.koeffizient+t.koeffizient, this.exponent);
             return summe;
    }
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Vergleich zweier ArrayLists mit Ausgabe an dritte ArrayList Java Basics - Anfänger-Themen 5
L Vergleich zweier Variablen, mit Abweichung Java Basics - Anfänger-Themen 3
N Methoden Methode zum Vergleich zweier Geburtstage Java Basics - Anfänger-Themen 5
M Vergleich zweier Array Stellen mit equals/NullpointerException Java Basics - Anfänger-Themen 9
N Vergleich zweier String Arrays scheitert Java Basics - Anfänger-Themen 3
L vergleich zweier texte Java Basics - Anfänger-Themen 18
B Vergleich zweier Objekte durch "Hashfunktion" Java Basics - Anfänger-Themen 12
G Vergleich zweier Arrays Java Basics - Anfänger-Themen 8
K Vergleich zweier Objekte in einer HashMap Java Basics - Anfänger-Themen 6
N Vergleich zweier Elemente verschiedener Vectoren Java Basics - Anfänger-Themen 2
G Vergleich zweier 'long'-Werte. Problem! Java Basics - Anfänger-Themen 6
heinrich172 Methoden Trotz gleichem Element stimmt Vergleich nicht? Java Basics - Anfänger-Themen 7
U Interface als PAramter (Vergleich) und ein Error Java Basics - Anfänger-Themen 9
K Erste Schritte Wie schnell ist LinkedHashMap im Vergleich zur ArrayList, wenn alle Entries durchlaufen werden? Java Basics - Anfänger-Themen 47
B Performance-Vergleich mit C++ Java Basics - Anfänger-Themen 55
K Rekursiver Vergleich von Textmuster und Text Java Basics - Anfänger-Themen 2
Zeppi Vergleich von Array-Inhalten Java Basics - Anfänger-Themen 14
Lena_2611 Vergleich von Array1 Index mit Array2 Wert und erzeugen eines neues Arrays Java Basics - Anfänger-Themen 8
B Date - Vergleich (equals / after) ? Java Basics - Anfänger-Themen 3
J Problem beim vergleich von zwei Integer Java Basics - Anfänger-Themen 3
W Vergleich von DatenPaketen Java Basics - Anfänger-Themen 6
B String vergleich Java Basics - Anfänger-Themen 3
C Probleme mit String-Vergleich Java Basics - Anfänger-Themen 4
K File-Name Vergleich Java Basics - Anfänger-Themen 2
V Fließkommazahlen Vergleich Java Basics - Anfänger-Themen 7
J Vergleich Java Basics - Anfänger-Themen 2
N Vergleich von Strings schlägt fehl.. Java Basics - Anfänger-Themen 5
T Vergleich und Ausgabe von Zahlen Java Basics - Anfänger-Themen 1
J Fehler bei Vergleich auf den grössten Wert Java Basics - Anfänger-Themen 2
A Do-While Schleife; int vergleich Java Basics - Anfänger-Themen 2
G Wieviel kostet der Zugriff auf Objektattribute im Vergleich zur Erstellung von vars in Methode? Java Basics - Anfänger-Themen 11
T Input/Output String-Vergleich schlägt fehl Java Basics - Anfänger-Themen 7
W Konvertierung und Vergleich unterschiedlicher Zeitformate Java Basics - Anfänger-Themen 11
W Vergleich mit If-Abfrage nur für Zahlen bis 07 möglich - Warum? Java Basics - Anfänger-Themen 7
M String-Vergleich und NullPointerException Java Basics - Anfänger-Themen 4
L PW-Vergleich Java Basics - Anfänger-Themen 5
S Vergleich von Listen Java Basics - Anfänger-Themen 6
J vergleich von arrays (benötige Hilfe/Denkanstoß) Java Basics - Anfänger-Themen 16
V Einfacher vergleich von Arrays geht schief Java Basics - Anfänger-Themen 2
T Operatoren Multiplikation nur mit Addition, Subtraktion und Vergleich Java Basics - Anfänger-Themen 29
N Methoden Array vergleich funzt nicht Java Basics - Anfänger-Themen 8
B Char-Vergleich Sonderzeichen Java Basics - Anfänger-Themen 6
S Vergleichsmethode zum Objekt-Vergleich mit < und > Java Basics - Anfänger-Themen 4
F Problem bei Vergleich Java Basics - Anfänger-Themen 3
S File vergleich - Junit Java Basics - Anfänger-Themen 6
P String-Vergleich Java Basics - Anfänger-Themen 3
S Multiplikation durch Addition, Subtraktion und Vergleich von Zahlen Java Basics - Anfänger-Themen 14
W Vergleich ob Buchstabe in einem Wort enthalten ist Java Basics - Anfänger-Themen 3
C String Objekte Vergleich je nach Instanzierung unterschiedlich!!?!! Java Basics - Anfänger-Themen 4
R String-Vergleich Java Basics - Anfänger-Themen 15
C Variablen Vergleich funktioniert nicht Java Basics - Anfänger-Themen 11
J Erste Schritte Vergleich der String-Objekte Java Basics - Anfänger-Themen 17
B Zwei verschiedene Daten vergleich Java Basics - Anfänger-Themen 2
A Variablen Vergleich Java Basics - Anfänger-Themen 5
P Erste Schritte vergleich substring und string Java Basics - Anfänger-Themen 4
G Date - Calender | "Vergleich" Java Basics - Anfänger-Themen 3
M Vergleich mit Toleranz Java Basics - Anfänger-Themen 7
B Objekt Vergleich - Unterschiede ausgeben Java Basics - Anfänger-Themen 4
P Vergleich mit Variablen Java Basics - Anfänger-Themen 6
Y Java Programm URL und String Vergleich! Java Basics - Anfänger-Themen 4
K Vergleich von variable und array Java Basics - Anfänger-Themen 9
H Beim Vergleich/Sortieren mehr als zwei Objekte berücksichtigen Java Basics - Anfänger-Themen 14
P Vergleich von Enums Java Basics - Anfänger-Themen 4
S String Vergleich funktioniert nicht Java Basics - Anfänger-Themen 3
A String-Vergleich geht nicht Java Basics - Anfänger-Themen 2
U Automatenprüfung in Java implementieren — String Vergleich klappt nicht Java Basics - Anfänger-Themen 40
F Methoden Vergleich von int Zahlen Java Basics - Anfänger-Themen 16
F Login Passwort-Vergleich Java Basics - Anfänger-Themen 12
N Vergleich per equals Java Basics - Anfänger-Themen 5
Z XML Vergleich Java Basics - Anfänger-Themen 20
S Herunterladen von Dateien mit Vergleich Java Basics - Anfänger-Themen 6
L Problem String-Vergleich Java Basics - Anfänger-Themen 2
E Objekte-Vergleich Java Basics - Anfänger-Themen 6
Y Datentypen String vergleich Java Basics - Anfänger-Themen 3
R Vergleich von Objekten anhand variierender Kriterien Java Basics - Anfänger-Themen 5
K Datentypen Arrays in Java - Adress-Arithmetik im Vergleich zu Listen Java Basics - Anfänger-Themen 4
S equals vergleich Java Basics - Anfänger-Themen 10
A Datentypen instanceof VS Class - Vergleich Java Basics - Anfänger-Themen 4
M Char vergleich zu Int Java Basics - Anfänger-Themen 10
G Wann ist ein == Vergleich bei Gleitkommazahlen fahrlässig? Java Basics - Anfänger-Themen 8
algorismi Ausführungszeit Vergleich == true Java Basics - Anfänger-Themen 8
J Performance Vergleich von if-Abfragen mit mehreren Bedingungen Java Basics - Anfänger-Themen 9
T Zwei listen vergleich und selbige löschen Java Basics - Anfänger-Themen 4
T Vergleich mit Typecasts Java Basics - Anfänger-Themen 3
Screen Eine Frage zu moueMove in applets und deren Vergleich Java Basics - Anfänger-Themen 11
M Vergleich Float-, Doublewert Java Basics - Anfänger-Themen 10
U Methode Vergleich von 2 Arrays Java Basics - Anfänger-Themen 5
S String Vergleich mit Passwort geht nur bei Zahlen ? Java Basics - Anfänger-Themen 7
G Vergleich klappt nicht Java Basics - Anfänger-Themen 3
T Vergleich von generischen Typen Java Basics - Anfänger-Themen 2
C DB Vergleich mit Eingabe Java Basics - Anfänger-Themen 5
G Vergleich großer Basen/Exponenten? Java Basics - Anfänger-Themen 3
F Vergleich von Objekten Java Basics - Anfänger-Themen 2
N Vergleich findet nicht statt. Java Basics - Anfänger-Themen 13
M 2 Fragen: Vergleich, aber wie? Was passiert in diesem Teil? Java Basics - Anfänger-Themen 18
A Vergleich schlägt fehl Java Basics - Anfänger-Themen 15
G Vergleich bei MD5-Verschlüsselung Java Basics - Anfänger-Themen 3
R +1 Vergleich Java Basics - Anfänger-Themen 3
E Char vergleich Java Basics - Anfänger-Themen 7
loadbrain Array vergleich mit 2 for schleifen Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben