"สวัสดี Amigo! วันนี้ Bilaabo จะพูดถึงลำดับที่ตัวแปรถูกเตรียมใช้งาน "
จินตนาการว่าคุณกำลังดูโค้ดบางอย่าง ตัวแปรได้ค่าอะไรบ้าง
รหัส
class Cat
{
public int a = 5;
public int b = a + 1;
public int c = a * b;
}
รหัส
class Cat
{
public int a = getSum();
public int b = getSum() - a;
public int c = getSum() - a - b;
public int getSum()
{
return a + b + c;
}
}
“อนุญาตจริงเหรอ?”
"แน่นอนลำดับการประกาศเมธอดและฟิลด์สมาชิกของคลาสนั้นไม่สำคัญ "
คลาสถูกโหลดจากบนลงล่าง ดังนั้นฟิลด์จึงจำเป็นต้องเข้าถึงเฉพาะฟิลด์อื่นๆ ที่โหลดไปแล้วเท่านั้น ในตัวอย่างbสามารถเข้าถึงaแต่ไม่รู้อะไรเลยเกี่ยวกับc
"แล้วจะเกิดอะไรขึ้น"
"เมื่อสร้างตัวแปร ตัวแปรจะได้รับค่าเริ่มต้น"
รหัส | เกิดอะไรขึ้นจริงๆ |
---|---|
|
|
|
|
"Holy moly! มันง่ายมาก ขอบคุณ Bilaabo คุณเป็นเพื่อนแท้!"
"ไชโย! บิลาโบมีเพื่อนแล้ว!"
GO TO FULL VERSION