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 | |
|---|---|
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 | |
|---|---|
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 | |
|---|---|
Wenn wir davon ausgehen, dass die Klassen Buchhalter und Verkäufer beide unabhängig voneinander von der Klasse Angestellter abgeleitet sind, führen
Buchhalter a = new Buchhalter ();
Verkäufer b = (Verkäufer) a ;
direkt zu einem CompilerFehler, aber Fehler wie
Angestellter c = new Buchhalter();
Verkäufer d = (Verkäufer) c;
und auch
Buchhalter e = (Buchhalter)new Angestellter ();
werden erst zur Laufzeit erkannt und ausgeworfen.
Grund ist, dass Buchhalter und Verkäufer nicht miteinander verknüpft sind, Buchhalter/ Angestellter bzw. Verkäufer/ Angestellter aber schon.
Hier auch noch ein älterers Beispiel zu diesem Thema.
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 | |
|---|---|
Wie ist der Output des folgenden Codes?
Number[]a = new Integer[3];
System.out.println(a[2]);
| Antwort/ answer | |
|---|---|
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 | |
|---|---|
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 | |
|---|---|
class Angestellter
{
public static void main (String [] args)
{
String x=”Test1″;
System.out.println(x);
String y = x;
System.out.println(y);
x=”Test2″;
System.out.println(“y ist ” + y + ” x ist ” +x);
}
}
Wie ist der Output?
| Antwort/ answer | |
|---|---|
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.
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!