info 2

Aufgaben, Lösungen, Klausuren
Myuu
Beiträge: 64
Registriert: 16.07.2007 18:02
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2012

info 2

Beitrag von Myuu » 12.02.2008 13:41

naja das porblem is da steht halt \"nur in verbindung mit vererbung\".....es tritt aber auch bei interfaces, was halt keine vererbung an sich is, auf.
naja bei den entwurfsmustern war ja letztes semester \"beobachter\" dran oder so...

Benutzeravatar
Krüsty
Beiträge: 163
Registriert: 11.10.2004 20:34
Name: Krüsty
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2012
Angestrebter Abschluss: Dipl-Ing.
Wohnort: Dresden
Contact:

info 2

Beitrag von Krüsty » 12.02.2008 13:46

[quote=kingkay]
aso und zu den frage, ob es polymorphie nur in vererbung gibt, würde ich sagen, dass das wahr ist, weil zum einen interfaces auch eine art von vererbung ist und zum anderen z.b. auf wikipedia steht, dass polymorphie in verbindung mit vererbung auftritt.[/quote]
Wenn ich das Script richtig lesen, dann heißt es dort \"Interfaces statt Mehrfachvererbung\". Vererbung heißt für mich streng genommen, dass ich Funktionen/Methoden aus den Übergeorneten KLASSEN weiter verwenden kann. Vererbung geht also nur mit Klassen (ich habs jedenfalls noch nirgends anders gefunden). Der Satz aus Wiki ist richtig, es fehlt ja auch das \"nur\" im Satz!
Wer sich zu wichtig für kleine Arbeiten hält, ist oft zu klein für
wichtige Arbeiten. (Jaques Tati)

Benutzeravatar
Mike Matusow
Beiträge: 101
Registriert: 04.08.2007 15:14
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2006
Angestrebter Abschluss: Dipl-Ing.
Wohnort: Dresden

info 2

Beitrag von Mike Matusow » 12.02.2008 14:32

Noch mal was zu den Exceptions. Im Prinzip haben MT_05 und kingkay beide recht. Alle Exceptions, die geworfen werden, müssen im Methodenkopf angekündigt werden, die Ausnahme sind RuntimeExceptions, wie in kinkays Beipsiel die IllegalArgumentException oder z.B. die NullPointerException.

Stromer
Beiträge: 9
Registriert: 18.01.2008 11:01

info 2

Beitrag von Stromer » 12.02.2008 15:44

Hey ho ich hab mal ne Frage zu dem Multiple-Choice-Test:
Die dynamische Methodensuche beginnt immer bei Object?
Ja oder nein?
Für mich stellt sich halt die Frage was hier Object ist? Die Superklasse aller Klassen oder die Instanz der Klasse?(daher kommt es halt je nach interpretation zu versch. Antworten)

Myuu
Beiträge: 64
Registriert: 16.07.2007 18:02
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2012

info 2

Beitrag von Myuu » 12.02.2008 16:30

