Video: What's new in Android development tools - Google I/O 2016 2024
Kadangkala, anda ingin memberikan objek Java anda lebih banyak untuk dilakukan dalam apl Android anda. Pertimbangkan ini: Anda mempunyai pencetak dan anda cuba memasangnya di komputer anda. Ia adalah pencetak yang berkebolehan, tetapi ia tidak datang dengan komputer anda, jadi komputer anda memerlukan program untuk drive pencetak: printer driver. Tanpa pemandu, pencetak baru anda adalah apa-apa selain kertas berat gergasi.
Tetapi, kadang-kadang, mencari pemandu peranti boleh menjadi sakit di leher. Mungkin anda tidak dapat mencari cakera yang datang dengan pencetak.
Bayangkan anda mempunyai satu pencetak jenama luar yang pemandunya dibina ke dalam memori tetapnya. Apabila anda memasukkan pencetak ke dalam port USB, komputer memaparkan lokasi storan baru. (Lokasi kelihatan, kepada pengguna biasa, seperti lain-lain cakera komputer.) Pemacu untuk pencetak disimpan secara langsung pada memori dalaman pencetak. Ia seolah-olah pencetak tahu cara memandu sendiri!
Katakan anda ingin memaparkan ciri-ciri beg tertentu, dan anda tidak suka berurusan dengan butir-butir lucu. Khususnya, anda tidak suka bimbang tentang koma, ruang kosong, dan nama lapangan apabila anda memaparkan beg:
beg. jenis + "," + beg. berat + "," +
beg. daysAged + "," + beg. isDomestic + " n"
Anda lebih suka mempunyai kelas BagOfCheese
untuk mempamerkan salah satu objeknya sendiri.
Inilah pelan: Pindahkan tali besar dengan medan beg, koma dan ruang dari kelas
MainActivity
ke kelas
BagOfCheese
. Iaitu, buat setiap objek
BagOfCheese
bertanggungjawab untuk menerangkan dirinya dalam bentuk
String
. Anda boleh memberi borang setiap bentuk begnya sendiri.
Perkara yang sama berlaku dalam set kedua kod di bawah apabila anda memanggil
bag1. toString ()
. Java menjalankan kaedah
toString
yang menunjukkan set pertama kod. Nilai-nilai yang digunakan dalam panggilan kaedah -
jenis
,
berat
,
daysAged
, dan
isDomestic
- adalah nilai dalam
bag1 Bidang objek
. Begitu juga, nilai yang digunakan semasa anda memanggil
bag2. toString ()
adalah nilai dalam medan objek
bag2
. Pake pakej
. allmycode. a09_10;
kelas awam BagOfCheese {
jenis String awam;
berat ganda awam;
int hari awamDatang;
boolean awam adalahDomestic;
awam BagOfCheese () {
}
awam BagOfCheese (jenis String, double weight,
int daysAged, boolean isDomestic) {
ini.jenis = jenis;
ini. berat = berat;
ini. daysAged = daysAged;
ini. isDomestic = isDomestic;
}
String public toString () {
return type + "," + weight + "," + daysAged + "," + isDomestic + " n";
}
}
Sekarang, mari kita lihat mempunyai paparan beg sendiri. Pake pakej
. allmycode. a09_11;
import android. sokongan. v7. aplikasi. AppCompatActivity;
import android. os. Bundle;
import android. widget. TextView;
import com. allmycode. a09_10. 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 bag1 = BagOfCheese baru ("Cheddar", 2. 43, 30, benar);
BagOfCheese bag2 = BagOfCheese baru ("Biru", 5. 987, 90, palsu);
textView. setText ("");
textView. tambah (bag1. toString ());
textView. tambah (bag2. toString ());
}
}
Dalam set pertama kod, objek
BagOfCheese
mempunyai kaedah sendiri, tanpa parameter
toString
. Dan pada set kedua, dua baris berikut membuat dua panggilan ke kaedah
toString
- satu panggilan untuk
bag1
dan satu lagi panggilan untuk
bag2
:
textView. tambah (bag1. toString ());
textView. tambah (bag2. toString ());
Panggilan ke
toString
berkelakuan berbeza bergantung pada beg tertentu yang dipaparkan. Apabila anda memanggil
bag1. toString ()
, anda melihat nilai medan untuk
bag1
, dan apabila anda memanggil
bag2. toString ()
, anda melihat nilai medan untuk
bag2
.
Untuk memanggil salah satu kaedah objek, ikuti rujukan kepada objek dengan titik dan kemudian nama kaedah itu.