Okt 22

Was ist der Output des folgenden Codes?

final byte a = 1;
final byte b = 2;
byte c = a-b;

System.out.println(c);

Antwort/ answer
Tagged with:
Sep 20

Wie ist der Output des folgenden Codes?

ArrayList Mitarbeiter = new ArrayList();
Mitarbeiter.add(5);
Integer mitarbeiter= Mitarbeiter.get(0);
System.out.println(mitarbeiter);

Antwort/ answer
Tagged with:
Aug 20

Was ist der Output des folgenden Codes?

final int PersNr=123;
System.out.println(PersNr);
int PersNr_new= PersNr++;
System.out.println(PersNr_new);

Antwort/ answer
Tagged with:
Aug 20

Wie ist der Output des folgenden Codes?

Number[]a = new Integer[3];
System.out.println(a[2]);

Antwort/ answer
Tagged with:
Aug 20

Was ist der Output des folgenden Codes?

Boolean a = new Boolean(“TRUE”);
Boolean b = new Boolean(“FAlse”);
Boolean c = new Boolean(“PersNr”);

System.out.println(a+” “+b+” “+c);


Antwort/ answer

Tagged with:
Jul 22

Der Aufruf erfolgt mit Java Angestellter 123 456. Was muss eingefügt werden, um PersNr den Wert 456 zuzuweisen?

public class Angestellter  {

String Persnr;
static public void main(String[] Args){

/* insert Code here */

}

}

Antwort/ answer
Tagged with:
Dez 18

Es kann auch die Wildcard ? mit T ersetzt werden, hier ein letztes Beispiel einer Klassendefinition (zumindest fürs erste ;) ):

class generic_Types <T extends Angestellter>{ .. }

Genau wie bei der Wildcard können in diesem Zusammenhang nur Objekte vom Typ Angestellter oder dessen abgeleiteter Klassen aufgenommen werden.

generic_Types <Angestellter> a_generic= new generic_Types <Angestellter> ();
generic_Types <Buchhalter> b_generic = new generic_Types <Buchhalter> ();

können daher problemlos angelegt werden,

generic_Types <Integer> c_generic = new generic_Types <Integer>();

gibt einen CompilerFehler, da falscher Objekt-Typ

Dez 07

alles was an eine andere Methode übergeben werden kann; kann auch direkt zugewiesen werden:

Deswegen hier nur die genannten Beispiele in  der Zusammenfassung:

List <Angestellter> a = new ArrayList <Angestellter>();
List <Angestestellter> b= new ArrayList <Buchhalter>();
List <? extends Angestellter> c = new ArrayList <Angestellter>();
List <? super Buchhalter> d = new ArrayList <Angestellter>();
List <?> e = new ArrayList <Angestellter>();
List <Object> f = new ArrayList <Angestellter>(); // Type mismatach

List <Object> g = new ArrayList <Object>();

List <? extends Angestellter> h = new ArrayList <Buchhalter>();


List <? extends Angestellter> i = new ArrayList <? super Buchhalter>();
// Type mismatch

List <? super Angestellter>j= new ArrayList <Buchhalter>(); // Type mismatch

Es gelten zusätzlich die gleichen Regeln für das Hinzufügen von Objekten.

Tagged with:
Dez 01

Heute wollen wir die Methode checkStatus_list erneut abändern:

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

Obwohl Serializable ein Interface ist, muss in diesem Falle extends benutzt werden, alles andere ergibt einen CompilerFehler!

Um durch die Objekte durchgehen und überschriebene Methoden aufrufen zu können, ist kein Cast notwendig:

for (Angestellter b : a)
System.out.println(“List yyy ” +b.getName());

Das Hinzufügen weiterer Elemente innerhalb der Methode ist nicht möglich.

Weitere Funktionen dieser Wildcard-Art werden im SCJP nicht abgefragt, deswegen werde ich fürs Erste nicht weiter darauf eingehen.


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:
preload preload preload
http://www.wikio.de Blog Top Liste - by TopBlogs.de Blogverzeichnis - Blog Verzeichnis bloggerei.de Bloggeramt.de Software
Webbhotell Top Blogs