naja Object ist hier die superklasse aller klassen
und damit ist nein die antwort
(wenn die instanz der klasse gemeint wäre würde es ja heissen:\"Die dynamische Methodensuche beginnt immer beim Objekt\")

MartinZippel
Beiträge: 1543
Registriert: 02.11.2005 19:16
Name: Martin Zippel
Geschlecht: weiblich
Studienrichtung: Informatik
Matrikel: 2005
Angestrebter Abschluss: Dipl-Ing.
Wohnort: Püchau
Contact:

info 2

Beitrag von MartinZippel » 12.02.2008 17:10

Ich hab zum Rumspielen den Quelltext von Aufgabe 1 abgetippt, findet ihr hier.

sebsis
Beiträge: 201
Registriert: 15.10.2006 22:34
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2006
Angestrebter Abschluss: Dipl-Ing.
Contact:

info 2

Beitrag von sebsis » 12.02.2008 17:20

ma ne frage zu den entwurfsmustern. so wie ich das raus gehört habe kam in der letzten klausur beobachter dran.musstet ihr da einen kompletten beobachter proggen oder wie lief das ab? weil das is ja schon relativ viel.

MartinZippel
Beiträge: 1543
Registriert: 02.11.2005 19:16
Name: Martin Zippel
Geschlecht: weiblich
Studienrichtung: Informatik
Matrikel: 2005
Angestrebter Abschluss: Dipl-Ing.
Wohnort: Püchau
Contact:

info 2

Beitrag von MartinZippel » 12.02.2008 17:58

Wieso hat Garage eigentlich als einzige Klasse die Methode gibWohnflaeche? Das ist wohl einfach nur zum Spaß, es wird ja auch nicht auf Flaeche oder so zugegriffen...?

sebsis
Beiträge: 201
Registriert: 15.10.2006 22:34
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2006
Angestrebter Abschluss: Dipl-Ing.
Contact:

info 2

Beitrag von sebsis » 12.02.2008 18:03

einfach nur so zum spaß nehm ich mal an

MartinZippel
Beiträge: 1543
Registriert: 02.11.2005 19:16
Name: Martin Zippel
Geschlecht: weiblich
Studienrichtung: Informatik
Matrikel: 2005
Angestrebter Abschluss: Dipl-Ing.
Wohnort: Püchau
Contact:

info 2

Beitrag von MartinZippel » 12.02.2008 19:15

Ich hab hier eine Seite gefunden, ich find die ganz gut für welche, die wieder neu einsteigen nach langer Java-Abstinenz: Java ich lern\'s nochmal

Myuu
Beiträge: 64
Registriert: 16.07.2007 18:02
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2012

info 2

Beitrag von Myuu » 12.02.2008 20:25

hmm was ich immernoch nich gerafft hab is was sollen wir in der aufgabe 4 der probeklausur bei den zeilen 10-15 hinschreiben?

EnterShikari
Beiträge: 43
Registriert: 06.06.2007 18:22

info 2

Beitrag von EnterShikari » 12.02.2008 22:42

Ich glaube du musst nur hinschreiben in welcher klasse bei der dynamischen methodensuche die methode gefunden wird.
Bsp: zeile 10 - garnix, da ja zeile 3 nicht möglich ist
zeile 11 - Methode gibFlaeche aus klasse gebaeude wird aufgerufen, da die klasse Garage keine methode gibFlaeche hat und demzufolge die übergeodnete klasse durchsucht wird

MartinZippel
Beiträge: 1543
Registriert: 02.11.2005 19:16
Name: Martin Zippel
Geschlecht: weiblich
Studienrichtung: Informatik
Matrikel: 2005
Angestrebter Abschluss: Dipl-Ing.
Wohnort: Püchau
Contact:

info 2

Beitrag von MartinZippel » 12.02.2008 23:35

Und in welchem Fall würde die Methode gibFlaeche von der Klasse Gebaeude aufgerufen?

Myuu
Beiträge: 64
Registriert: 16.07.2007 18:02
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2012

info 2

Beitrag von Myuu » 13.02.2008 08:23

naja die methode gibFlaeche von gebaeude wird doch in jedem fall, ausser natürlich den beiden wo es nich geht und wo raum aufgerufen wird(da wird natürlich seine methode gibfläche benutzt), aufgerufen?

- Editiert von Myuu am 13.02.2008, 09:24 -

kingkay
Beiträge: 82
Registriert: 01.11.2006 11:18
Name: Kay
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2006
Angestrebter Abschluss: Dipl-Ing.
Contact:

info 2

Beitrag von kingkay » 13.02.2008 14:34

und wie fandet ihr die klausur? also ich fande sie ok, nicht leicht aber auch nicht schwer.
also ich würde ma ein paar lösungen von mir posten:

6. (2,4) = 3
(3,5) = 5

4. müsste alles gehen, bis auf den aufruf, wo man die beiden subklassen von lager verbindet

2. - new ist zuviel
- grenze ist konstante, kann somit nicht verändert werden
- eckige klammern bei gibHoehe müssen runde sein
- statt dem komma musste ein semikolon hin

5. habe ich fabrikmethode genommen ---> keine ahnung ob das stimmt

7. hat jemand die frage zufälligerweise abgeschrieben?

MT_05
Beiträge: 36
Registriert: 30.07.2006 14:04

info 2

Beitrag von MT_05 » 13.02.2008 14:58

Yeah! Yeah Java ist endlich raus :slayer::bier:
die Klausur war ganz angenehm. Die Zeit ist wie immer knapp.
Hier sind paare MC Fragen aus meinem Gedächtnis:

1) Elemente können aus Sammlungsklassen entfernt werden
Ja. Mit .remove()
2) private Datenfelder führen zu hohe Koplung.
Fals. Private Datenfelder = lose Kopplung
3) Geprüpte Exception müssen stets im Methodenkopf deklariert werden
Ja. Siehe Skrift.
4) auf Datenfelder von Superklasse dürfen Subklasse immer zugreifen.
Nein. Bei private Datenfelder nicht!
5) Java unterstützt Mehrfachvererbung.
Ja. Mit Interface
6) Polymophie treten nur bei Vererbung auf.
Nein. Treten an vielen Stellen in ojektorientierte Sprache auf (siehe Skrift)
- Editiert von MT_05 am 13.02.2008, 15:08 -

