Hello, Amigo! Aku arep ngomong babagan struktur internal variabel. Kaya sing wis dingerteni, saben variabel digandhengake karo area memori ing ngendi nilai kasebut disimpen. "

"Ya, sampeyan wis ngomong babagan sing pungkasan."

"Apik. Iku apik yen sampeyan kelingan. Aku bakal nerusake, banjur."

"Kabeh jinis komposit kasusun saka sing luwih prasaja. Lan padha, ing gilirane, kalebu sing luwih prasaja. Nganti, pungkasane, kita mungkasi karo jinis primitif , sing ora bisa luwih disederhanakake. Sing diarani - jinis primitif . Kanggo contone, int minangka jinis primitif, nanging String minangka jinis komposit sing nyimpen data minangka tabel karakter (ing saben karakter minangka jinis primitif char ).

"Menarik banget. Terus."

"Jinis komposit dibentuk kanthi nglompokake sing prasaja. Kita nyebat kelas jinis kasebut . Nalika kita nemtokake kelas anyar ing program, kita ngumumake jinis data komposit anyar . Data kasebut bakal dadi jinis komposit utawa jinis primitif liyane."

kode Jawa Katrangan
public class Person
{
   String name;
   int age;
}
Jinis komposit anyar diumumake - Person.
Data kasebut disimpen ing Stringvariabel (jinis komposit) namelan intvariabel (jinis primitif).age
public class Rectangle
{
   int x, y, width, height;
}
Jinis komposit anyar diumumake - Rectangle.
Iku kasusun saka papat int(jinis primitif) variabel.
public class Cat
{
   Person owner;
   Rectangle territory;
   int age;
   String name;
}
Jinis komposit anyar diumumake - Cat. Nduwe variabel ing ngisor iki:
owner, jinis komposit Person
territory, jinis komposit Rectangle
age, jinis primitif int
name, jinis kompositString

"Saiki, kabeh wis jelas, nanging katon aneh."

"Jinis gedhe (komposit) ngemot akeh jinis cilik (primitif). Pramila obyek saka jinis iki njupuk akeh memori - luwih saka variabel saka jinis primitif. Kadhangkala luwih akeh. Nindakake operasi assignment karo variabel kuwi digunakake kanggo njupuk dawa. wektu lan dibutuhake Nyalin bagean gedhe saka memori.Mulane variabel saka jinis gabungan ora nyimpen obyek dhewe, nanging mung referensi kanggo iku, IE alamat papat-bait. Iki cukup kanggo alamat data ing obyek kuwi. Mesin Java nangani kabeh kerumitan sing ana gandhengane."

"Aku ora ngerti apa-apa."

"Sadurungé kita wis ngomong sing variabel kaya kothak. Yen sampeyan pengin nyimpen nomer 13 ing, sampeyan bisa nulis 13 ing Piece saka kertas lan sijine menyang kothak."

"Nanging mbayangno yen sampeyan kudu nyimpen barang sing luwih gedhe ing kothak (variabel). Contone, asu, mobil, utawa pepadhamu. Tinimbang nyoba nyurung sing ora bisa didorong menyang kothak, sampeyan bisa nindakake luwih gampang: nggunakake foto. saka asu tinimbang asu nyata, plat nomer tinimbang mobil asli, utawa nomer telpon pepadhamu tinimbang pepadhamu."

"We njupuk selembar kertas lan nulis nomer telpon pepadhamu. Iki minangka referensi kanggo obyek. Yen kita nyalin kertas sing ana nomer telpon tanggane lan dilebokake ing pirang-pirang kothak, saiki luwih akeh referensi. marang pepadhamu. Nanging kaya dhek biyen, kowe isih duwe pepadhamu mung siji. Mangkono, ta?"

"Fitur penting kanggo nyimpen data kanthi cara iki yaiku sampeyan bisa duwe akeh referensi menyang obyek siji "

