Seite 3 von 3

info 2

Verfasst: 13.02.2008 15:51
von TaiLs
was war jetzt eigentlich mit dem toString muss das immer implementiert werden in jeder klasse?

und das mit polymorphie seh ich auch so nur im zusammenhang mit vererbung (siehe wiki)
das mit der mehrfachvererbung seh ich aber ein hatte nur an extends gedacht ob eine klasse von mehreren erben kann naja egal

info 2

Verfasst: 13.02.2008 15:51
von kingkay
um die nicht die laune zu verderben, aber du weißt schon, dass FACH ein ARRAY und kein ArrayList war? deswegen kannst du es nicht mit einem iterator durchlaufen lassen, da der diesen nicht unterstützt!
außerdem wurde in der methode aufstellen oder so (in Schrank), wo die methode gibMaxHoehe drin stand, ja schon eine schleife mit allen fächern durchlaufen, wo man nun nur noch testen muss, welche die maximale hoehe hat.

info 2

Verfasst: 13.02.2008 16:03
von MT_05
zu 3c) sollte man eine neue Klasse Regal schreiben die Fächer besitzen. Alle Faecher sind gleich deswegen können wir von Fach erben. Nur die maximale Gesamtlast und Anzahl der Fächer sollte bei Konstruktor übergeben werden.
Code:

public class Regal extends Fach {
private int maxGesamtlast;
private int maxLastEinzel;
private int maxHoehe;
private int anzahl;
privat ArrayList dinge;

public Regal (int last, int hoehe, int gesamtlast, int anzahl)
super(last, hoehe);
maxGesamtlast = gesamtlast;
maxHoehe = hoehe;
maxLastEinzel = last;
dinge = new Ding();
}
public int gibMaxHoehe() {
return maxHoehe;
}

public boolean aufstellbar(Ding g) {
if ((g.gibGewicht()+n*super.gibMaxLast) > maxGesamtLast || g.gibHoehe() > maxHoehe) {
return false;
}
else {
return true;
}
}
public boolean aufstellen(Ding g) {
if (aufstellbar(g)) {
dinge.add(ding) ;
}
}
}

info 2

Verfasst: 13.02.2008 16:08
von MT_05
@TaiLs: toString ist eingentlich von Java vordefiniert. Mann muss nicht in alle Klasse implimentieren. Das ist ja optional, wenn man mit toString einen sinnvolle Text ausgeben will.

info 2

Verfasst: 13.02.2008 16:11
von MT_05
Bei 5 habe ich die Fabrikmethode genommen und irgend was mit Iterator geschrieben. Aber ich muss sagen das bei Programmieraufgaben bisschen zu viiel war :(. Man hat ja insgesamt 7 Klassen und kann nicht immer die Übersicht zu alle Klasse haben in so kurzer Zeit :(

info 2

Verfasst: 13.02.2008 16:19
von Myuu
a) Private Instanzfelder führen zu hoher Kopplung

b)Die Sichtbarkeit von Parametern ist auf die deklarierende Methode beschränkt

c)Elemente können aus Sammlungsklassen entfernt werden

d)Die Methode toString () muss in jeder Klasse implementiert werden

e)Auf Klassenfelder (static) darf auch von Instanzmethoden zugegriffen werden

f) Polymorphie tritt nur bei Vererbung auf

g) Java unterstützt Mehrfachvererbung

h) Geprüfte Exceptions müssen im Methodenkopf deklariert werden

i)Superklassen enthalten immer mehr Methoden als Subklassen

j) Auf Datenfelder der Superklasse darf in Subklassen immer zugegriffen werden

info 2

Verfasst: 13.02.2008 16:21
von kingkay
aso was ich nochma fragen wollte, wo ich mir ni 100% sicher bin...
ist die klasse fach eine subklasse von schrank? also wil ich habe nur n nurtzungsbedienung gemalt! was mich daran aber gestört hat, war, dass es ein protected datenfeld in schrank gab?! war das ablegung oder habe ich da den vererbungspfeil vergessen?

info 2

Verfasst: 13.02.2008 16:21
von Myuu
f w w f w f f w f f
würd ich mal sagen
ach und interfaces hat nix mit vererbung zu tun

info 2

Verfasst: 13.02.2008 16:24
von kingkay
a) nein
b) ja
c) ja
d) nein
e) ja
f) ja
g) ja
h) ja
i) nein
j) nein

also bei f) bin ich mir sicher, aber bei g nicht

info 2

Verfasst: 13.02.2008 16:32
von MT_05
@Myuu: sorry hab nachgelesen, interface ist ersatzt für Mehrfachvererbung => g falsch
wieder 2 Pünktchen weniger :(

info 2

Verfasst: 13.02.2008 16:34
von Myuu
zu g)
skirpt seite 71
\" Java: Interfaces statt Mehrfachvererbung\"

