www.vorkurse.de
Ein Projekt von vorhilfe.de
Die Online-Kurse der Vorhilfe

E-Learning leicht gemacht.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Teams · Forum · Wissen · Kurse · Impressum
Forenbaum
^ Forenbaum
Status Mathe-Vorkurse
  Status Organisatorisches
  Status Schule
    Status Wiederholung Algebra
    Status Einführung Analysis
    Status Einführung Analytisc
    Status VK 21: Mathematik 6.
    Status VK 37: Kurvendiskussionen
    Status VK Abivorbereitungen
  Status Universität
    Status Lerngruppe LinAlg
    Status VK 13 Analysis I FH
    Status Algebra 2006
    Status VK 22: Algebra 2007
    Status GruMiHH 06
    Status VK 58: Algebra 1
    Status VK 59: Lineare Algebra
    Status VK 60: Analysis
    Status Wahrscheinlichkeitst

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Java" - objektorientierter Entwurf
objektorientierter Entwurf < Java < Programmiersprachen < Praxis < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Java"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

objektorientierter Entwurf: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 19:31 Do 30.07.2009
Autor: Boki87

Aufgabe
[Dateianhang nicht öffentlich]
[Dateianhang nicht öffentlich]
[Dateianhang nicht öffentlich]
[Dateianhang nicht öffentlich]

Hallo

ich lerne gerade auf meine Informatik III Prüfung.
Könnte mir bitte jemand sagen ob meine Ideen richtig sind und bei den Unklarheiten helfen.


a)ist ein, da Brummbaer abgeleitete Klasse von Kuscheltier

b)hat ein, Begründung???

c)
[Dateianhang nicht öffentlich]

d)protected Vector Zusatzfunktionen= new Vector();

e)class Affe extends Kuscheltier{
String getBeschreibung(){
String name="Affe";
return(name);
}

int getGroesse(){
int groesse=5;
return(groesse);
}

int getGewicht(){
int gewicht=5;
return(gewicht);
}

int getVerkaufspreis(){
int preis=5;
return(preis);
}}

Wie mache ich das mit den Zusatzfunktionen denn?

f) String Zusatzfunktionen(){
Vector Kuscheltier=new Vector();
int x=Kuscheltier.size();
String s;
for(int i=1; i<=x; i++){
s+=Kuscheltier.get(i).toString();
}}


Ist das alles soweit richtig?

Vielen Dank

Dateianhänge:
Anhang Nr. 1 (Typ: jpg) [nicht öffentlich]
Anhang Nr. 2 (Typ: jpg) [nicht öffentlich]
Anhang Nr. 3 (Typ: jpg) [nicht öffentlich]
Anhang Nr. 4 (Typ: jpg) [nicht öffentlich]
Anhang Nr. 5 (Typ: png) [nicht öffentlich]
        
Bezug
objektorientierter Entwurf: Antwort
Status: (Antwort) fertig Status 
Datum: 22:04 Do 30.07.2009
Autor: daN-R-G

Hallo!

Zu a) Geht so durch! ;)

Zu b) Stimmt auch. Zur Begründung...nun ja. Ich weiß nicht in welchen Detailgrad ihr dort arbeiten sollt, sofert eine "hat-ein"-Relation eine detailiertes Arbeiten erlaubt ;) Die Zusatzfunktionen sind im Prinzip ja eine Komposition, also sind Elemente, die ein Kuscheltier "besitzt".

Zu c) Der Affe soll doch Waschbar sein! Dann müsste auch dieser das Interface implementieren, und nicht der Hoppelhase.
Zudem fehlen die Verbindungen zu den Zusatzfunktionen (mit evtl. Kardinalitäten).

Zu d) Könnte man machen, auch wenn ich eine Set verwenden würde. In meinen augen würde es keine Sinn machen, dass ein Kuscheltier die gleiche Zusatzfunktion mehrfach besitzt und die Reihenfolge wäre für mich auch egal. Aber das ist wie gesagt Geschmacksacke.
Sichtbarkeiten setze ich auch eher auf private, und nur sofern ein guter Grund dazu besteht, dass eine Subklasse aufs Attribut direkt zugreifen soll, mache ich dieses protected. Aber das ist halt ansichtssache.

Zu e) Was verstehst du denn nicht?
Du weißt, was ein Konstruktor ist? Sobald du z.B. einen Affen erstellst, soll dieser halt direkt die gewünschten Zusatzfunktionen in deine (als Attribut vorhandene) Collection hinzugefügen.

Zu f) Die Implementierung macht irgendwie wenig Sinn...
Du erstellst eine neuen Vector, dann fragst du seine Größe ab (ist in dem Fall immer 0), und durchläufst dann diesen.
Anstatt einen neuen Vector zu erstellen, solltest du lieber den benutzen, den du als Attribut zur verfügung hast! In dem befinden sich doch auch die Zusatzfunktionen.

Bedenke auch: Der Index beginnt bei 0!

Tipp: Bei den neuen Java-Collections kann man durch diese per Erweiterter for-Schleife iterieren. Habt ihr vll. auch schon mit Generics gearbeitet?

