-
11.06.08 17:47 #1
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Hallo,
bei unseren Kollegen vom java-forum.org gibts nen interessanten Thread wo die User immer wieder neue Java Rätsel posten und lösen.
Hier mal eine Beispiel-Aufgabe:
http://www.java-forum.org/de/viewtop...=asc&start=780
Als Lösungsvorschlag kam dann:...
Aufgabe: Die Methode "get" ist so umzuschreiben, dass: In den geschweiften Klammern gibt es nur noch das return-Statement, mit einem mehr oder weniger komplizierten Ausdruck hinter dem "return". "get" setzt weiterhin "a" auf null und gibt den alten Wert von "a" zurück (anders gesagt: es gibt noch ein Semikolon ';' in "get" und "get" macht dasselbe wie vor der Änderung).
...
Code java:
Mein Vorschlag wäre hier:
Code java:
Jemand ein neues Rätsel parat?
Gruß TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
-
Okay, was ist die Ausgabe von folgendem Codestück wenn man die main ausführt? Bitte nicht einfach ausführen

Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
package de.tutorials; public class Instantiation { private interface InnerClass {} private static final InnerClass[] inner = { new Inner0() }; private static final Singleton singleton1 = Singleton.getInstance(); private static final class Inner0 implements InnerClass { public Inner0() { System.out.println(singleton1.getName()); } } private static final class Singleton { private static final Singleton singleton = new Singleton(); private Singleton() { System.out.println("Create SingletonInstance"); } public String getName() { return "Name"; } public static final Singleton getInstance() { return singleton; } } public static void main(String[] args) { System.out.println(inner.length); } }
Lösungen bitte in [spoiler]...[/spoiler] einschließen. Dann können mehr mitraten
-
14.06.08 18:34 #3
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Achtung Spoiler:
Tja bei static Membern kommt es halt auf die Initialisierungsreihenfolge an
Java rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
-
Achtung Spoiler:
Es wird eine Exception geworfen.
Natürlich kann man noch weiter Antworten für zejas Rätsel posten.
Ich hätte aber auch mal eins.
Wie lautet die Ausgabe und warum?
Code java:1 2 3 4 5 6 7 8 9 10 11 12
public class AusgabeParent { public AusgabeParent() { initialize(); } protected void initialize(){ System.out.println("Initialize"); } }
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
public class AusgabeChild extends AusgabeParent { private String ausgabeString = "Wird man dieses lesen?"; public AusgabeChild() { super(); System.out.println(ausgabeString); } protected void initialize() { super.initialize(); ausgabeString = "Oder wird man doch dieses lesen?"; } public static void main(String[] args) { new AusgabeChild(); } }
Bei mir gilt natürlich das gleiche wie bei zeja. Nicht die main-Methode ausführen und auch mit Spoiler antworten.
MFG
SaschaEs ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)
-
16.06.08 20:32 #5
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Hallo,
was wird hier ausgegeben?
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
/** * */ package de.tutorials; import java.util.HashSet; import java.util.IdentityHashMap; import java.util.Map; /** * @author Tom * */ public class IdentiyHashMapExample { /** * @param args */ public static void main(String[] args) { Map<String, Integer> m = new IdentityHashMap<String, Integer>(); m.put("a", 1); m.put("b", 2); m.put("c", 3); m.put("a", 4); System.out .println(new HashSet<Map.Entry<String, Integer>>(m.entrySet())); } }
Gruß TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
-
Zu Sascha's Rätsel
Achtung Spoiler:
es erfolgt die Ausgabe von "Wird man dies Lesen" da mit dem super() aufruf im Konstruktor lediglich der Konstruktor der der Vaterklasse aufgerufen wird der wiederum seine! initialize() Methode aufruft. Das überschreiben von initialize() in der Kindklasse ist somit keinen Effekt (zumindest in diesem Beispiel
)
-
Das ist so nicht korrekt. Ein Prinzip der objectorientierten Programmierung ist ja Polimorphie und dieses garantiert ja, dass die überschriebene initialize-Methode aufgerufen wird. Kannst du gerne mit einer weiteren Ausgabe prüfen.