zu f)
die diskussion gabs schon letztes semester
polymorphie kann auch bei interfaces auftreten
also nich nur bei vererbung

info 2

Verfasst: 13.02.2008 16:34
von kingkay
also ich habe nochma im skript nachgeschaut, und dort teht eindeutig drin: \"Interface statt Mehrfachvererbung\", somit besitzt java keine mehrfachvererbung!!!
jedoch bei der frage mit den polymorphie und mehrfachvererbung kann man sicher streiten, da interfaces ja als \"art\" vererbung angesehen werden kann... also das ist nicht 100% sicher

info 2

Verfasst: 13.02.2008 16:37
von Myuu
bei 6 hab ich auch 3 und 5 und bei 1 lager als super klasse für stellplatz und lagerhalle
lagerhalle als superklasse für schrank
und halt ding wird von lager lagerhalle und schrank benutzt und fach wird nur von schrank benutzt
keine ahnung ob das reicht

info 2

Verfasst: 13.02.2008 16:41
von kingkay
genau so habe ich es auch!
aber ma so ne frage, weil bin mir grad selber ni sicher:

Lager o1 = new schrank oder so war das bei 4. in einer zeile!

das geht aber, obwohl weil schrank von lagerhalle und lagerhalle wiederum von lager erbt, oder hab ich da was verwechselt?

info 2

Verfasst: 13.02.2008 16:45
von MT_05
@:kingkay:
Lager o1 = new schrank ist richtig denn wie du es sagte, schrank erbt von lagerhalle und lagerhalle wiederum von lager :)

info 2

Verfasst: 13.02.2008 16:48
von kingkay
also ich hoffe mal, dass ich grad so bestehe...
wie viele fehler habt ihr den so bei 2.? weil irgendjemand von 9 gesprochen hat? ich habe nur 5, und in der probeklausur waren es auch nur 6!

info 2

Verfasst: 13.02.2008 17:09
von Myuu
ich glaub ich 7 fehler oder so
und das lager o1 = new schrank is richtig

info 2

Verfasst: 13.02.2008 18:37
von MT_05
ich hatte 6 gefunden.
1) \"(\" fehlt
2) \"new\" weglassen bei Iterator
3) Cast Operator fehlt
4) Wert von finaly kann nicht geändert werden
5) \"{\" fehlt
6) k.a mehr :D

info 2

Verfasst: 13.02.2008 19:24
von MartinZippel
Ich freu mich, dass jetzt so viel gepostet wird. Ohne die Aufgabenstellungen freuen sich die nach uns umso mehr...

info 2

Verfasst: 13.02.2008 20:48
von TaiLs
5) \"{\" fehlt

hmm eher eine zuviel

6) return war ausserhalb der Methode
7) ; statt . am Ende der einen Zeile
8) die ArrayList wurde nicht initialisiert
9) () statt [ ] bei einem Methodenaufruf

info 2

Verfasst: 14.02.2008 09:52
von Mike Matusow
[] stand bei 2 Methodenaufrufen

info 2

Verfasst: 14.02.2008 13:52
von MT_05
genau das mit [] hatte ich auch aber Tails das mit \"die ArrayList wurde nicht initialisiert\" sehe ich anders.
also day code war so ähnliches:

Datenfelder: privat ArayList irgendwas;
Kontruktor: public Klassenname (ArrayList l)
irgendwas = l; => da wird ArrayList doch initialisiert. Also nicht unbeding \"irgendwas = new ArrayList();\"
mit \"irgendwas = new ArrayList();\" hat man irgendwas einen \"null\"-Wert zugewiesen und mit \"irgendwas = l\"hat man es ein bestimmte Liste zugewiesen, das bei Kontruktorparameter übergeben wird. Deswegen hatte ich gleich am Anfang gefragt ob da nein 1 oder ein l steht. Die Schriften sahen sehr ählich aus und 1 wäre unsinn gewesen.

info 2

Verfasst: 14.02.2008 20:09
von TaiLs
dem konstruktor wird hier ne arraylist übergeben meinesachtens muss er für sich noch eine initialisieren um dann die alte in diese hineinzuschieben , falsch kann es denke ich nicht sein vllt überflüssig aber da leg ich mich nicht fest

info 2

Verfasst: 14.02.2008 23:15
von MT_05
also ich hab folgendes Code in BluJ reingehaut und bei übersetzen wurde kein Fehler gemeldet:

import java.util.ArrayList;
public class Test
{

private ArrayList array;

public Test(ArrayList l)
{
array = l;
}

}

l wird dann in array hineingeschoben!