matheraum.de
Raum für Mathematik
Offene Informations- und Nachhilfegemeinschaft

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Mathe
  Status Schulmathe
    Status Primarstufe
    Status Mathe Klassen 5-7
    Status Mathe Klassen 8-10
    Status Oberstufenmathe
    Status Mathe-Wettbewerbe
    Status Sonstiges
  Status Hochschulmathe
    Status Uni-Analysis
    Status Uni-Lin. Algebra
    Status Algebra+Zahlentheo.
    Status Diskrete Mathematik
    Status Fachdidaktik
    Status Finanz+Versicherung
    Status Logik+Mengenlehre
    Status Numerik
    Status Uni-Stochastik
    Status Topologie+Geometrie
    Status Uni-Sonstiges
  Status Mathe-Vorkurse
    Status Organisatorisches
    Status Schule
    Status Universität
  Status Mathe-Software
    Status Derive
    Status DynaGeo
    Status FunkyPlot
    Status GeoGebra
    Status LaTeX
    Status Maple
    Status MathCad
    Status Mathematica
    Status Matlab
    Status Maxima
    Status MuPad
    Status Taschenrechner

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:Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenJavaobjektorientierter Entwurf
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Philosophie • Religion • Kunst • Musik • Sport • Pädagogik
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.matheraum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]