1. Obyek
Kabeh ing Jawa iku obyek.
Luwih tepate, ing Jawa mung ana barang sing dudu obyek. Contone, jinis primitif. Nanging iki minangka pangecualian sing rada langka kanggo aturan kasebut.
Dadi apa obyek?
Objek yaiku entitas sing nglumpukake data bebarengan karo metode sing ngolah data . Nalika kita ngomong "data", kita tegese variabel, mesthi.
Variabel obyek diarani "data" utawa "negara".
Metode obyek diarani minangka "prilaku". Biasane ngganti status obyek (variabel) mung nggunakake metode obyek kasebut. Ngganti variabel obyek kanthi langsung (ora nggunakake metode) dianggep minangka wujud ala.
Saben obyek , uga saben variabel, duwe jinis . Jinis iki ditemtokake sapisan nalika obyek digawe lan ora bisa diganti ing mangsa ngarep. Tipe obyek yaiku kelas.
Saben obyek duwe salinan variabel instance dhewe (lapangan). Yen int non-statis variabel diumumake ing kelas, lan program sampeyan nggawe 10 obyek saka kelas kasebut, saben obyek bakal duwe variabel int dhewe.
Interaksi karo obyek
Cara sing paling trep kanggo nggarap obyek yaiku nyimpen referensi kasebut ing variabel, banjur nelpon metode ing variabel kasebut. Iki bakal katon akrab karo sampeyan:
variable.method()
Where variable
punika variabel sing nyimpen referensi kanggo obyek, lan method
cara saka kelas sing.
Yen sampeyan pengin ngrujuk menyang kolom (variabel) obyek, sampeyan uga kudu nggunakake operator titik :
variable.field
Endi variable
variabel sing nyimpen referensi kanggo obyek, lan field
variabel conto (lapangan).
2. new
operator
Kanggo nggawe obyek saka kelas tartamtu, sampeyan kudu nggunakake new
operator. Umumé, kaya mangkene carane nggawe obyek:
Class variable = new Class(arguments);
Endi Class
jeneng kelas variabel variable
uga jeneng kelas obyek sing bakal digawe. Lan variable
minangka variabel sing nyimpen referensi kanggo obyek sing digawe. Lan arguments
minangka placeholder kanggo dhaptar argumen sing diwatesi koma sing diterusake menyang konstruktor.
Dhaptar argumen tartamtu sing bisa dilewati diputusake dening programer sing nulis kelas kasebut.
Sampeyan wis nggawe obyek sadurunge lan malah nggunakake konstruksi tartamtu iki. Sampeyan ora lali, muga-muga?
Scanner console = new Scanner(System.in);
int x = console.nextInt();
Scanner console
- iki nggawe console
variabel sing jinis Scanner
. - iki nggawe obyek anyar . Lan operator assignment nyetel variabel padha karo referensi kanggo obyek mentas digawe.new Scanner(System.in)
Scanner
console
Ing baris kapindho, kita nelpon nextInt()
cara ing Scanner
obyek, nggunakake console
variabel, kang nyimpen referensi kanggo Scanner
obyek.
Conto nggawe obyek:
Kode | Katrangan |
---|---|
|
Nggawe String obyek |
|
Nggawe Scanner obyek |
|
Nggawe int[] : wadhah 10 int unsur |
Obyek sing digawe diarani obyek kelas utawa instance saka kelas , dene kelas kasebut diarani kelas obyek . Contone, s
variabel nyimpen referensi kanggo conto kelas String
.
3. Ngenalake kelas
Aku sampeyan wis weruh carane trep banget kanggo nggunakake kelas ditulis dening programer liyane. Nanging kepiye carane nulis kelas sampeyan dhewe?
Kepiye sampeyan ngerti kapan lan ing ngendi sampeyan butuh kelas sampeyan dhewe lan carane nggawe?
Programer biasane nggawe kelas dhewe nalika pengin nggawa entitas anyar menyang program kasebut. Apa sing muni bingung? Banjur aku bakal nyoba nerangake, nanging aku bakal miwiti saka adoh.
Klompok data
Nyederhanakake sethithik, kita bisa ngomong yen obyek ing Jawa minangka blok memori sing ngemot variabel sing diumumake ing kelas (lapangan conto). Utawa, kanthi tembung liya, variabel digabung dadi klompok.
Contone, program sampeyan kudu nyimpen koordinat 100
titik lan mbutuhake cara kanggo nampilake ing layar. Iki bisa ditindakake kanthi nggunakake array. Contone, kaya iki:
class Solution
{
public static void printPoints(int[] x, int[] y, int[] color)
{
for (int i = 0; i < x.length; i++)
System.out.println("Color of (" + x[i] + ", " + y[i] + ") = " + color[i]);
}
public static void main(String[] args)
{
int[] x = new int[100];
int[] y = new int[100];
int[] color = new int[100];
printPoints(x, y, color);
}
}
Iku bakal luwih trep yen kita duwe jinis siji kanggo nyimpen kabeh informasi bab titik: x
, y
, color
. Yen jinis kasebut ora ana ing Jawa, sampeyan bisa nggawe dhewe.
Kanggo nindakake iki, kita bakal nulis kode kanggo Point
kelas:
public class Point
{
public int x;
public int y;
public int color;
}
Saiki kode ing ndhuwur bisa ditulis maneh minangka:
class Solution
{
public static void printPoints(Point[] points)
{
for (int i = 0; i < points.length; i++)
System.out.println("Color of (" + points[i].x + ", " + point[i].y + ") = " + points[i].color);
}
public static void main(String[] args)
{
Point[] data = new Point[100];
for (int i = 0; i < data.length; i++)
data[i] = new Point();
printPoints(data);
}
}
Saiki ayo nambah metode menyang Point
kelas sing bakal nampilake informasi babagan obyek kasebut:
public class Point
{
public int x;
public int y;
public int color;
public void print()
{
System.out.println("Color of (" + x + ", " + y + ") = " + color);
}
}
Saiki Solution
kelas katon kaya iki:
class Solution
{
public static void printPoints(Point[] points)
{
for (int i = 0; i < points.length; i++)
points[i].print();
}
public static void main(String[] args)
{
Point[] data = new Point[100];
for (int i = 0; i < data.length; i++)
data[i] = new Point();
printPoints(data);
}
}
We skillfully ndhelikake koordinat titik lan informasi werna nang Point
kelas bebarengan karo cara sing nuduhake negara titik.
Kelas minangka cara kanggo ngatur kerumitan program. Program gedhe dadi kurang kompleks nalika dipérang dadi pirang-pirang kelas cilik.
4. Obyek sing bisa diganti vs sing ora bisa diganti
Biyen, kita sinau konstanta ing Jawa lan entuk kesimpulan sing ora nyenengake. Konstanta ngidini sampeyan nglindhungi variabel supaya ora diganti, nanging ora bisa nyegah owah-owahan ing obyek sing dirujuk.
Kanggo ngatasi masalah iki, Jawa teka karo obyek konstan. Utawa, kaya sing luwih kerep diarani, obyek sing ora bisa diganti.
Miturut cara, sampeyan wis ngerti kelas kasebut, sing obyek ora bisa diganti: String
. Sawijining String
obyek tetep ora owah salawas-lawase sawise digawe. Lan kepiye para pangripta Jawa bisa nggayuh iki?
Kaping pisanan, kabeh variabel kelas String
didhelikake, yaiku diumumake private
.
Kapindho, sampeyan ora bisa oleh warisan String
kelas: deklarasi kelas kalebu final
modifier.
Katelu, lan sing paling menarik, kabeh metode kelas String
, sing, ing teori, sampeyan bakal ngarepake ngganti obyek sing wis ana, ora bener ngganti, nanging ngasilake sing anyar.
Contone, toUpperCase()
cara nggawe kabeh huruf ing senar gedhe. Nanging tinimbang ngganti obyek sing diarani metode kasebut, ngasilake String
obyek anyar sing kasusun saka huruf kapital:
String text = "This is a very important message";
String message = text.toUpperCase();
Iki sing bakal ana ing memori sawise nglakokake kode iki:
Dadi bebas ngirim senar sampeyan menyang cara apa wae: ora ana sing bakal ngganti.