Ansonsten:

for (int i = 0; i < zusatzfunktionen.size(); i++) {
    Zusatzfunktion funktion = (Zusatzfunktion) zusatzfunktionen.get(i);
    // Weiterer Code für die Ausgabe...
}




Bezug
                
Bezug
objektorientierter Entwurf: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 22:56 Do 30.07.2009
Autor: Boki87

Vielen Dank für die Antwort, das mit dem Hoppelhasen war ein Leichtsinnsfehler :)

[Dateianhang nicht öffentlich]

d) Ich habe die Sichtbarkeit auf protected gesetzt, da die abgeleiteten Klassen Affe und Brummbaer auch drauf zugreifen sollen.

e)Mache ich dann einfach Zusatzfunktionen.add(new KannSingen());?

Komplett dann:

class Affe extends Kuscheltier{

Affe(){
Zusatzfunktionen.add(new KannSingen());}


String getBeschreibung(){
String name="Affe";
return(name);
}

int getGroesse(){
int groesse=5;
return(groesse);
}

int getGewicht(){
int gewicht=5;
return(gewicht);
}

int getVerkaufspreis(){
int preis=5;
return(preis);
}}

f)Ist das dann so richtig?

String Zusatzfunktionen(){

for (int i = 0; i < zusatzfunktionen.size(); i++) {
    
Zusatzfunktion funktion = (Zusatzfunktion) zusatzfunktionen.get(i);
} }

Was gebe ich denn hier jetzt genau aus?

Gruß
Boki87


Dateianhänge:
Anhang Nr. 1 (Typ: png) [nicht öffentlich]
Bezug
                        
Bezug
objektorientierter Entwurf: Antwort
Status: (Antwort) fertig Status 
Datum: 23:11 Do 30.07.2009
Autor: daN-R-G

Hi!

Also das mit dem Diagramm stimmt so noch nicht genau. Jetzt würde ja jedem Kuscheltier genau eine Zusatzfunktion zugeordnet werden und jede Zusatzfunktion würde nur einem Kuscheltier gehören.

Ein Affe kann bzw. HAT ja sogar andere Funktionen als ein anderes Tier. Also müssten die Zugehörigkeiten schon zu den direkten Unterklassen gehören.


Zu dem Hinzufügen im Konstruktor: Ja! Falls dein Attribut in der Kuscheltier-Klasse "Zusatzfunktionen" heißt, ist das so gemeint.
Gewöhn dir aber Bitte ganz schnell an, alle Variablen mit Kleinbuchstaben zu beginnen. Das ist der "gute Ton" in den Java Coding-Conventions!
Bei Zusatzfunktionen.add(new KannSingen()) würde man direkt denken, dass add() eine Klassen-Methode der Klasse Zusatzfunktionen ist.

Bei der Schleife habe ich dir nur gesagt, wie du korrekt durch diese iterierst.
Die Methode soll ja einen String mit allen Zusatzfunktionen zurückgeben. So wie du es ursprünglich geplant hast, war das doch garnicht so falsch!!
Du erstellst einen String, an den du in jedem Schleifendurchlauf den Namen der Zusatzfunktion hinzufügtst und gibst diesem am ende der Methode zurück!

Implementier die Klassen doch einfach mal und führ das ganze aus. So lernst du am besten!


Bezug
                                
Bezug
objektorientierter Entwurf: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 00:07 Fr 31.07.2009
Autor: Boki87

Hallo

vielen Dank nochmal. Ich habs jetzt probiert zu programmieren aber ich komm einfach nicht weiter.

Könntest du mir vllt noch einen Hinweis geben?

Vielen Dank

Bezug
                                        
Bezug
objektorientierter Entwurf: Antwort
Status: (Antwort) fertig Status 
Datum: 00:23 Fr 31.07.2009
Autor: daN-R-G

Wo klappt denn etwas nicht?

Ich weiß grad leider nicht an welcher Baustelle du arbeitest...

Bezug
                                                
Bezug
objektorientierter Entwurf: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 00:39 Fr 31.07.2009
Autor: Boki87

Ich habe nochmal meinen Ansatz probiert:

String Zusatzfunktionen() {
String s= new String();
for( int i = 0; i < zusatzfunktionen.size(); i++){
s += zusatzfunktionen.get(i).toString();
}
return(s);
}

Ich kriege dauernd den Fehler, dass kein String zurückgegeben wird. Woran leigt das?

Vielen Dank

Bezug
                                                        
Bezug
objektorientierter Entwurf: Antwort
Status: (Antwort) fertig Status 
Datum: 08:58 Fr 31.07.2009
Autor: daN-R-G

Hm... direkt falsch ist da nichts.

Wie lautet die genaue Fehlermeldung und zeig mal genau den Code, der bei der in der Klasse steht. Also rauskopieren.

Bezug
                                                                
Bezug
objektorientierter Entwurf: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 22:30 Fr 31.07.2009
Autor: Boki87

Ich habs selber raus, vielen Dank nochmal

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Java"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.vorkurse.de
[ Startseite | Mitglieder | Teams | Forum | Wissen | Kurse | Impressum ]