Nov 28

Was ist der Output des folgenden Codes:


String a = “Java”;
int b =10;
String c = new String(“Java”);

if (b <=10){

if (a instanceof Object){

System.out.println(a.equals(“Java”));
System.out.println(b==10);
System.out.println(a==”Java”);
System.out.println(a==c);
System.out.println(a.equals(c));

}

}

Antwort/ answer
Tagged with:
Nov 28

Es mag vielleicht die ein oder andere Situation geben, in der man doch die (bis jetzt nicht-) vorhandenen Möglichkeiten, die z.B. Arrays bezüglich Methodenaufrufen bieten, nutzen möchte. Hierfür gibt es eine Art Workaround, gehen wir mal wieder von einer unserer bereits diskutierten Methoden aus:

public static void checkStatus_list (List <Angestellter> a) { … }

Diese kann mit einer sogenannten Wildcard versehen werden und sieht dann so aus:

public static void checkStatus_list (List <? extends Angestellter> a) { … }

Eine List von Buchhalter kann jetzt problemlos übergeben werden:

List <Buchhalter> a =new ArrayList<Buchhalter>();
a.add(new Buchhalter());
a.add(new Buchhalter());

checkStatus_list(a); // kein Compilerfehler!

die mit der Wildcard veränderte Methode nimmt die List Buchhalter problemlos auf. So einfach, wie es momentan aussieht, ist der Workaround leider nicht.

a.add(new Buchhalter());

ergibt z.B. innerhalb der Methode checkStatus_list einen Compilerfehler!


Tagged with:
Nov 25

Das die Zuweisung

a.add(new Buchhalter());
a.add(new Verkäufer());

in unserem vorherigen Beispiel funktioniert, haben wir ja schon vor ein paar Tagen durchgesprochen.

Gehen wir mal davon aus, dass wir überschriebene Methoden haben:

class Buchhalter extends Angestellter{String getName(){ return(“Buchhalter”);}}
class Verkäufer extends Angestellter{ String getName(){ return (“Verkäufer”);}}

Diese Funktionen können direkt und ohne Probleme augerufen werden, weil ja zur Laufzeit nicht mehr zwischen Array und ArrayList unterschieden wird:

System.out.println(a.get(0).getName()); // Ausgabe: Buchhalter
System.out.println(a.get(1).getName()); //Ausgabe: Verkäufer

Tagged with:
Nov 24

Wie ist der Output des folgenden Codes?

Integer PersNr []= {1,2,3,4};

List<Integer> PersNrList = Arrays.asList(PersNr);
Integer[] PersNr2 =
PersNrList .toArray(PersNr);
System.out.println(PersNr==PersNr2);
System.out.println(PersNr.equals(PersNr2));

Antwort/ answer
Tagged with:
Nov 22

Wie ist der Output des folgenden Codes?

int PersNr []= {1,2,3,4};

List<Integer> testList = Arrays.asList(PersNr);
Integer[] PersNr2 = testList.toArray(PersNr);
System.out.println(PersNr==PersNr2);
System.out.println(PersNr.equals(PersNr2));

Antwort/ answer
Tagged with:
Nov 22

So, aufgewärmt sind wir schon für die Methodenaufrufe, heute wollen wir noch tiefer einsteigen:

Dieses Mal gehen wir von etwas anderen Definitionen aus:

List <Buchhalter> a = new ArrayList <Buchhalter>();
a.add(new Buchhalter());
a.add(new Buchhalter());

Buchhalter i [] = {new Buchhalter(), new Buchhalter ()};

Die Methoden bleiben gleich:

public static void checkStatus_array (Angestellter [] a){  … }
public static void checkStatus_list (List<Angestellter> a){ … }

Auch hier rufen wir wieder die jeweiligen Funktionen auf:

checkStatus_list(a); // CompilerFehler
checkStatus_array(b); // funktioniert einwandfrei

In beiden Fällen wird “Buchhalter” übergeben und der Typ “Angestellter aufgenommen.

Bei Arrays haben wir auch schon gelernt, das dies problemlos funktioniert; bei List funktioniert dies leider nicht. Es muss also immer der genaue List-Objekt-Typ übergeben werden, ein Cast findet nicht statt.

Achtung; innerhalb des List-Types kann bei der Zuweisung von Objekten durch die Methode add(Objekt) ein Cast statt finden, nicht aber beim Aufruf von Methoden!

Tagged with:
Nov 20

Was ist der Output des folgenden Codes?

Map<String, Integer> hm= new HashMap<String, Integer>();
hm.put(“PersNr”,123);
hm.put(“PersNr”,234);
hm.put(“PersNr”,345);
System.out.println(hm.get(“PersNr”));

Antwort/ answer
Tagged with:
Nov 19

Hallo,

leider muss man für das SCJP auch die DOS-Befehle für Compilierung und Programmstart kennen.

Deswegen blogge ich diese momentan auf der englischen Version dieser Webseite, die deutsche Übersetzung folgt … aber lässt noch etwas auf sich warten, weil ich hier andere Themen vorziehe.

Grüße

Silke

Tagged with:
Nov 19

Gehen wir mal von 2 ähnlichen Methoden aus:

public static void checkStatus_array (Angestellter [] a){  … }
public static void checkStatus_list (List<Angestellter> a){ … }

Eigentlich müssten diese auch ähnlich arbeiten, oder?
Hier ersteinmal die Definitionen:

List <Angestellter> a= new ArrayList <Angestellter>();
a.add(new Buchhalter());
a.add(new Verkäufer());

Angestellter b [] = {new Buchhalter(), new Verkäufer ()};

Der Aufruf der einzelnen Funktionen funktioniert einwandfrei:

checkStatus_list(a);
checkStatus_array(b);

Ein gegenseitiger Aufruf funktioniert nicht:

checkStatus_list(b);
checkStatus_array(a);

Tagged with:
Nov 16

Was ist der Output des folgenden Codes:

class Angestellter{

public String getName(){ return(“Angestellter”);}

public static void main(String args[]) {

Angestellter a = new Buchhalter ();

System.out.println(a.getName());

}

}

class Buchhalter extends Angestellter{

public String getName(){ return(“Buchhalter”);}

}



Antwort/ answer

preload preload preload
http://www.wikio.de Blog Top Liste - by TopBlogs.de Blogverzeichnis - Blog Verzeichnis bloggerei.de Bloggeramt.de Software
Webbhotell Top Blogs