Kelas nested statis - 1

"Dadi, topik nomer loro yaiku kelas nested statis. Elinga yen kelas nested non-statis diarani kelas njero .

"Ayo mbungkus kepala kita babagan apa tegese tembung statis ing konteks deklarasi kelas bersarang. Apa sampeyan mikir?"

"Yen variabel diumumake minangka statis, banjur mung siji salinan variabel sing ana. Dadi, yen kelas nested statis, tegese sampeyan mung bisa nggawe siji obyek saka kelas kasebut?"

"Aja nganti tembung statis mbingungake sampeyan ing kene. Pancen bener yen variabel diumumake minangka statis, mula mung ana siji salinan variabel kasebut. Nanging kelas nested statis luwih kaya metode statis babagan iki. tembung statis sadurunge deklarasi kelas nuduhake yen kelas ora nyimpen referensi kanggo obyek saka kelas njaba.

"Ah. Cara normal implisit nyimpen referensi obyek, nanging cara statis ora. Iku padha karo kelas statis, aku bener, Ellie?"

"Pancen. Pangerten cepet sampeyan bisa dipuji. Kelas nested statis ora duwe referensi sing didhelikake kanggo obyek saka kelas njaba."

class Zoo
{
 private static int count = 7;
 private int mouseCount = 1;

 public static int getAnimalCount()
 {
  return count;
 }

 public int getMouseCount()
 {
  return mouseCount;
 }

 public static class Mouse
 {
  public Mouse()
  {
  }
   public int getTotalCount()
  {
   return count + mouseCount; // Compilation error.
  }
 }
}

"Ayo dideleng conto iki kanthi teliti."

"Variabel apa sing bisa diakses metode statis getAnimalCount?"

"Mung sing statis. Amarga iku cara statis."

"Variabel apa sing bisa diakses metode getMouseCount?"

"Loro-lorone statis lan non-statis. Wis referensi didhelikake (iki) kanggo obyek Zoo."

"Iki bener. Dadi, kelas Mouse bersarang statis, kaya metode statis, bisa ngakses variabel statis kelas Zoo, nanging ora bisa ngakses sing ora statis."

"Kita bisa nggawe obyek Mouse kanthi aman, sanajan ora ana obyek Zoo sing digawe. Mangkene carane sampeyan bisa nindakake:"

class Home
{
 public static void main(String[] args)
 {
  Zoo.Mouse mouse = new Zoo.Mouse();
 }
}

"Kelas Mouse sejatine kelas sing biasa banget. Kasunyatan sing diumumake ing kelas Zoo menehi rong fitur khusus."

1) Nalika nggawe obyek kelas nested (kayata kelas Mouse) ing njaba kelas njaba, sampeyan uga kudu nggunakake operator titik kanggo nemtokake jeneng kelas njaba.

"Kaya iki, contone: Zoo.Mouse."

2) Kelas Zoo.Mouse lan obyek nduweni akses menyang variabel statis pribadi kelas Zoo lan cara (wiwit kelas Mouse uga diumumake ing kelas Zoo).

"Iki kanggo dina iki."

"Dadi mung jeneng tambahan lan iku?"

"Ya."

"Sing luwih gampang tinimbang sing katon ing wiwitan."