Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Softwaretechnik » Vererbung » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Seiten (2): « vorherige 1 [2] Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Vererbung
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Kontrolliere mal die Klammersetzung.

__________________
Syntax Highlighting fürs Board (Link)
28.02.2015 19:50 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
javaneu
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Blöder Fehler .
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
public abstract class BinaryOperation implements Term
{
    
    private int Left;
    private int Right;
   public Term getLeft(){
       
       return this.Left;
       
    
    }
    
    public Term getRight(){
        
        return this.Right;
    
    
    }
}



Irgendwas stimmt hier wieder nicht .

Ich muss doch left und right als private definieren oder ?
28.02.2015 20:07
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

wenn Left und Right (nach Konvention eigentlich klein geschrieben) vom Typ int sind, musst du auch ein int zurückgeben.

Ich kenne BlueJ nicht, aber eclipse hilft dir auch bei gettern, kannst es ja mit BlueJ auch testen:
Lösche die Funktionen getLeft und getRight komplett. Tippe dann get und drücke Strg+Leertaste.
In eclipse (ebenso NetBeans) kommt da ein Menü, das dir getLeft anbietet. Wenn du das auswählst, wird der Code ergänzt.

__________________
Syntax Highlighting fürs Board (Link)
28.02.2015 20:12 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
javaneu
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:

public abstract class BinaryOperation implements Term
{
    
    private int left;
    private int right;
   public Term getLeft(){
       
       return this.left;
       
    
    }
    
    public Term getRight(){
        
        return this.right;
    
    
    }
}



Funktioniert immer noch nicht ?
28.02.2015 20:19
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Du hast doch nur die Groß-/Kleinschreibung geändert.

public int getLeft()

__________________
Syntax Highlighting fürs Board (Link)
28.02.2015 20:20 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
javaneu
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
public abstract class BinaryOperation implements Term
{
    
    private int left;
    private int right;
   public Term int getLeft(){
       
       return this.left;
       
    
    }
    
    public Term int getRight(){
        
        return this.right;
    
    
    }
}



Fehler identifier expected markierung bei term
28.02.2015 20:20
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Term hat an der Stelle ja auch nichts verloren.

__________________
Syntax Highlighting fürs Board (Link)
28.02.2015 20:22 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Karlito Karlito ist männlich
Kaiser


Dabei seit: 11.04.2011
Beiträge: 1.461

RE: Vererbung Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:
Original von javaneu
c) Schreiben Sie als Nächstes die abstrakte Klasse BinaryOperation, die ebenfalls das Interface
Term implementiert. Schreiben Sie die Methoden public Term getLeft() und public Term
getRight(), die den linken bzw. rechten im Konstruktor festgelegten Operanden der Operation
zurückgeben. Die Methode getValue() schreiben Sie hier nicht ? warum geht das?


Sorry euler, aber Term muss sogar der Rückgabetyp sein. Fehlerhaft ist der Type der privaten Felder. Außerdem fehlt noch der Konstruktor.

Gruß,

Karlito
28.02.2015 20:29 Karlito ist offline E-Mail an Karlito senden Beiträge von Karlito suchen Nehmen Sie Karlito in Ihre Freundesliste auf
javaneu
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

public abstract class BinaryOperation implements Term

Hier auch ein fEHLER:

Es wird gesagt BinaryOperation is public .

Should be declared in a file named Binary Operation.

Darf man das so nicht lassen?
28.02.2015 20:30
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Steht doch alles da, du hast die Datei anders benannt, als die Klasse.
BinaryOperation gehört in die Datei BinaryOperation.java

__________________
Syntax Highlighting fürs Board (Link)
28.02.2015 20:33 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
javaneu
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

d) Erstellen Sie die Klasse Addition als Unterklasse von BinaryOperation und implementieren Sie
nun die Methode getValue() so, dass diese die arithmetische Summe der beiden Operanden berechnet
und zurückgibt. Vergessen Sie den Konstruktor der Klasse nicht.

Wie erstellt man genau eine Unterklasse bei java?
28.02.2015 20:47
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

code:
1:
public class Addition extends BinaryOperation

Den Konstruktor solltest du bei BinaryOperation auch noch ergänzen.
Ist zwar abstract, aber irgendwo musst du right und left ja zuweisen.

__________________
Syntax Highlighting fürs Board (Link)

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von eulerscheZahl: 28.02.2015 20:55.

28.02.2015 20:53 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
javaneu
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

public class Addition extends BinaryOperation{
private int value;
AbsoluteTerm(int value) {

this.value = value;
//hier kommt noch was
}

public int getValue(){

return this.value;
}

}


Ich weiss das ich noch implementieren muss die get methode.

Aber blue j meckert schon .

invalid method ,return type required

Ich verliere die geduld unglücklich
28.02.2015 21:08
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Um das Ganze abzukürzen:
code:
1:
2:
3:
public interface Term {
	public int getValue();
}


code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
public abstract class BinaryOperation implements Term {
	private int left;
	private int right;

	public BinaryOperation(int left, int right) {
		this.left = left;
		this.right = right;
	}

	public int getLeft() {
		return left;
	}

	public int getRight() {
		return right;
	}
}


code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
public class Addition extends BinaryOperation {
	public Addition(int left, int right) {
		super(left, right);
	}

	@Override
	public int getValue() {
		return this.getLeft() + this.getRight();
	}
}


Addition braucht einen Konstruktor, der die Werte für rechts und links entgegennimmt. Diese werden dann an den Konstruktor der Basisklasse übergeben (super(left, right)). Ein Member value brauchst du nicht zwingend. Natürlich könntest du die Addition auch einmal im Konstruktor durchführen, statt jedes Mal bei getValue().

__________________
Syntax Highlighting fürs Board (Link)
01.03.2015 06:54 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
Seiten (2): « vorherige 1 [2] Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » Softwaretechnik » Vererbung