Video: Privacy, Security, Society - Computer Science for Business Leaders 2016 2024
Uneori, doriți să oferiți obiectului dvs. Java mai mult de făcut în aplicația Android. Luați în considerare acest lucru: Aveți o imprimantă și încercați să o instalați pe computer. Este o imprimantă capabilă, dar nu a venit cu computerul, astfel încât calculatorul are nevoie de un program pentru a conduce imprimanta: un driver driver. Fără driver, noua imprimanta nu este decât o greutate de hârtie gigant.
Dar, uneori, găsirea unui conducător de dispozitiv poate fi o durere în gât. Poate că nu puteți găsi discul livrat împreună cu imprimanta.
Imaginați-vă că aveți o imprimantă de mărci a cărei driver este construit în memoria sa permanentă. Când conectați imprimanta la un port USB, computerul afișează o nouă locație de stocare. (Locația arată, pentru utilizatorii obișnuiți, ca și alte discuri ale computerului.) Driverele pentru imprimantă sunt stocate direct pe memoria internă a imprimantei. Este ca și cum imprimanta știe să se conducă singură!
Să presupunem că doriți să afișați proprietățile unei pungi speciale și nu vă place să vă ocupați de detaliile unei pungi. În special, nu vă place să vă faceți griji cu privire la virgule, spații goale și nume de câmpuri atunci când afișați un sac:
sac. fel + "," + sac. greutate + "," +
sac. zile Aged + "," + sac. isDomestic + " n"
Ai prefera sa ai o clasa
BagOfCheese
sa afli cum sa afisezi unul dintre obiectele proprii.
Iată planul: Deplasați șirul mare cu câmpurile sacului, virgulele și spațiile din clasa
MainActivity
la clasa
BagOfCheese
. Asta este, face ca fiecare obiect
BagOfCheese
să fie responsabil pentru descrierea în forma
String
. Ați putea să dați fiecărei pungi forma propriului buton Afișaj.
Caracteristica interesantă a butonului Afișaj este că atunci când îl apăsați, textul pe care îl vedeți depinde de sacul de brânză pe care îl examinați. Mai exact, textul pe care îl vedeți depinde de valorile din câmpurile respectivei forme.
Același lucru se întâmplă și în cel de-al doilea set de cod de mai jos atunci când sunați la
sac1. toString ()
. Java rulează metoda
toString
afișată primul set de cod. Valorile utilizate în această metodă sunt
fel
,
greutate
,
zileAged
și
isDomestic
câmpurile obiectului. În mod similar, valorile utilizate atunci când sunați la
sac2. toString ()
sunt valorile câmpurilor obiectului
bag2
.
pachet com. allmycode. a09_10;
clasa publică BagOfCheese {
public String kind;
greutate publică dublă;
public int daysAged;
booleanul public esteDomestic;
public BagOfCheese () {
}
public BagOfCheese (tip String, greutate dublă,
int daysAged, boolean isDomestic) {
fel = fel;
asta. greutate = greutate;
asta. zilelegate = zile;
asta. isDomestic = isDomestic;
}
public String toString () {
retur fel + "," + greutate + "," + daysAged + "," + isDomestic + " n";
}
}
Acum, să aruncăm o privire la afișarea unei pungi.
pachet com. allmycode. a09_11;
importați android. a sustine. V7. app. AppCompatActivity;
importați android. os. Pachet;
importați android. widget. TextView;
import com. allmycode. a09_10. BagOfCheese;
clasa publica MainActivity extinde AppCompatActivity {
TextView textView;
@Override
protejat void onCreate (Bundle savedInstanceState) {
super. onCreate (savedInstanceState);
setContentView (layout-ul, activitate_main);
textView = (TextView) findViewById (ID id.textView);
sac BagOfCheese1 = nou BagOfCheese ("Cheddar", 2. 43, 30, adevărat);
sac BagOfCheese2 = nou BagOfCheese ("Blue", 5.987, 90, false);
TextView. setText ("");
TextView. adăugați (bag1. toString ());
TextView. adăugați (bag2. toString ());
}
}
În primul set de cod, obiectul
BagOfCheese
are propria metodă
toString
fără parametri. Și în al doilea set, următoarele două linii fac două apeluri la metoda
toString
- un apel pentru
bag1
și un alt apel pentru
bag2
:
. adăugați (bag1. toString ());
TextView. adăugați (bag2. toString ());
Un apel la
la String
se comportă diferit în funcție de geanta specială afișată. Când sunați la
sac1. toString ()
, veți vedea valorile câmpului pentru
sac1
și atunci când apelați
sac2. toString ()
, veți vedea valorile câmpului pentru
bag2
.
Pentru a apela una dintre metodele unui obiect, urmați o referință la obiect cu un punct și apoi numele metodei.