MFG
SaschaEs ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)
-
17.06.08 13:48 #8
- Registriert seit
- Nov 2001
- Ort
- Gießen
- Beiträge
- 4.091
Achtung Spoiler:
Hmm? Ich hätte auch gedacht, dass die Methode von AusgabeChild ausgeführt wird und der Ausgabe-String überschrieben wird. Aber Java sagt mir was anderes, warum weiß ich allerdings nicht...
Nebenbei: Wäre es nicht sinnvoller, der Übersicht wegen die Rätsel nacheinander hier einzustellen?
Grüße, D."You could say that I was too lazy to calculate and so I invented the computer." -- Konrad Zuse
-
@Dario
Es war ja nicht ganz Sinn der Sache, das Programm auszuführen und die Ausgabe zu posten.
MFG
Sascha
EDIT: Wenn bis Morgen keiner die richtige Lösung gepostet hat, werde ich es auflösen.
Es ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)
-
17.06.08 13:57 #10
- Registriert seit
- Nov 2001
- Ort
- Gießen
- Beiträge
- 4.091
Ich weiß, ich dachte nur, es wäre ja sowieso schon gelöst... hab's weg editiert.

Ich wollte ja eigentlich auch gestern schon meine Gedanken dazu posten - aber als ichs zur Kontrolle mal ausgeführt hab, hat es mich stutzig gemacht, weil was anderes raus kam, als ich erwartet hatte und hätte begründen können. Deswegen hab ichs sein lassen.
"You could say that I was too lazy to calculate and so I invented the computer." -- Konrad Zuse
-
Wenn es so leicht wäre, wäre es ja kein Rätsel.

Ich hatte vor einiger Zeit mal so ein Konstrukt programmiert und war dann ebenso verblüfft, als ich nen Fehler hatte.
Es ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)
-
17.06.08 14:09 #12
- Registriert seit
- Nov 2001
- Ort
- Gießen
- Beiträge
- 4.091
Naja... Fehler? Würde mich aber mal interessieren, woran's liegt.
"You could say that I was too lazy to calculate and so I invented the computer." -- Konrad Zuse
-
Naja, ich hatte nen Fehler, weil ich halt ne Variable mit null initialisiert hatte. Also kam da dann eine NullPointerException. Das passiert hier ja nicht.
Morgen wirst du es spätestens Erfahren. Es sei Tom sagt vielleicht heute noch was oder jemand anderes.
MFG
SaschaEs ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)
-
17.06.08 14:39 #14
- Registriert seit
- Nov 2001
- Ort
- Gießen
- Beiträge
- 4.091
Gut, wenn ich eh noch Zeit hab, dann rate ich schnell nochmal.

Achtung Spoiler:
Java führt die Initialisierung von ausgabeString genau genommen erst im Konstruktor von AusgabeChild aus. Evtl. erst nach dem Aufruf von super()?
Klingt für mich zwar irgendwie weit hergeholt, aber ein anderer Grund fällt mir nicht ein.
Grüße, D."You could say that I was too lazy to calculate and so I invented the computer." -- Konrad Zuse
-
Hmmm Wo ist da das Rätsel? Die Ausgabe ist "Initialize" mit einem nachfolgendem "wird man dieses lesen?".
Durch das "super();" wird doch nur der Konstruktor der Vaterklasse aufgerufen, in dem die Ausgabe von "Initialize" erfolgt. Und dann eben das Syso aus dem Konstruktor von AusgabeChild.
Oder hab ich da was nicht mitbekommen
Geändert von hammet (17.06.08 um 14:44 Uhr)
Handlanger des Dr. Ex1tus
Ich kenne Matzes dunkles Geheimnis ! oO
o
L_/
OL
This is Schäuble. Copy Schäuble into your signature to help him on his way to Überwachungsstaat.
Hallo Nuray!
Ähnliche Themen
-
Rätsel
Von Layna im Forum SmalltalkAntworten: 5Letzter Beitrag: 18.11.04, 19:11 -
Rätsel
Von Olli-Web im Forum Fun-ForumAntworten: 6Letzter Beitrag: 01.05.04, 14:27 -
Rätsel
Von reBourne im Forum SmalltalkAntworten: 6Letzter Beitrag: 30.09.03, 13:23 -
3 Rätsel
Von mslap im Forum Fun-ForumAntworten: 5Letzter Beitrag: 07.08.03, 11:35 -
Ist mir ein Rätsel
Von Eric25 im Forum HTML-EditorenAntworten: 3Letzter Beitrag: 25.04.02, 09:03



5Danke


Zitieren

Login





