❓ تفضيل التحويلات في Overload
Overload preference (widening vs boxing vs varargs)
Overload preference (widening vs boxing vs varargs)
static void m(long x){ System.out.print("long"); }
static void m(Integer x){ System.out.print("Integer"); }
static void m(int... x){ System.out.print("varargs"); }
m(5);❓ ترتيب التهيئة: static ثم instance ثم constructor
Initialization order
Initialization order
class X {
static { System.out.print("S"); }
{ System.out.print("I"); }
X(){ System.out.print("C"); }
}
new X();❓ إخفاء الحقول (Field Hiding)
Field hiding resolution
Field hiding resolution
class A { int v = 1; }
class B extends A { int v = 2; }
B b = new B();
System.out.println(((A)b).v);❓ استخدام this للإشارة لحقل مُغَطّى
Using this to refer to a shadowed field
Using this to refer to a shadowed field
class T {
int n = 10;
void set(int n){ n = n; }
int get(){ return n; }
}
T t = new T();
t.set(5);
System.out.println(t.get());❓ ما ناتج الجمع مع break؟
What is the output with break?
What is the output with break?
int sum = 0;
for (int i = 1; i <= 5; i++) {
if (i == 4) break;
sum += i;
}
System.out.println(sum);
❓ do-while تُنفَّذ مرة على الأقل
do-while runs at least once
do-while runs at least once
int i = 5;
do { i++; } while (i < 5);
System.out.println(i);
❓ اقتران else بالأقرب
else pairs with nearest if
else pairs with nearest if
int x = 0, y = 10;
if (y > 0)
if (x == 1) System.out.print("A");
else System.out.print("B");
❓ switch مع break
switch with break
switch with break
int n = 1;
switch (n) {
case 1: System.out.print("X"); break;
default: System.out.print("Y");
}
❓ تمرير مصفوفة لميثود
Passing array to method
Passing array to method
static void inc(int[] a){
for (int i = 0; i < a.length; i++) a[i]++;
}
int[] a = {0,1,2};
inc(a);
System.out.println(a[2]);