Kelas tempatan: kelas dalam kaedah - 1

"Hai, Amigo!"

"Satu lagi topik kecil ialah kelas tempatan ."

"Seperti yang anda lihat, anda boleh mencipta kelas bukan sahaja dalam fail berasingan, tetapi juga di dalam kelas lain. Tetapi bukan itu sahaja. Kelas juga boleh dibuat dalam kaedah. Kelas ini dipanggil kelas tempatan. Mereka berfungsi seperti kelas dalaman biasa, tetapi ia boleh digunakan dalam kaedah yang diisytiharkan."

"Lihat skrin:"

Contoh
class Car
{
 public ArrayListcreatePoliceCars(int count)
 {
  ArrayList result = new ArrayList();

  class PoliceCar extends Car
  {
   int policeNumber;
   PoliceCar(int policeNumber)
  {
   this.policeNumber = policeNumber;
  }
 }

 for(int i = 0; i < count; i++)
     result.add(new PoliceCar(i));
  return result;
 }
}

"Dan kenapa kita perlukan kelas sebegitu?"

"Meletakkan kelas, dengan semua pembina dan kaedahnya, di dalam kaedah tidak menghasilkan kod yang sangat mudah dibaca, bukankah anda fikir?"

"Tepat sekali. Awak betul-betul betul."

"Anda juga boleh menggunakan kaedah dalam kelas dalam tanpa nama. Tetapi kelas ini mempunyai satu kelebihan kecil, dan akibatnya, ia digunakan dalam kaedah dalam agak kerap."

"Kelas yang diisytiharkan dalam kaedah boleh menggunakan pembolehubah tempatan kaedah itu:"

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 = number;
  });
 }
  return result;
 }
}

"Tetapi terdapat satu had: pembolehubah adalah «baca sahaja»—ia tidak boleh diubah."

"Inilah sebabnya sekatan itu wujud:"

"Kelas yang diisytiharkan dalam kaedah hanya boleh mengakses pembolehubah kaedah yang diisytiharkan menggunakan kata kunci muktamad. Dalam contoh di atas, anda dapat melihat bahawa saya tidak boleh segera memberikan nilai i kepada policeNumber. Sebaliknya, saya mula-mula menyimpannya ke nombor pembolehubah akhir."

"Mampu menggunakan pembolehubah kaedah adalah sangat keren. Saya harap betul-betul menghargainya. Sayang sekali anda tidak boleh menukar pembolehubah walaupun."

"Ellie akan menerangkan kepada kamu hari ini mengapa kamu tidak boleh menukarnya. Sementara itu, saya akan pergi tidur sebentar selama kira-kira sejam."

"Selamat malam, Kim. Terima kasih atas pengajaran yang menarik."