instanceof und Casts
This commit is contained in:
39
src/org/eidecker/oca8lernen/general/Final.java
Normal file
39
src/org/eidecker/oca8lernen/general/Final.java
Normal file
@@ -0,0 +1,39 @@
|
||||
package org.eidecker.oca8lernen.general;
|
||||
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
/**
|
||||
* Final deklarierte Felder müssen im Konstruktor oder einem Initialisierungsblock gesetzt werden.
|
||||
* Die Standardwerte genügen nicht.
|
||||
*/
|
||||
public class Final {
|
||||
|
||||
{
|
||||
String s = "s";
|
||||
finalString = "Hallo";
|
||||
if (false) throw new RuntimeException();
|
||||
testIfBloecke();
|
||||
}
|
||||
|
||||
{
|
||||
String s = "s";
|
||||
}
|
||||
|
||||
final String finalString;
|
||||
|
||||
|
||||
public Final() {
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIfBloecke() {
|
||||
if (true)
|
||||
System.out.println("Eins");
|
||||
if (false)
|
||||
System.out.println("Zwei");
|
||||
else
|
||||
System.out.printf("Drei");
|
||||
}
|
||||
}
|
||||
84
src/org/eidecker/oca8lernen/general/InstanceOfUndCast.java
Normal file
84
src/org/eidecker/oca8lernen/general/InstanceOfUndCast.java
Normal file
@@ -0,0 +1,84 @@
|
||||
package org.eidecker.oca8lernen.general;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
|
||||
import java.lang.reflect.Array;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class InstanceOfUndCast {
|
||||
|
||||
@Test
|
||||
public void testInstanceof() {
|
||||
// Instanceof außerhalb Typhierarchie nicht möglich
|
||||
// boolean b = "Hallo" instanceof InstanceOfUndCast;
|
||||
|
||||
assertEquals(false, null instanceof InstanceOfUndCast);
|
||||
|
||||
String s;
|
||||
// Nicht möglich, da nicht initialisiert
|
||||
// s instanceof String;
|
||||
|
||||
int[] array = {1, 3, 4};
|
||||
assertEquals(true, array instanceof Object);
|
||||
|
||||
|
||||
// Nicht möglich, null kein Typ
|
||||
// "Hallo" instanceof null
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPrimitiveCast() {
|
||||
byte a = 4;
|
||||
a = (byte) (a + 3); // Expliziter Cast erforderlich
|
||||
|
||||
byte b = 2;
|
||||
b += 3;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCast() {
|
||||
OberCast echterOber = new OberCast();
|
||||
OberCast oberAberUnter = new UnterCast();
|
||||
|
||||
UnterCast echterUnterCast = new UnterCast();
|
||||
|
||||
|
||||
String s = (String) null;
|
||||
|
||||
echterOber = (UnterCast) echterUnterCast;
|
||||
|
||||
echterOber = oberAberUnter;
|
||||
|
||||
echterUnterCast = (UnterCast) oberAberUnter;
|
||||
|
||||
assertThrows(ClassCastException.class, () -> {
|
||||
UnterCast echterUnterCast2 = new UnterCast();
|
||||
OberCast echterOber2 = new OberCast();
|
||||
echterUnterCast2 = (UnterCast) echterOber2;
|
||||
});
|
||||
|
||||
{int i, j;}
|
||||
|
||||
for (int i = 1; i< 3; i++) {
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
class OberCast {
|
||||
|
||||
}
|
||||
|
||||
class UnterCast extends OberCast {
|
||||
void untercast() {
|
||||
System.out.printf("untercast");
|
||||
}
|
||||
}
|
||||
|
||||
class AußerhalbCast {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -2,7 +2,7 @@ package org.eidecker.oca8lernen.general;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class KLassenInitialisierung {
|
||||
public class KlassenInitialisierung {
|
||||
|
||||
@Test
|
||||
public void testInitialisierung() {
|
||||
@@ -26,6 +26,8 @@ public class KLassenInitialisierung {
|
||||
|
||||
class Oberklasse {
|
||||
|
||||
private String s = initString();
|
||||
|
||||
static {
|
||||
synchronized (Oberklasse.class) {
|
||||
System.out.println("Oberklasse statischer Initialisierungsblock");
|
||||
@@ -54,10 +56,17 @@ class Oberklasse {
|
||||
|
||||
}
|
||||
|
||||
private String initString() {
|
||||
System.out.println("OberklasseString wurde initialisiert");
|
||||
return "OberklasseString";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class Unterklasse extends Oberklasse {
|
||||
|
||||
private String s = initString();
|
||||
|
||||
static {
|
||||
System.out.println("Unterklasse statischer Initialisierungsblock");
|
||||
}
|
||||
@@ -78,4 +87,9 @@ class Unterklasse extends Oberklasse {
|
||||
public Unterklasse() {
|
||||
System.out.println("Unterklasse Konstruktor");
|
||||
}
|
||||
|
||||
private String initString() {
|
||||
System.out.println("UnterklasseString wurde initialisiert");
|
||||
return "UnterklasseString";
|
||||
}
|
||||
}
|
||||
@@ -12,10 +12,25 @@ public class PrimitiveUndWrapperTest {
|
||||
@Test
|
||||
public void zuweisungWertebereich() {
|
||||
|
||||
char c = (char) 1L;
|
||||
byte e, f = 2, g = 4;
|
||||
|
||||
|
||||
// Compilefehler, da + implizit int erzeugt
|
||||
// e = f + g;
|
||||
|
||||
char r, s = 3, t = 4;
|
||||
// Compilefehler, da + implizit int erzeugt
|
||||
// r = s + t;
|
||||
|
||||
|
||||
float f1, f2 = 0, f3 = 3;
|
||||
f1 = f2 + f3;
|
||||
|
||||
char c = (char) -1L;
|
||||
|
||||
|
||||
short sh = Short.MAX_VALUE;
|
||||
// char s = sh;
|
||||
// char ch = (byte)sh;
|
||||
|
||||
"Hallo".concat(" Welt");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user