TaiLs
Beiträge: 37
Registriert: 19.04.2007 13:52

info 2

Beitrag von TaiLs » 13.02.2008 14:58

3 und 5 hab ich auch

4. da ging glaub das 4te net bei mir

2. da war mal in punkt da musste semikolon hin eine klammer zu viel und die return anweisung mussste um eins nach oben in die methode und die arraylist musste inizialisiert werden ... der cast vor it.next() fehlte am ende hat ich glaub 9 gefunden

5 fabrik hab ich auch , da der nach nem lager sucht ihm aber ein spezielles zurückgegeben wird Stellplatz oder Lager... keine ahnung wie das hieß

6. die die ich noch im kopf hab :

Mehrfachvererbung möglich --> nein
ob toString in jeder Klasse implementiert werden muss --> ka
instanzmethoden können auf static felder zugreifen --> denk ja
geprüfe exception muss im methodenkopf angegeben werden --> denk ja
give me more fire !!!

MT_05
Beiträge: 36
Registriert: 30.07.2006 14:04

info 2

Beitrag von MT_05 » 13.02.2008 15:07

@TaiLs:
Also die komplette Frage für Mehrfachvererbung lautet:
Java ünterstützt Mehrfachvererbung. Und Antwort ist Ja weil in Java Interface gibt, die für Mehrfachvererbung zuständig ist.

bei 6. hab ich 9 und 5 raus. Wie kam ihr denn auf 3?

kingkay
Beiträge: 82
Registriert: 01.11.2006 11:18
Name: Kay
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2006
Angestrebter Abschluss: Dipl-Ing.
Contact:

info 2

Beitrag von kingkay » 13.02.2008 15:11

also zu der frage, ob polymorphie nur bei vererbung auftritt:

laut wiki: \"Die Polymorphie der Objektorientierten Programmierung ist eine Eigenschaft, die immer im Zusammenhang mit Vererbung auftritt. Eine Methode ist polymorph, wenn sie in verschiedenen Klassen die gleiche Signatur hat, jedoch erneut implementiert ist.\"

deswegen würde ich sagen, dass das WAHR ist!

also 3 kommt beim (2,4) raus:
1. sum = 9, da feld[2] = 9
2. sum = 9, da feld[3] = 0
3. sum = 6, da feld[4] = -3
4. sum = sum/2 = 3
- Editiert von kingkay am 13.02.2008, 15:16 -

MT_05
Beiträge: 36
Registriert: 30.07.2006 14:04

info 2

Beitrag von MT_05 » 13.02.2008 15:13

das Code sieht so aus:

int[] feld = {3, 4,9,0,-3};
public int berechne(int from, int to) {
int sum = 0;
try {
for (int i=from; i<=to; i++) {
sum = sum = sum + feld;
}
}
catch (ArrayOutOfBoundException e) {
for (int i=0; i<feld.length; i++) {
sum = sum + feld;
}
}
finally {
sum = sum/2;
}
return sum;
}

