Kelas lokal: kelas ing metode - 1

"Halo, Amigo!"

"Topik cilik liyane yaiku kelas lokal ."

"Kaya sing wis sampeyan deleng, sampeyan bisa nggawe kelas ora mung ing file sing kapisah, nanging uga ing kelas liyane. Nanging ora kabeh. Kelas uga bisa digawe ing metode. Kelas kasebut diarani kelas lokal. Dheweke kerja kaya kelas njero biasa, nanging padha bisa digunakake ing cara sing diumumake."

"Deleng layar:"

Tuladha
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;
 }
}

"Lan kenapa kita butuh kelas kaya ngono?"

"Nglebokake kelas, kanthi kabeh konstruktor lan metode, ing njero metode ora nggawe kode sing bisa diwaca, apa ora?"

"Pancen. Sampeyan pancen bener."

"Sampeyan uga bisa nggunakake kelas njero anonim nang cara. Nanging kelas iki duwe siji kauntungan cilik, lan Akibate, padha digunakake ing cara cukup asring."

"Kelas sing diumumake ing metode bisa nggunakake variabel lokal metode kasebut:"

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;
 }
}

"Nanging ana siji watesan: variabel kasebut "mung diwaca" - ora bisa diganti.

"Iki sebabe larangan kasebut ana:"

"Kelas sing diumumake ing metode mung bisa ngakses variabel metode sing diumumake nggunakake tembung kunci final. Ing conto ing ndhuwur, sampeyan bisa ndeleng manawa aku ora bisa langsung nemtokake nilai i menyang policeNumber. Nanging, aku nyimpen dhisik menyang nomer variabel final."

"Kang bisa nggunakake variabel cara iku super kelangan. Mugi bener appreciate iku. Iku ala banget sampeyan ora bisa ngganti variabel sanadyan."

"Ellie bakal nerangake kanggo sampeyan dina iki apa sampeyan ora bisa ngganti. Sauntara, aku arep turu kanggo bab siji jam."

"Sugeng dalu, Kim. Matur nuwun kanggo pelajaran sing menarik."