Video: Android 101 by Fred Widjaja 2024
Terdapat beberapa perkara yang anda ingin fikirkan ketika menggunakan nama dalam apl Android anda. Anda boleh mengisytiharkan dua pembolehubah Java -
bag1
dan
bag2
- untuk merujuk kepada dua objek
BagOfCheese
yang berbeza. Baiklah. Tetapi kadang-kadang, hanya mempunyai satu pemboleh ubah dan menggunakannya untuk objek kedua berfungsi sama seperti yang ditunjukkan di sini. Pake pakej
. allmycode. a09_03;
import android. sokongan. v7. aplikasi. AppCompatActivity;
import android. os. Bundle;
import android. widget. TextView;
import com. allmycode. a09_01. BagOfCheese;
MainActivity kelas awam memanjangkan AppCompatActivity {
TextView textView;
@Orrride
dilindungi tidak sah onCreate (Bundle savedInstanceState) {
super. onCreate (savedInstanceState);
setContentView (susun atur Reka bentuk. Activity_main);
textView = (TextView) findViewById (R teks id id);
BagOfCheese bag = BagOfCheese baru (); Beg
. jenis = "Cheddar"; Beg
. berat = 2. 43; Beg
. daysAged = 30; Beg
. isDomestic = true;
textView. setText ("");
textView. append (bag. kind + "," + bag weight + "," +
bag. daysAged + "," + bag isDomestic + " n");
bag = BagOfCheese baru (); Beg
. jenis = "Biru"; Beg
. berat = 5,987; Beg
. daysAged = 90; Beg
. isDomestic = false;
textView. append (bag. kind + "," + bag weight + "," +
bag. daysAged + "," + bag isDomestic + " n");
}
}
Dalam kod ini, apabila Java mengeksekusi pernyataan kedua
bag = baru BagOfCheese ()
, objek lama (beg yang mengandungi cheddar) telah hilang. Tanpa beg (atau mana-mana pembolehubah lain) merujuk kepada objek cheddar itu, tidak ada cara kod anda dapat melakukan apa-apa dengan objek cheddar. Mujurlah, apabila anda mencapai kenyataan
bag = baru BagOfCheese ()
, anda selesai melakukan semua yang anda mahu lakukan dengan beg cheddar yang asal. Dalam kes ini, penggunaan semula pembolehubah beg boleh diterima.
Apabila anda menggunakan semula pembolehubah (seperti pemboleh ubah satu atau hanya
bag
di atas), anda melakukannya dengan menggunakan pernyataan tugasan, bukan inisialisasi. Dengan kata lain, anda tidak menulis
beg BagOfCheese
untuk kali kedua dalam kod anda. Jika anda lakukan, anda akan melihat mesej ralat dalam editor Android Studio.
Untuk menyakitkan tepat, anda boleh menulis
beg BagOfCheese
lebih daripada satu kali dalam sekeping kod yang sama.
Tiada medan kelas
BagOfCheese
adalah
akhir
. Dengan kata lain, kod kelas membolehkan anda menetapkan semula nilai ke dalam bidang di dalam objek
BagOfCheese
.Dengan maklumat ini, anda boleh memendekkan kod di atas dengan satu baris lagi, seperti yang ditunjukkan di sini. Pake pakej
. allmycode. a09_04;
import android. sokongan. v7. aplikasi. AppCompatActivity;
import android. os. Bundle;
import android. widget. TextView;
import com. allmycode. a09_01. BagOfCheese;
MainActivity kelas awam memanjangkan AppCompatActivity {
TextView textView;
@Orrride
tidak sah dilindungi padaCreate (Bundle savedInstanceState) {
super. onCreate (savedInstanceState);
setContentView (susun atur Reka bentuk. Activity_main);
textView = (TextView) findViewById (R teks id id);
BagOfCheese bag = BagOfCheese baru (); Beg
. jenis = "Cheddar"; Beg
. berat = 2. 43; Beg
. daysAged = 30; Beg
. isDomestic = true;
textView. setText ("");
textView. append (bag. kind + "," + bag weight + "," +
bag. daysAged + "," + bag isDomestic + " n");
// bag = BagOfCheese baru (); Beg
. jenis = "Biru"; Beg
. berat = 5,987; Beg
. daysAged = 90; Beg
. isDomestic = false;
textView. append (bag. kind + "," + bag weight + "," +
bag. daysAged + "," + bag isDomestic + " n");
}
}
Dengan panggilan pembina kedua dalam kod ini mengulas, anda tidak membuat pembolehubah
bag
merujuk kepada objek baru. Sebaliknya, anda menjimatkan dengan memberikan nilai baru ke medan objek sedia ada.
Dalam sesetengah keadaan, penggunaan medan objek dapat lebih efisien (lebih pantas untuk dilaksanakan) daripada membuat objek baru. Tetapi apabila anda mempunyai pilihan, itu adalah idea yang baik untuk menulis kod yang mencerminkan data sebenar. Jika kandungan beg sebenarnya tidak berubah daripada keju cheddar ke keju biru, lebih baik jangan menukar medan jenis objek
BagOfCheese
dari "
Cheddar
" ke "
Biru
".