"Carane menarik! Aku wis meh entuk. Kandhanana sepisan maneh, mangga - apa sing bakal kelakon yen aku nemtokake variabel saka jinis komposit menyang variabel liyane saka jinis komposit sing padha?"

"Banjur loro variabel bakal nyimpen alamat sing padha. Tegese yen sampeyan ngganti data obyek sing dirujuk dening siji variabel, sampeyan ngganti data sing dirujuk dening liyane . Loro-lorone variabel kasebut ngrujuk obyek sing padha . variabel liyane sing uga nyimpen referensi kasebut."

"Apa sing ditindakake dening variabel komposit (referensi / kelas) yen ora duwe referensi kanggo obyek? Apa bisa uga?"

"Ya, Amigo. Sampeyan bakal ndhisiki pitakonan sampeyan. Iku bisa uga. Yen variabel saka jinis referensi (komposit) ora nyimpen referensi kanggo obyek, banjur nyimpen apa sing dikenal minangka 'null. referensi'. Sejatine, iki tegese referensi obyek sing alamate 0. Nanging, mesin Java ora tau nggawe obyek nganggo alamat iki, mula mesthi ngerti yen variabel referensi ngemot 0, mula ora nuduhake obyek apa wae. ."

kode Jawa Katrangan
String s;
String s = null;
Pernyataan sing padha.
Person person;
person = new Person();
person = null;
Kita nggawe variabel wong sing nilaine null.
Kita nemtokake alamat obyek Person sing mentas digawe.
Kita nemtokake null menyang variabel.
Cat cat = new Cat();
cat.owner = new Person();
cat.owner.name = "God";
Kita nggawe obyek Cat lan nyimpen alamat ing kucing variabel; kucing.pemilik padha null.
We nyetel cat.owner witjaksono menyang alamat obyek Person mentas digawe.
cat.owner.name isih padha null.
Kita nyetel cat.owner.name padha karo "Gusti Allah"

"Apa aku ngerti sampeyan kanthi bener? Variabel dipérang dadi rong jinis: jinis primitif lan jinis referensi. Jinis primitif nyimpen nilai langsung, nalika jinis referensi nyimpen referensi menyang obyek. Jinis primitif kalebu int, char, boolean, lan liya-liyane. Referensi jinis kalebu kabeh liyane. Kita nggunakake kelas kanggo nggawe. "

"Sampeyan pancen bener, anakku."

"Dadi, sampeyan ngomong sampeyan wis ngerti kabeh. Kene sawetara tugas kanggo mbantu sampeyan nguatake kawruh."

3
tugas
Java Syntax,  tingkatwulangan
Dikunci
Where does a Person come from?
In Java, people come from the same place that other classes come from: from the programmer's head. It is important for the creator of a class to think through what is important for the class and what is not. If he or she does, then the class will make sense and be useful. Let's begin. Let's create a Person class that allows our Person to have a name, age, weight, and... money. And then we'll create an object.
3
tugas
Java Syntax,  tingkatwulangan
Dikunci
Family relations
A programmer can create a man and a woman with a couple of deft movements of his or her fingers. Easy-peasy: we'll write the appropriate classes and create objects. Let's work on a married couple: we'll create Man and Woman objects, and then save a reference to the Woman in man.wife, and a reference to the Man in woman.husband. You see? You don't even need a marriage license.
3
tugas
Java Syntax,  tingkatwulangan
Dikunci
Pay raise
It's good to be a programmer: your salary will grow rapidly. And if this doesn't happen, you can influence the situation with a little help from your hacker friends. Imagine that you have access to the automated payroll system. You need to write an interceptor method that will add $1000 to each salary payment.
1
tugas
Java Syntax,  tingkatwulangan
Dikunci
Part of a calculator
Let's make the computer count for us! Ultimately, that's what they were created for. In this task, we ask the computer to calculate the sum and product of two numbers. Everything is super simple: we declare int variables, assign them a value, add and multiply them, and then display the result.