Aufgabe zur Vererbung

Status
Nicht offen für weitere Antworten.

stevarino

Mitglied
Hallo

Ich hab diese Aufgabe
Ein Vektor ist im n-dim. Raum mit den kartesischen Koordinaten durch n
Gleitkommazahlen, etwa ein Array gegeben.
Erstellen Sie eine Klasse Vektor, welche das Arbeiten mit Vektoren ermöglicht:
Die Methoden (Funktionen) für die Addition void add(Vektor V), die Skalarmultiplikation
scalar(double d) und den Betrag double length() sind zu realisieren.
Erzeugen und Initialisieren Sie diese Klasse mit geeigneten Konstruktoren.
Erweitern Sie Ihre Klasse um die Funktionen boolean equals(Vektor V) zur Prüfung auf
gleichen Inhalt, toString() zur Ausgabe eines Vektors sowie Vektor clone() zum
duplizieren der Werte eines Vektors.

Hab es auch schon so weit fast fertig bis auf die toString, clone, equals methode Heißt das in der Angabe das ich die Klasse erweitere indem ich die Klasse Tupel vererbe und die 3 anderen Methoden hinzufüge?????

Hier mal mein code

Code:
class Tupel {

	double []a;

	public Tupel(double[] a)	{
  								this.a = a;
								}

	double length(Tupel v) 	{
					double sum=0;
					for(int i=0;i<=a.length-1;i++)	{
												sum = sum+(a[i]*a[i]);
												}
					return Math.sqrt(sum);
							}

	void add(Tupel v) 	{
						for(int i=0;i<=a.length-1;i++) 	{
													this.a[i]=a[i]+v.a[i];
													}

						}

	void multiply(double d) 	{
								for(int i=0;i<=a.length-1;i++)	{
															this.a[i]=a[i]*d;
															}
								}

	double scalarProduct(Tupel v) 	{
									double skalar=0;
									for(int i=0;i<=a.length-1;i++)	{
																skalar=skalar+a[i]*v.a[i];
																}
									return skalar;
									}
				}

class Tupel1 extends Tupel {
	
	public String toString() 	{
								String s="("+a[0];
								for(int i=1;i<=a.length-1;i++) {
																s =s+", "+a[i];
																}
								return s+")";
								}
				}
	public boolean equals(Tupel v)	{
									for(int i=0;i<=a.length-1;++) {
																	if (a[i]==b[i])	{
																					return true;
																					}
																	else 	{
																			return false;
																			}	
																  }
									}


	public Tupel clone(){
						Tupel clone = new Tupel();
    					clone.a = a;
    					return clone;

						}
		   					}
public class Vector{

	public static void main(String args[]) {
											double []a={1,2,3,4};
											Tupel v = new Tupel(a);
											v.add(new Tupel(a));
											Out.println("v = " +v.toString());
											double []b={3,3,3,3};
											Out.println("scalar product = " + v.scalarProduct(new Tupel(b)));
											}
					}
Ich weiß das ihr keine Aufgaben lösen wollt aber ich bitte euch trotzdem meine Fehler im Program zu verbessern

Danke

lg Stevo
 
B

Beni

Gast
Also ich lese in der Aufgabe überhaupt nichts von Tupel... daher hätte ich gesagt, nix mit Vererbung.
Praktisch ist es egal: du kannst Vector neu schreiben oder von Tupel erben lassen. Dann schreibst du in Vector einfach noch die zusätzlich benötigten Methoden. Es gibt keinen speziellen Syntax, nur weil du die Methoden der Oberklasse überschreibst.

P.S. Clone implementiert man korrekterweise so:
Code:
public class X{
  public Object clone(){
     return super.clone();
  }
}
Da ist ein bisschen "Magie" im clone() von Object dabei, jedenfalls muss man clone nicht in jeder Unterklasse neu implementieren.
 
B

bygones

Gast
warum hast du 3 Klassen ?

du sollst doch nur eine schreiben ?

die hat einen array (die koordinaten).... dann die Methoden und fertig ?!

zur clone hat beni schon was gesagt... toString würde ich einfach mit Arrays.toString() lösen und equals mit Arrays.equals()....

btw - ansich eignet sich die Vektor klasse perfekt für eine Immutable Klasse *g (was aber wahr. nicht teil der aufgabe ist...)
 
S

SlaterB

