“สวัสดี อามีโก้!”
"อย่างที่คุณทราบแล้วว่าคลาสภายในที่ไม่ระบุชื่อไม่สามารถมีตัวสร้างได้"
"ใช่ มันไม่สะดวกนัก คอนสตรัคเตอร์สำคัญมาก"
"อย่างคำกล่าวที่ว่า ไม่มีอะไรที่เป็นไปไม่ได้ ถ้าคุณต้องการมันมากพอ"
"จำไว้ว่าตัวแปรสแตติกไม่มีตัวสร้างสแตติก แต่มีตัวเริ่มต้นสแตติก นั่นคือบล็อกสแตติก"
"ครับ ผมจำได้"
"คลาสภายในที่ไม่ระบุชื่อมี initializer เดียวกันทุกประการ ยกเว้นว่ามันจะไม่คงที่"
class Car
{
public ArrayListcreatePoliceCars(int count)
{
ArrayList result = new ArrayList();
for(int i = 0; i < count; i++)
{
final int number = i;
result.add(new Car()
{
int policeNumber;
{
policeNumber = number;
}
});
}
return result;
}
}
"ครั้งนี้ฉันเน้นรหัสคลาสภายในที่ไม่ระบุตัวตนเป็นสีแดง และตัวสร้างเริ่มต้น (ซึ่งมีผลคือตัวสร้างของมัน) เป็นสีม่วง 'ตัวสร้าง' มีเนื้อหา แต่ไม่มีลายเซ็นของเมธอด:"
ความคาดหวัง | ความเป็นจริง |
---|---|
|
|
"คุณสามารถประกาศตัวแปรภายในคลาสดังกล่าวและกำหนดค่าเริ่มต้นใน initializer"
"เยี่ยมมาก ตอนนี้ข้อจำกัดน้อยลงมาก"
"ด้วยสิ่งนี้ เราจะได้รู้จักชั้นเรียนภายใน ฉันหวังว่าคุณจะชอบมัน"
“เยอะมาก บทเรียนจากคิม ริชิ และโดยเฉพาะอย่างยิ่งคุณ เอลลี่ นั้นยอดเยี่ยมมาก”
"ช่างพูดช่างไพเราะเสียนี่กระไร!
GO TO FULL VERSION