Aceste sfaturi rapide discută despre unele dintre cele mai comune tehnici de stenogramă Java pe care le veți întâlni când începeți dezvoltarea în Android.
Veți găsi aceste coduri de coduri mici pe care le numim stenogramă Java folosite în codul de probă Android SDK și aproape orice carte de dezvoltare Android publicată în acest moment, să nu mai vorbim de tutoriale online și forumuri pentru dezvoltatori. Niciunul dintre aceste sfaturi nu este specific Androidului; acestea sunt pur și simplu tehnici Java care confundă în mod obișnuit începători noi pentru Java și Android, bazate pe e-mailurile pe care le primim de la cititorii noștri.
Mulți dezvoltatori ca codul lor scurt și ușor de citit. Ca și alte limbi de programare, Java include operatori unari pentru creșterea incrementală și decrementarea valorilor variabilelor cu 1.
Cu alte cuvinte,
int contra = 1; counter ++; tejghea--;
Acest cod este echivalent cu:
int contra = 1; contra = contra + 1; contra = contra - 1;
Acești operatori unari pot să apară înainte (prefix) sau după (postfix) variabila. Locația operatorului dictează dacă operația de incrementare / decrementare se întâmplă înainte sau după evaluarea restului expresiei. De exemplu, codul următor arată cum lucrează operatorii unari manipulând o variabilă numită contor utilizând logarea Android:
int contra = 0; Log.i (DEBUG_TAG, "Valoarea contorului este =" + contor ++); // prints 0 Log.i (DEBUG_TAG, "Valoarea contorului este =" + contra); // imprimă 1 Log.i (DEBUG_TAG, "Valoarea contorului este =" + contra -); // imprimă 1 Log.i (DEBUG_TAG, "Valoarea contorului este =" + contra); // prints 0 Log.i (DEBUG_TAG, "Valoarea contorului este =" + (++ contra)); // imprimă 1 Log.i (DEBUG_TAG, "Valoarea contorului este =" + - contra); // imprimă 0
Dezvoltatorii Java evită în general crearea de variabile de care nu au nevoie. Acest lucru este valabil mai ales temporar sautemp ,variabile care sunt folosite o dată pentru a stoca rezultatul unei declarații, doar pentru a fi abandonate.
În schimb, dezvoltatorii Java utilizează frecvent doar declarația care urmează să fie evaluată ca rezultat? valoare în sine. Acest lucru este văzut adesea atunci când vine vorba de returnarea declarațiilor, dar veți vedea, de asemenea, în alte locuri, de asemenea. De exemplu, următoarea metodă verbose utilizează o variabilă "temp" numită sumă pentru a stoca suma a două numere întregi și apoi returnează această valoare:
int sumaVerbose (int a, int b) int temp = a + b; temperatura de revenire;
Mulți dezvoltatori Java ar fi să ignore arhitectura de creare a variabilei temp și să evalueze declarația ca parte a instrucțiunii de returnare, după cum urmează:
suma int (int a, int b) retur (a + b);
Acest stil este valabil pentru cazurile în care variabila temporară este utilizată o singură dată. Dacă metoda include operațiuni suplimentare pe acea valoare, este de obicei prudent să se utilizeze o variabilă bine numită pentru citirea codului. În plus, veți vedea adesea mai multe? codul de stil în cod care are o mulțime de caracteristici de depanare.
Veți vedea adesea metode Java înlănțuite împreună. Frecvent, aceste metode sunt numite pe instanța clasei actuale (astfel, acest cuvinte cheie). Similar cu vârful discutat mai sus, valorile returnate ale fiecărei metode sunt utilizate numai pentru a accesa o metodă de bază. Prin urmare, valoarea de retur nu este stocată într-o valoare a containerului, ci se numește metoda de bază. De exemplu:
InputStream este = getResources () openRawResource (R.drawable.icon);
Acest cod este logic echivalent cu următoarele:
Resurse myAppResources = this.getResources (); InputStream este = myAppResources.openRawResource (R.drawable.icon);
O declarație condiționată pe care o veți vedea probabil va folosi suportul operatorului ternar Java. Aceasta este o modalitate scurtă de a concepe o declarație If-Else simplă folosind o instrucțiune condiționată (care poate sau nu să fie încapsulată în paranteze), urmată de un semn de întrebare (?), Apoi o afirmație care să apară dacă condiționarea este adevărată, atunci un colon (:) și o altă afirmație care să apară dacă condiționarea este falsă.
Iată un exemplu de operator ternar în uz:
int lowNum = 1; int highNum = 99; int largerNum = lowNum < highNum ? highNum : lowNum;
Acesta este echivalentul logic al următorului fragil de cod, mult mai lung:
int largerNum; în cazul în care (lowNum < highNum) largerNum = highNum; else largerNum = lowNum;
Acest tip de stenogramă Java este într-adevăr adecvată doar atunci când declarația dvs. If-Else este simplă. Uneori veți vedea că dezvoltatorii au o mulțime de logică într-una dintre aceste afirmații; noi nu recomandăm acest lucru. Utilizați numai operatorii ternari atunci când fac codul dvs. mai ușor de citit, nu mai greu.
În Java, puteți avea declarații goale pur și simplu prin încheierea unei linii goale de cod cu punct și virgulă. Acest truc este adesea folosit pentru a specifica pentru () conditiile de buclă pentru a crea o buclă infinită, după cum urmează:
pentru (;;) // Fă ceva peste, și peste, și din nou.
Fiecare dintre componentele for () este o declarație goală. Acest lucru este evaluat ca fiind adevărat și, prin urmare, buclă continuă pe termen nelimitat. Ca în cazul oricărui design de cod, asigurați-vă că orice bucle infinite pe care le creați au cazuri de ieșire rezonabile.
Poate fi frustrant când dezvoltatorii noi pentru Java se confruntă cu sintaxă de cod ciudată în prima zi lucrătoare cu Android - sintaxă care nu este acoperită în mod obișnuit de "Masterat Totul în Java în 20 de minute"? tutorial. Acum știi care sunt câteva dintre acestea? trucuri arata ca si ceea ce inseamna. Indiferent dacă le folosiți sau nu, depinde de dvs., dar cel puțin nu vă vor deranja când le veți vedea în codul de probă! Mult noroc și nu ezitați să vă împărtășiți câteva dintre codul dvs. Java preferat de stenogramă pe care îl veți întâlni și în secțiunea de comentarii!
Dezvoltatorii mobili Lauren Darcey și Shane Conder au coautorizat mai multe cărți despre dezvoltarea Android: o carte de programare în profunzime intitulată Dezvoltarea aplicațiilor fără fir Android și Sams TeachYourself Dezvoltarea de aplicații Android în 24 de ore. Când nu scriu, își petrec timpul dezvoltând software-ul mobil la compania lor și oferind servicii de consultanță. Acestea pot fi obținute prin e-mail la androidwirelessdev@[email protected], prin intermediul blogului lor la androidbook.blogspot.com, și pe Twitter @ androidwireless.