www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Vorhilfe
  Status Geisteswiss.
    Status Erdkunde
    Status Geschichte
    Status Jura
    Status Musik/Kunst
    Status Pädagogik
    Status Philosophie
    Status Politik/Wirtschaft
    Status Psychologie
    Status Religion
    Status Sozialwissenschaften
  Status Informatik
    Status Schule
    Status Hochschule
    Status Info-Training
    Status Wettbewerbe
    Status Praxis
    Status Internes IR
  Status Ingenieurwiss.
    Status Bauingenieurwesen
    Status Elektrotechnik
    Status Maschinenbau
    Status Materialwissenschaft
    Status Regelungstechnik
    Status Signaltheorie
    Status Sonstiges
    Status Technik
  Status Mathe
    Status Schulmathe
    Status Hochschulmathe
    Status Mathe-Vorkurse
    Status Mathe-Software
  Status Naturwiss.
    Status Astronomie
    Status Biologie
    Status Chemie
    Status Geowissenschaften
    Status Medizin
    Status Physik
    Status Sport
  Status Sonstiges / Diverses
  Status Sprachen
    Status Deutsch
    Status Englisch
    Status Französisch
    Status Griechisch
    Status Latein
    Status Russisch
    Status Spanisch
    Status Vorkurse
    Status Sonstiges (Sprachen)
  Status Neuerdings
  Status Internes VH
    Status Café VH
    Status Verbesserungen
    Status Benutzerbetreuung
    Status Plenum
    Status Datenbank-Forum
    Status Test-Forum
    Status Fragwürdige Inhalte
    Status VH e.V.

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
Dt. Schulen im Ausland: Mathe-Seiten:

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.vorhilfe.de