kingkay
Beiträge: 82
Registriert: 01.11.2006 11:18
Name: Kay
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2006
Angestrebter Abschluss: Dipl-Ing.
Contact:

info 2

Beitrag von kingkay » 13.02.2008 15:23

aso bei 3a) hab ich so was ähnliches

public void aufstellen(Ding g) {

if (aufstellbar(g) == true) {
last += g.gibGewicht();
}
}

und bei 3b)

hab ich einfach eine methode
public int gibHoehe() {
return hoehe;
}

in der klasse fach angenommen

und dann habe ich die methode

public int gibMaxHoehe() {
int hoehe = 0;
if (f.gibHoehe() > hoehe) {
hoehe = f.gibHoehe();
}
return hoehe;
}

in Klasse schrank definiert.

MT_05
Beiträge: 36
Registriert: 30.07.2006 14:04

info 2

Beitrag von MT_05 » 13.02.2008 15:35

scheixxx ich habe es auf catch springen lassen bei (2,4) :( jetzt habe ich den Fehler gemerkt :(
@kingkay:
bei 3) a) die methoden Kopf lautet: public void( nicht int) aufstellen(Ding g)
hab sogemacht:

public void aufstellen(Ding g) {
if (aufstellbar(g) == true) {
hinzufuegen(g);
}
}
also g wird in die ArrayList hinzugefügt, was auch immer aufstellen bedeutet. Man muss halt vorher mit if prüfen ob man dieses \"Ding\" in der Halle stellen kann (wegen Last und so)

bei 3b) hab ich den Hochie gefragt und er sagte dass wir die komplette schnittstelle für Klasse Fach schreiben müssen und daher müssen wir in Klasse Lager beachten, welche Methode Fach anzubieten hat.
Also Fach hat insgesamt 3 Methode, die in Lager aufgerufen wird: gibLast(), gibMaxHoehe() und gibMaxLast().
ich habe die Klasse Fach so geschrieben:

public class Fach {
private int maxhoehe;
private int last;
private int maxlast;

public Fach() {
......
}
public int gibLast() {
return last;
}
public int gibMaxHoehe() {
return last;
}
public int gibMaxLast() {
return last;
}

}

kingkay
Beiträge: 82
Registriert: 01.11.2006 11:18
Name: Kay
Geschlecht: männlich
Studienrichtung: Elektrotechnik
Matrikel: 2006
Angestrebter Abschluss: Dipl-Ing.
Contact:

info 2

Beitrag von kingkay » 13.02.2008 15:42

oh ja das mit dem hinzufügen zur liste habe ich vergessen, du musst aber auch die last erhöhen, da die anfangslast ja 0 ist und bei jedem teil erhöht wird
aber bei 3b stand auch nicht, dass man alle methoden angeben muss, weil schließlich ist nur die Höhe des faches wichtig und nicht wie viel es wiegt!
naja ist ja auch egal...
was hast du den so für fehler bei 2.?
und ging bei dir auch bei 4. nur eine zuweisung nicht?

MT_05
Beiträge: 36
Registriert: 30.07.2006 14:04

info 2

Beitrag von MT_05 » 13.02.2008 15:42

und für die Methode gibMaxHoehe(): wir müssen erstmals die ArrayList von faecher durch laufen um zu prüfen, welches Element \"fach\" von diesem Array die maxHoehe hat.

public int gibMaxHoehe() {
int hoehe = 0;
Iterator it = faecher.iterator();
while (it.hasNext) {
Fach fach = (Fach)it.next();
if (fach.gibMaxHoehe() > hoehe) {
hoehe = fach .gibMaxHoehe();
}
}
return hoehe;
}

MT_05
Beiträge: 36
Registriert: 30.07.2006 14:04

info 2

Beitrag von MT_05 » 13.02.2008 15:45

shit hab last erhoehen vergessen :( aber zu b) hat der Hochie gesagt dass wir die Klasse Fach so schreiben sollte, dass es auch funktioniert, daher muss man alle Schnittstellen (also Methoden, die von anderen Klassen benutzt werden) schreiben

Gesperrt

Zurück zu „1. und 2. Semester“