Mga lokal na klase: mga klase sa loob ng mga pamamaraan - 1

"Hi, Amigo!"

"Ang isa pang maliit na paksa ay ang mga lokal na klase ."

"Tulad ng nakita mo, maaari kang lumikha ng mga klase hindi lamang sa magkahiwalay na mga file, kundi pati na rin sa loob ng iba pang mga klase. Ngunit hindi lang iyon. Ang mga klase ay maaari ding gawin sa loob ng mga pamamaraan. Ang mga klase na ito ay tinatawag na mga lokal na klase. Gumagana sila tulad ng mga ordinaryong panloob na klase, ngunit magagamit ang mga ito sa loob ng mga pamamaraan kung saan sila idineklara."

"Tingnan mo ang screen:"

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

"At bakit kailangan natin ng mga ganoong klase?"

"Ang paglalagay ng isang klase, kasama ang lahat ng mga konstruktor at pamamaraan nito, sa loob ng isang pamamaraan ay hindi gumagawa ng napakababasang code, sa tingin mo ba?"

"Exactly. Tama ka talaga."

"Maaari ka ring gumamit ng anonymous na mga panloob na klase sa loob ng mga pamamaraan. Ngunit ang mga klase na ito ay may isang maliit na kalamangan, at dahil dito, ang mga ito ay madalas na ginagamit sa loob ng mga pamamaraan."

"Ang isang klase na ipinahayag sa loob ng isang pamamaraan ay maaaring gumamit ng mga lokal na variable ng pamamaraang iyon:"

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

"Ngunit may isang limitasyon: ang mga variable ay «read-only»—hindi sila maaaring baguhin."

"Narito ang dahilan kung bakit umiiral ang paghihigpit na iyon:"

"Ang mga klase na idineklara sa loob ng isang pamamaraan ay maaari lamang ma-access ang mga variable ng pamamaraan na idineklara gamit ang keyword na pangwakas. Sa halimbawa sa itaas, makikita mo na hindi ko agad maitalaga ang halaga ng i sa policeNumber. Sa halip, ise-save ko muna ito sa huling variable na numero."

"Ang kakayahang gumamit ng mga variable ng isang paraan ay sobrang cool. Sana ay pahalagahan ito nang maayos. Napakasamang hindi mo maaaring baguhin ang mga variable."

"Ellie will explain to you today why you can't change them. Samantala, iidlip muna ako ng halos isang oras."

"Good night, Kim. Thanks for the interesting lesson."