Klausur 1Lösung.pdf

Exams
Uploaded by Anonymous User at 2016-08-26
 0
214
4
Download
Hier kommt 120 10 raus weil am Anfang " " steht und somit das + als zusammensetzen gesehen wird oder? Btw. muss da nicht 60+10 rauskommen weil Sportler.getpuls -> return 60 ist?
View 1 more comment
Aber warum? hans wird ja als typ Sportler umgewandelt hier oder nicht?
Ich habe es mir so erklärt: Die Variable "Hans", die eine Referenz auf das Objekt hat, wird umgewandelt. Die Methode in dem Objekt bleibt aber überschrieben und die Referenz auch genau wie zuvor bestehen. Bin mir da auch nicht 100% sicher aber hört sich für mich momentan logisch an. ^^
warum ist das falsch? es wird ja solange die Schleife durchlaufen bis x < len. Dann in der Klammer wird bei x=0 begonnen und dann immer erhöht. Müsste doch eig richtig sein oder nicht?
do-while Schleife macht mindestens einen Durchlauf unabhängig von der Bedingung. Eine for-Schleife macht das nicht.
Why?
View 1 more comment
was ich nicht ganz verstehe ist, dass wenn ich "int zahl;" aus der Methode wegnehme, dann kommt 60 raus
Wenn "int zahl;" weg ist, ist zahl keine lokale Variable mehr sondern die feste Variable die weiter oben im Programm deklariert wurde. Diese wird dann in dem Aufruf verwendet, weshalb 60 rauskommt.
warum ändern sich hier a.i auf 47? Wird bei a=b alle a auf 47 gesetzt oder wie? und dadrunter wird ja auch nur a.i=27 gesetzt und b.i bleibt ja gleich, also warum 27 27? Müsste da nicht 27 47 rauskommen?
Nein das stimmt so. a ist eine refenrenz auf ein Digit Objekt, genauso wie b. wenn man jetzt a = b setzt, zeigen beide Referenzen nun auf das selbe Digit Objekt (das Objekt, auf das ursprünglich b zeigte, wird durch den Garbage Collector gelöscht). Wenn man jetzt a .i =27 setzt, zeigt auch b auf dieses Digit Objekt und deswegen kommt da b.i = 27 raus.