Pembuatan dan Penyimpanan Objek
Diperkenalkan| English | Makna |
|---|---|
| constructor/kənˈstrʌktə/ | konstruktor |
| instantiation/ˌɪnstænʃɪˈeɪʃn/ | instansiasi |
Membuat Objek Baru
- Untuk membuat objek, gunakan kata kunci
newdan konstruktor. Scanner sc = new Scanner(System.in);membangun objek Scanner baru.- Instantiasi adalah tindakan menciptakan objek dari sebuah kelas.
- Konstruktur mengatur state awal objek.
Argumen Konstruktore
- Konstruktore dapat menerima argumen untuk mengonfigurasi objek baru.
new Random(42)memberi benih generator acak;new String("hi")menyalin teks.- Argumen sesuai dengan parameter konstruktore, berdasarkan posisi dan tipe.
- Konstruktore berbeda (overloaded) memungkinkan Anda membangun kelas yang sama dengan cara berbeda.
Menyimpan Referensi
newmengembalikan sebuah referensi ke objek; simpan dalam variabel bertipe yang tepat.Scanner sc = new Scanner(System.in);—scsekarang merujuk pada objek tersebut.- Objek berada dalam memori;
schanyalah label yang menunjuk padanya. - Hilangkan referensinya (tidak ada variabel yang menyimpannya) dan objek menjadi tak terjangkau.
Dua Variabel, Satu Objek
- Menugaskan satu variabel objek ke variabel lain menyalin referensi, bukan objeknya.
Scanner sc2 = sc;— sekarangscdansc2menunjuk ke ** Scanner yang sama**.- Perubahan melalui
sc2terlihat melaluisc— karena keduanya adalah satu objek. - Perilaku penyalinan referensi ini merupakan fitur utama (dan jebakan) dari objek.
new membuat SATU objek dan mengembalikan referensinya. Menugaskan variabel tersebut ke variabel lain (b = a;) menyalin referensi, sehingga kedua nama menunjuk ke objek yang sama — bukan salinan kedua. Bandingkan dengan primitif (int y = x; menyalin nilai). Melupakan hal ini menyebabkan kejutan "Saya mengubah b, mengapa a juga berubah?".
Instantiasi dan aliasing:
Random r = new Random();→rmerujuk pada objek Random baru.Random r2 = r;→r2menunjuk ke objek yang sama (tidak ada objek baru yang dibuat).- Kedua
rdanr2kini berbagi satu status generator.
Buatlah sebuah objek dengan new ditambah konstruktor (instantiasi): new Scanner(System.in). new mengembalikan referensi yang Anda simpan dalam variabel. Menugaskan satu variabel objek ke variabel lain menyalin referensinya — keduanya kemudian merujuk ke objek yang sama (berbeda dengan primitif, yang menyalin nilai).
new membuat satu objek; = menyalin referensinya
r dan r2 berbagi satu objek; x dan y adalah salinan yang independen.
Kata kunci manakah yang membuat objek baru?
Difficulty 1/5 · 100 coins + a small bonus on first completion today
new plus constructor menginstansiasi objek.
Method khusus yang dipanggil untuk membangun objek baru adalah ___ (satu kata).
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Constructor mengatur setup objek baru.
Setelah Random r2 = r; berapa banyak objek Random yang ada?
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Peny assigning menyalin referensi, bukan objek — tetap satu objek.
Assigning satu variabel objek ke variabel lain (b = a) membuat objek kedua yang independen.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Ini menyalin referensi — keduanya menunjuk ke objek yang sama.
Untuk primitives, int y = x; copies the value, jadi x and y are independent.
Difficulty 1/5 · 100 coins + a small bonus on first completion today
Primitives copy the value; objects copy the reference.