Dalam artikel "Dari Hello World ke Berorientasi Objek" di Tutorial Dasar Java, kita memiliki pemahaman awal tentang objek. Anggota data dalam suatu objek mewakili keadaan objek tersebut. Objek dapat melakukan metode yang mewakili tindakan tertentu.
Selain itu, kami juga belajar tentang kelas. Objek dari kelas yang sama memiliki tipe yang sama. Kita dapat mendefinisikan kelas dan menggunakan definisi tersebut untuk membuat objek.
Mari kita gali lebih dalam objeknya. Pelajari beberapa detail tentang metode dan anggota data di Java.
Memanggil anggota data dari objek yang sama
Metode dapat memanggil anggota data objek. Misalnya, di bawah ini kita menambahkan metode getHeight() ke kelas Human. Metode ini mengembalikan nilai anggota data tinggi badan:
Copy kode kodenya sebagai berikut:
Tes kelas publik
{
public static void main(String[] args)
{
Manusia aPerson = Manusia baru();
Sistem.keluar.println(aPerson.getHeight());
}
}
kelasManusia
{/**
*aksesor
*/
int getHeight()
{
kembalikan ini.tinggi;
}
tinggi int;
}
Kami telah menambahkan metode getHeight. Metode ini memiliki nilai kembalian bertipe int. Return digunakan di Java untuk mengembalikan nilai.
Perhatikan ini, yang digunakan untuk merujuk pada objek itu sendiri. Saat kita membuat instance aPerson, ini mewakili objek aPerson. this.height mengacu pada tinggi badan seseorang.
ini adalah argumen implisit. Ketika suatu metode dipanggil, meskipun daftar parameter metode tersebut tidak menyertakannya, Java akan "secara diam-diam" meneruskan parameter ini ke metode tersebut.
(Ada beberapa metode khusus yang tidak menyampaikan hal ini secara implisit, kita akan melihatnya nanti)
ini tidak diperlukan, cara di atas dapat ditulis sebagai:
Copy kode kodenya sebagai berikut:
/**
*aksesor
*/
int getHeight()
{
tinggi kembali;
}
Java akan menentukan dengan sendirinya bahwa tinggi badan adalah data anggota di kelas tersebut. Namun akan lebih jelas menggunakan ini.
Kami juga melihat metode /** comments */ untuk menambahkan komentar.
daftar parameter metode
Definisi metode di Java mirip dengan fungsi dalam bahasa C. Metode Java juga dapat menerima daftar argumen (argument list) dalam tanda kurung setelah nama metode. Selanjutnya kita mendefinisikan metode GrowHeight(). Fungsi dari metode ini adalah untuk menambah tinggi badan seseorang:
Copy kode kodenya sebagai berikut:
Tes kelas publik
{
public static void main(String[] args)
{
Manusia aPerson = Manusia baru();
Sistem.keluar.println(aPerson.getHeight());
aPerson.growHeight(10);
Sistem.keluar.println(aPerson.getHeight());
}
}
kelasManusia
{
/**
*aksesor
*/
int getHeight()
{
kembalikan ini.tinggi;
}
/**
* menyampaikan argumen
*/
batal tumbuhTinggi(int h)
{
ini.tinggi = ini.tinggi + h;
}
tinggi int;
}
Di GrowHeight(), h adalah parameter yang diteruskan. Dalam definisi kelas, tipe parameter (int) dinyatakan. Di dalam metode tertentu, kita dapat menggunakan parameter ini. Parameter ini hanya valid dalam cakupan metode ini, yaitu tumbuhTinggi().
Saat menelepon, kami meneruskan 10 ke growthHeight(). Tinggi badan seseorang bertambah 10.
Panggil metode lain pada objek yang sama
Di dalam suatu metode, metode lain dari objek yang sama dapat dipanggil. Saat menelepon, gunakan formulir this.method(). Kita juga ingat bahwa ini mengacu pada objeknya. Jadi this.method() mengacu pada metode method() dari objek itu sendiri.
Misalnya, fungsi repeatBreath() berikut:
Copy kode kodenya sebagai berikut:
Tes kelas publik
{
public static void main(String[] args)
{
Manusia aPerson = Manusia baru();
aPerson.repeatBreath(10);
}
}
kelasManusia
{
nafas kosong()
{
System.out.println("hu...hu...");
}
/**
*panggil nafas()
*/
batalkan nafas berulang(int perwakilan)
{
ke dalam aku;
untuk(saya = 0; saya < perwakilan; saya++) {
ini.nafas();
}
}
tinggi int;
}
Untuk memudahkan perulangan, dalam metode repeatBreath(), kita mendeklarasikan objek i bertipe int. Cakupan i terbatas pada cakupan metode repeatBreath().
(Ini mirip dengan variabel otomatis dalam fungsi bahasa C)
Inisialisasi anggota data
Di Java, ada banyak cara untuk menginisialisasi data anggota. Misalnya, dalam contoh getHeight() di atas, meskipun kami tidak pernah memberikan nilai tinggi, Java memilih nilai awal default 0 untuk kami.
Nilai awal default untuk anggota data tipe dasar:
1. Tipe numerik: 0
2.Nilai Boolean: salah
3. Tipe lain: nol
Kami dapat memberikan nilai awal dari anggota data sambil mendeklarasikannya. Ini disebut inisialisasi eksplisit. Nilai inisialisasi tampilan harus ditulis keras dalam program:
Copy kode kodenya sebagai berikut:
Tes kelas publik
{
public static void main(String[] args)
{
Manusia aPerson = Manusia baru();
Sistem.keluar.println(aPerson.getHeight());
}
}
kelasManusia
{/**
*aksesor
*/
int getHeight()
{
kembalikan ini.tinggi;
}
int tinggi = 175;
}
Di sini, nilai awal tinggi anggota data adalah 175, bukan default 0.
Ada cara lain untuk menginisialisasi objek di Java, yang akan saya perkenalkan nanti.
Meringkaskan
kembali
ini, ini.bidang, ini.metode()
Nilai awal default, inisialisasi eksplisit