?
leitet einen bedingten Ausdruck ein.class A {
int m_i = 0;
static int m_j = 0;
public void h() {
System.out.println(m_i = +2);
doit();
}
void doit(){
System.out.println(m_j++);
}
}
class B extends A{
void doit() {
System.out.println(--m_i);
}
}
public class Tes2 {
public static void main(String[] args) {
A[] a = new A[5];
for (int i = 0; i < a.length; ++i) {
a[i] = i>5 ? a[i-5] : (i&1) == 0 ? new A() : new B();
}
for (int i = 0; i < a.length; ++i)
a[i].h();
}
}
2
0
2
1
2
1
2
1
2
2
class A {
int m_i = 0;
static int m_j = 0;
public void h() {
System.out.println(m_i = +2);
doit();
}
void doit() {
System.out.println(m_j++);
}
}
class B extends A {
void doit() {
System.out.println(--m_i);
}
}
public class Tes2 {
public static void main(String[] args) {
A[] a = new A[5];
for (int i = 0; i < a.length; ++i) {
a = i > 5 ? a[i - 5] : (i & 1) == 0 ? new A() : new B();
}
for (int i = 0; i < a.length; ++i)
a.h();
}
}
Ternärer Operator http://openbook.rheinwerk-verlag.de/c_von_a_bis_z/008_c_kontrollstrukturen_006.htmcovo hat gesagt.:was hat das Fragezeichen in dem Code von Bedeutung ??
class A {
int m_i = 0;
static int m_j = 0;
public void h() {
System.out.println(m_i = +2);
doit();
}
void doit() {
System.out.println(m_j++);
}
}
class B extends A {
void doit() {
System.out.println(--m_i);
}
}
class Tes2 {
public static void main(String[] args) {
A[] a = new A[5];
for (int i = 0; i < a.length; ++i) {
a[i] = i > 5 ? a[i - 5] : (i & 1) == 0 ? new A() : new B(); // a[i] vergessen
/*
Wenn i > 5 wähle a[i-5] =aber ergibt keinen Sinn, i nur bis 5
andernfalls wähle wenn i gerade neues A
andernfalls neues B
++i hat übrigens keine Auswirkungen
*/
}
for (int i = 0; i < a.length; ++i) {
a[i].h(); // a[i] vergessen
}
}
}