"Ayo pindhah menyang topik anyar. Saiki, aku pengin ngrembug variabel lan metode statis."

"Ellie, aku wis sinau babagan variabel lan metode statis. Nanging aku pengin sinau luwih rinci."

"Nalika kita ngumumake variabel ing kelas, kita nemtokake manawa variabel kasebut bakal digawe mung sapisan, utawa yen saben instance (obyek) kelas duwe salinan dhewe. Kanthi gawan, salinan variabel anyar digawe kanggo saben obyek. . Iki rupane :"

Pranyatan kelas
class Cat                        // Class
{
    String name;                 // Variable

    Cat(String name)             // Constructor
    {
        this.name = name;        // Variable initialization
    }
}
Kode ing metode utama :
Cat cat1 = new Cat("Oscar"); // Create one object whose name variable contains "Oscar"
Cat cat2 = new Cat("Missy"); // Create one object whose name variable contains "Missy"
System.out.println(cat1.name);
System.out.println(cat2.name);
Output layar
Oscar
Missy

"Sanajan diumumake ing kelas sing padha (Cat), variabel cat1.namelan cat2.namengemot nilai sing beda amarga referensi obyek sing beda."
"Sing nggawe akal."
"Nanging, mung siji salinan variabel statis sing ana kanggo saben conto kelas, lan kudu diakses nggunakake jeneng kelas."

Pranyatan kelas
class Cat                   // Сlass
{
    String name;            // Instance (non-static) variable
    static int catCount;    // Static variable

    Cat(String name)
    {
        this.name = name;
        Cat.catCount++;   // Increment the static variable by 1
    }
}
Kode ing metode utama:
System.out.println(Cat.catCount);
Cat cat1 = new Cat("Oscar");

System.out.println(Cat.catCount);
Cat cat2 = new Cat("Missy");

System.out.println(cat1.name);
System.out.println(cat2.name);
System.out.println(Cat.catCount);
Output layar:
0
1
Oscar
Missy
2

"Oke, iku uga masuk akal."

"Metode Jawa dipérang dadi rong kategori. Metode Instance diarani obyek lan nduweni akses menyang data obyek kasebut. Metode statis ora nduweni akses kasebut, amarga mung ora duwe referensi obyek. Nanging, bisa ngrujuk variabel statis kelas lan metode statis liyane.

Metode statis ora bisa ngatasi metode non-statis utawa variabel non-statis!"

“Lha kok ngono, Ellie?”

"Saben variabel conto ana ing sawijining obyek. Bisa diakses mung yen sampeyan duwe referensi kanggo obyek kasebut. Ora ana referensi sing kasedhiya kanggo metode statis."

"Apa metode conto duwe referensi kaya ngono?"

"Ya, diterusake menyang metode instance kanthi ora langsung. Referensi menyang obyek sing diarani metode instance ora langsung diterusake menyang metode instance. Variabel sing nyimpen referensi iki diarani iki . Iki ngidini metode kasebut tansah ngakses obyek kasebut. data utawa nelpon cara non-statis liyane ing obyek padha.

Tinimbang referensi obyek, null diterusake menyang metode statis. Mulane dheweke ora bisa ngatasi variabel lan metode non-statis. Dheweke mung ora duwe referensi menyang obyek sing ana gandhengane karo variabel lan metode kasebut.

"Oke, Ellie, aku ngerti."

"Iki cara cara non-statis:

Apa kode katon kaya
Cat cat = new Cat();
String name = cat.getName();
cat.setAge(17);
cat.setChildren(cat1, cat2, cat3);
Apa pancene kedadeyan
Cat cat = new Cat();
String name = Cat.getName(cat);
Cat.setAge(cat, 17);
Cat.setChildren(cat, cat1, cat2, cat3);
Yen sampeyan nelpon metode nggunakake <object> dot <method name>, sampeyan bener-bener nelpon metode kelas lan ngliwati obyek sing padha karo argumen pisanan. Ing metode kasebut, obyek kasebut diarani 'iki' . Kabeh operasi ing metode kasebut ditindakake ing obyek iki lan data.

"Iki cara cara statis:

Apa kode katon kaya
Cat cat1 = new Cat();
Cat cat2 = new Cat();
int catCount = Cat.getAllCatsCount();
Apa pancene kedadeyan
Cat cat1 = new Cat();
Cat cat2 = new Cat();
int catCount = Cat.getAllCatsCount(null);
Yen sampeyan nelpon cara statis, ora ana obyek sing dilewati. Ing tembung liyane, 'iki' padha null . Mulane metode statis ora bisa ngakses variabel lan metode non-statis (amarga ora ana sing bisa diterusake kanthi cara non-statis).

"Variabel utawa metode statis yen ana tembung kunci statis ing ngarepe."

"Napa cara kasebut dibutuhake yen diwatesi banget?"

"Inggih, cara sing kaya mengkono iku duwe keuntungan."

"Kaping pisanan, kita ora kudu ngliwati referensi obyek kanggo nggunakake metode statis lan variabel. "

"Kapindho, kadhangkala perlu siji lan mung siji salinan variabel. Contone, System.out (variabel metu statis saka kelas System)."

"Kaping telu, kadhangkala sampeyan kudu nelpon cara sadurunge sampeyan bisa nggawe obyek."

"Ellie, sampeyan bisa menehi conto iki?"

"Apa sampeyan mikir cara utama () statis? Iku statis supaya programmer bisa nelpon sanalika sawise loading kelas menyang memori, sadurunge sembarang obyek wis digawe.