“สวัสดี อามีโก้!”

"อย่างที่คุณทราบแล้วว่าคลาสภายในที่ไม่ระบุชื่อไม่สามารถมีตัวสร้างได้"

"ใช่ มันไม่สะดวกนัก คอนสตรัคเตอร์สำคัญมาก"

"อย่างคำกล่าวที่ว่า ไม่มีอะไรที่เป็นไปไม่ได้ ถ้าคุณต้องการมันมากพอ"

"จำไว้ว่าตัวแปรสแตติกไม่มีตัวสร้างสแตติก แต่มีตัวเริ่มต้นสแตติก นั่นคือบล็อกสแตติก"

"ครับ ผมจำได้"

"คลาสภายในที่ไม่ระบุชื่อมี 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;
 }
}

"ครั้งนี้ฉันเน้นรหัสคลาสภายในที่ไม่ระบุตัวตนเป็นสีแดง และตัวสร้างเริ่มต้น (ซึ่งมีผลคือตัวสร้างของมัน) เป็นสีม่วง 'ตัวสร้าง' มีเนื้อหา แต่ไม่มีลายเซ็นของเมธอด:"

ความคาดหวัง ความเป็นจริง
class Car
{
int policeNumber;
 Car(){
  policeNumber = number;
 }
}
class Car
{
int policeNumber;
{
policeNumber = number;
}
}

"คุณสามารถประกาศตัวแปรภายในคลาสดังกล่าวและกำหนดค่าเริ่มต้นใน initializer"

"เยี่ยมมาก ตอนนี้ข้อจำกัดน้อยลงมาก"

"ด้วยสิ่งนี้ เราจะได้รู้จักชั้นเรียนภายใน ฉันหวังว่าคุณจะชอบมัน"

“เยอะมาก บทเรียนจากคิม ริชิ และโดยเฉพาะอย่างยิ่งคุณ เอลลี่ นั้นยอดเยี่ยมมาก”

"ช่างพูดช่างไพเราะเสียนี่กระไร!