Gast
tja, Interpretation der Aufgabenstellung, das können andere auch kaum besser,
hast du denn keinen Aufgabensteller den du fragen kannst? ;)

klingt für mich eigentlich nicht nach Vererbung, das Wort wird nirgendwo erwähnt außer in der Topicüberschrift,
heißt vielleicht so auch die Aufgabe? ansonsten könnte Erweiterung auch einfach Hinzufügung weiterer Operationen bedeuten,

macht ja keinen rechten Sinn solle elementaren Operationen erst in einer Unterklasse zu definieren,

außerdem heißen die Operation in der Aufgabe add(Vektor V) und boolean equals(Vektor V) ,
das klingt nach nur einer Klasse V

-------

zu deinen Fehlern: die läßt du drin und erwähnst sie mit keinem Wort?
naja da sind so elementare Sachen dabei, da weißt du vielleicht auch nicht weiter


wieso in equals a==b? das macht keinen Sinn, b ist unbekannt, das heißt a==v.a,
die Operation macht übrigens den Fehler dass nach Vergleich eines Wertepaares schon true oder false
zurückgegeben wird, du musst doch erst alle 3 testen!


eine Operation Vector clone() bzw. Tupel clone() geht nicht, selbst wenn es in der Aufgabe so steht,
jedes Objekt hat die Operation Object clone(), die kann zwar überschrieben werden, aber man darf den Rückgabetyp nicht ändern,

wenn eine Oberklasse einen bestimmten Konstruktor definiert und keinen Standardkonstruktor,
dann muss die Unterklasse diesen auch rufen (in einem ebenfalls anzugebenen Konstruktror)

--------

naja und so Kleinigkeiten


wieso heißen die Klassen Tupel und Tupel1 und nicht Vector?, aber die Testklasse heißt dann Vector??

was spricht gegen eine lesbare Formatierung?

i <= a.length -1 habe ich mal durch i < a.length ersetzt, das ist schöner ;)




Code:
class Tupel {

	double[] a;

	public Tupel(double[] a) {
		this.a = a;
	}

	double length(Tupel v) {
		double sum = 0;
		for (int i = 0; i < a.length; i++) {
			sum = sum + (a[i] * a[i]);
		}
		return Math.sqrt(sum);
	}

	void add(Tupel v) {
		for (int i = 0; i < a.length; i++) {
			this.a[i] = a[i] + v.a[i];
		}

	}

	void multiply(double d) {
		for (int i = 0; i < a.length; i++) {
			this.a[i] = a[i] * d;
		}
	}

	double scalarProduct(Tupel v) {
		double skalar = 0;
		for (int i = 0; i < a.length; i++) {
			skalar = skalar + a[i] * v.a[i];
		}
		return skalar;
	}
}

class Tupel1 extends Tupel {

	public Tupel1(double[] a) {
		super(a);
	}

	public String toString() {
		String s = "(" + a[0];
		for (int i = 1; i < a.length; i++) {
			s = s + ", " + a[i];
		}
		return s + ")";
	}

	public boolean equals(Tupel v) {
		for (int i = 0; i < a.length; i++) {
			if (a[i] != v.a[i]) {
				return false;
			}
		}
		return true;
	}

	public Object clone() {
		Tupel clone = new Tupel(a);

		return clone;

	}
}

class Vector {

	public static void main(String args[]) {
		double[] a = { 1, 2, 3, 4 };
		Tupel v = new Tupel(a);
		v.add(new Tupel(a));
		System.out.println("v = " + v.toString());
		double[] b = { 3, 3, 3, 3 };
		System.out.println("scalar product = " + v.scalarProduct(new Tupel(b)));
	}
}
 
B

Beni

