Skapa objekt - 1

"Hej, det är din favoritlärare igen. Eftersom du gör så stora framsteg har jag bestämt mig för att berätta om föremål och hur man arbetar med dem."

" För att skapa ett objekt måste du skriva nyckelordet 'new' följt av dess typnamn (klassnamn). Anta till exempel att vi har en klass som heter 'Cat':"

Koda Beskrivning
Cat cat;
Deklarerar en Cat-referensvariabel med namnet cat. Variabeln kattens värde är null.
new Cat();
Skapar ett Cat-objekt.
Cat cat = new Cat();
Skapar en Cat-referensvariabel med namnet cat.
Skapar ett nytt Cat-objekt. Tilldelar variabeln cat en referens till det nyskapade objektet.
Cat kitty = new Cat();
Cat smokey = new Cat();
Två objekt skapas. Referenser till dem är tilldelade två olika variabler.
Cat kitty = new Cat();
Cat smokey = new Cat();

smokey = kitty;
Två objekt skapas. Referenser till dem är tilldelade två olika variabler.

Sedan sätter vi variabeln smokey lika med en referens till objektet som refereras till av variabeln kitty. Båda variablerna hänvisar nu till de först skapade objekten.
(Eftersom det andra objektet inte längre refereras någonstans anses det nu vara skräp)

Cat kitty = new Cat();
Cat smokey = null;

smokey = kitty;

kitty = null;
Ett Cat-objekt skapas och en referens till det tilldelas den första variabeln (katt). Den andra variabeln (smokey) lagrar en tom (null) referens.

Båda variablerna refererar till samma objekt.

Nu hänvisar bara smokey, men inte kitty, till ett föremål.

"Vad skulle hända om vi skapade ett objekt och inte sparade en referens i någon variabel?"

"Om vi ​​bara skapar ett objekt utan att tilldela det till en variabel, kommer Java-maskinen att skapa det och sedan förklara det som skräp (ett oanvänt objekt). Efter ett tag kommer objektet att kasseras under sophämtning . "

"Hur gör jag av med ett föremål som jag inte behöver längre?"

"Det gör du inte. Så snart inga variabler refererar till ett objekt, märks det som skräp och förstörs av Java-maskinen nästa gång den samlar in skräp. "

Så länge det finns minst en referens till ett objekt, anses det vara aktivt och kommer inte att förstöras. Om du vill göra dig av med ett objekt tidigare kan du rensa alla referenser till det genom att tilldela null till alla variabler som refererar till det.

"Jag förstår. Jämfört med de senaste lektionerna ser det här ganska enkelt ut."

"Diego har varit uppe hela natten och tänkt på uppgifter åt dig. Han gjorde den här speciella insatsen bara för dig. Han har ett fantastiskt sinne för humor, vet du?"


Ett föreläsningsutdrag med en mentor som en del av Codegym University-kursen. Anmäl dig till hela kursen.