Gast
SlaterB hat gesagt.:
eine Operation Vector clone() bzw. Tupel clone() geht nicht, selbst wenn es in der Aufgabe so steht,
jedes Objekt hat die Operation Object clone(), die kann zwar überschrieben werden, aber man darf den Rückgabetyp nicht ändern.
Einspruch :!: Ab Java 1.5 absolut legitim :bae:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Buchstabenzähler-Aufgabe mit Arrays Java Basics - Anfänger-Themen 5
Jere58 Aufgabe zu Mustern Java Basics - Anfänger-Themen 1
M Interfaces Aufgabe Java Basics - Anfänger-Themen 2
lrnz22 Java-Basics-Aufgabe Java Basics - Anfänger-Themen 8
Justin4687 Benötige Hilfe bei folgender Aufgabe Java Basics - Anfänger-Themen 2
A Erste Schritte Aufgabe mit while Schleife Java Basics - Anfänger-Themen 11
S Hilfe zu einer Aufgabe Java Basics - Anfänger-Themen 5
M Java Programmierung Aufgabe Anfänger Java Basics - Anfänger-Themen 1
R Hilfe bei Aufgabe Java Basics - Anfänger-Themen 4
Mikejr Java Berg aufgabe Java Basics - Anfänger-Themen 6
frager2345 Aufgabe Hash Objekt Elemente ausgeben Java Basics - Anfänger-Themen 2
berserkerdq2 Habe ich die Aufgabe richtig gelöst? Java Basics - Anfänger-Themen 3
D Hilfe bei einer Aufgabe mit for-Schleife Java Basics - Anfänger-Themen 6
Neuling47 Ich zerbreche mit den kopf an einer Aufgabe Java Basics - Anfänger-Themen 61
G Fragen zu Kompelierfehler in Aufgabe. Java Basics - Anfänger-Themen 25
Robert_Klaus Hamster java Simulation Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 5
milan123 das ist meine aufgabe ich hab das problem das bei mir Wenn ich die Richtung der Linien verändern will und drei davon sind richtig, verändere ich die 4 Java Basics - Anfänger-Themen 3
M Verständins Problem bei Aufgabe Java Basics - Anfänger-Themen 4
T Informatik Studium Aufgabe Java Basics - Anfänger-Themen 4
T Aufgabe Informatik Studium Java Basics - Anfänger-Themen 10
G matrix aufgabe Java Basics - Anfänger-Themen 22
J Brauche Hilfe bei for-each Aufgabe Java Basics - Anfänger-Themen 1
9 Aufgabe Bruttorechner Java Basics - Anfänger-Themen 14
N Fehler im Code (Aufgabe für Anfänger) Java Basics - Anfänger-Themen 11
J Brauche Hilfe bei Aufgabe Java Basics - Anfänger-Themen 4
J boolean aufgabe Java Basics - Anfänger-Themen 9
D Snake-Spiel ähnliche Aufgabe Hilfe Java Basics - Anfänger-Themen 3
M Hilfe - Array Aufgabe Java Basics - Anfänger-Themen 8
StevenGG Aufgabe im Studium Java Basics - Anfänger-Themen 36
G Strings auf Gleichheit prüfen - Aufgabe vom Prof. Java Basics - Anfänger-Themen 5
S Schulaufgabe - verstehe leider die Aufgabe nicht Java Basics - Anfänger-Themen 4
Leo0909 Ich brauche Hilfe bei dieser Aufgabe Java Basics - Anfänger-Themen 2
R Eclipse Aufgabe Java Basics - Anfänger-Themen 4
J OOP-Aufgabe Java Basics - Anfänger-Themen 15
Helix19 Informatik Grundkurs (Haus-)Aufgabe Java Basics - Anfänger-Themen 5
P eine kleine Aufgabe mit Audio Java Basics - Anfänger-Themen 1
TimoN11 Verständnisfrage bei Aufgabe Java Basics - Anfänger-Themen 2
TimoN11 Java spezielle Suchprobleme - Aufgabe Java Basics - Anfänger-Themen 5
M Könnte mir jemand diese Aufgabe erklären? Java Basics - Anfänger-Themen 2
M Könnte mir jemand diese Aufgabe erklären? Java Basics - Anfänger-Themen 9
dieter000 Aufgabe Hilfe Java Basics - Anfänger-Themen 18
jonathanpizza Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 5
Q Hilfe auf Aufgabe(Matrixmultiplikation) Java Basics - Anfänger-Themen 1
jonathanpizza Hilfe bei der Aufgabe Java Basics - Anfänger-Themen 19
justemii Gehalt berechnen - Aufgabe Java-Programm Java Basics - Anfänger-Themen 9
C Fernseher-Aufgabe (Methoden, Klassen und Objekte) Java Basics - Anfänger-Themen 63
C Rechnungen-Aufgabe Java Basics - Anfänger-Themen 18
C Biene-Aufgabe Java Basics - Anfänger-Themen 2
K Algorithmen und Datenstrukturen Programmier Aufgabe Java Basics - Anfänger-Themen 10
M Verständnisfrage zu eine Online Aufgabe Java Basics - Anfänger-Themen 7
T Aufgabe Flussdiagramm, kann jemand checken? Java Basics - Anfänger-Themen 8
B Methoden Ausgeben Aufgabe Java Basics - Anfänger-Themen 15
M Lösung Aufgabe - Java Programmiren lernen für Dummies Java Basics - Anfänger-Themen 11
J Rekursion Klausur Aufgabe Java Basics - Anfänger-Themen 2
J Exception-Aufgabe Java Basics - Anfänger-Themen 8
I Methoden char Array Aufgabe (bitte hierbei um Hilfe) Java Basics - Anfänger-Themen 3
F Aufgabe: Abstand von einem Punkt zu einem anderen Punkt Java Basics - Anfänger-Themen 10
T Aufgabe zum Verschlüsselungsalgorithmus Java Basics - Anfänger-Themen 11
J Erste Schritte Aufgabe Java Basics - Anfänger-Themen 24
T Methoden BinaryTree transformieren Aufgabe Java Basics - Anfänger-Themen 36
J Brauche Hilfe bei einer aufgabe Java Basics - Anfänger-Themen 1
J Hat jemand einen Lösungsansatz für diese Aufgabe? Java Basics - Anfänger-Themen 1
S Sortieralgorithmus - Aufgabe mit Lösungsidee Java Basics - Anfänger-Themen 20
A Aufgabe: Gleitkommazahlen Java Basics - Anfänger-Themen 3
A Java-Programmierungs Aufgabe Java Basics - Anfänger-Themen 2
U Aufgabe zu Kontrollstrukturen Java Basics - Anfänger-Themen 8
G Probleme bei Aufgabe Java Basics - Anfänger-Themen 12
J Aufgabe als Feuertaufe Java Basics - Anfänger-Themen 8
S Unbedingte hilfe bei Java Aufgabe [Schleife / Zinsrechnung] Java Basics - Anfänger-Themen 14
J Hilfe bei Java Aufgabe (Restschuld berechnen) Java Basics - Anfänger-Themen 11
G Ratlosigkeit zur Aufgabe im Anhang (boolean, equals.) Java Basics - Anfänger-Themen 20
S Hilfe bei Java Aufgabe (Schleifen) Java Basics - Anfänger-Themen 25
B Probleme bei einer Aufgabe Java Basics - Anfänger-Themen 19
B BITTE!! Ich brauche dringende Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 17
H aufgabe 4 Java Basics - Anfänger-Themen 297
M Hilfe bei Projektorientierungs-Aufgabe !! Java Basics - Anfänger-Themen 3
J Java Starthilfe Verständnisfrage Aufgabe Java Basics - Anfänger-Themen 2
H java aufgabe Java Basics - Anfänger-Themen 7
E Mathematische Aufgabe: Antwort entspricht nicht der Lösung Java Basics - Anfänger-Themen 5
H was verlangt die aufgabe ? Java Basics - Anfänger-Themen 10
H java aufgabe Java Basics - Anfänger-Themen 68
H java aufgabe Java Basics - Anfänger-Themen 25
H aufgabe java luhn algorithmus Java Basics - Anfänger-Themen 10
R Java Aufgabe (Teilbarkeit) Java Basics - Anfänger-Themen 7
H java aufgabe Java Basics - Anfänger-Themen 44
H java aufgabe Java Basics - Anfänger-Themen 7
H java string aufgabe Java Basics - Anfänger-Themen 10
H array aufgabe Java Basics - Anfänger-Themen 13
D Erste Schritte Lösen dieser Aufgabe, Hilfe! Java Basics - Anfänger-Themen 12
H aufgabe Java Basics - Anfänger-Themen 9
H lösung aufgabe Java Basics - Anfänger-Themen 12
S Hilfe für Aufgabe Java Basics - Anfänger-Themen 4
H java online aufgabe Java Basics - Anfänger-Themen 4
H Array aufgabe Java Basics - Anfänger-Themen 7
H oop aufgabe probe kalusur Java Basics - Anfänger-Themen 11
H oop aufgabe Java Basics - Anfänger-Themen 19
H JAVA AUFGABE Java Basics - Anfänger-Themen 7
W Thread Aufgabe - Vorgehensweise Java Basics - Anfänger-Themen 8
J Problem bei Aufgabe "Geldstückelung" Java Basics - Anfänger-Themen 5
P Problem bei Java-Aufgabe Java Basics - Anfänger-Themen 12

Ähnliche Java Themen

Neue Themen


Oben