Disse raske tipsene diskuterer noen av de vanligste Java shorthand teknikker du kommer over når du kommer i gang i Android utvikling.
Du finner disse småkodbiter - som vi kaller Java shorthand - brukt i Android SDK-prøvekoden, og omtrent alle Android-utviklingsbokene som er publisert på dette tidspunktet, for ikke å nevne nettbaserte opplæringsprogrammer og utviklerfora. Ingen av disse tipsene er Android-spesifikke; de er bare Java-teknikker som rutinemessig konfronterer nybegynnere som er nye til Java og Android, basert på e-postene vi mottar fra våre lesere.
Mange utviklere liker koden sin kort og lett å lese. I likhet med andre programmeringsspråk inkluderer Java unary operatører for enkelt å øke og dekrementere variable verdier med 1.
Med andre ord,
int teller = 1; teller ++; disk--;
Denne koden tilsvarer:
int teller = 1; counter = teller + 1; counter = counter - 1;
Disse unary operatørene kan vises før (prefiks) eller etter (postfix) variabelen. Operatørens plassering dikterer om innstignings- / dekningsoperasjonen skjer før eller etter at resten av uttrykket er vurdert. Følgende kode viser for eksempel hvordan unary operatører jobber ved å manipulere en variabel som kalles teller ved hjelp av Android-logging:
int teller = 0; Log.i (DEBUG_TAG, "Tellerverdien er =" + teller ++); // utskrifter 0 Log.i (DEBUG_TAG, "Tellerverdien er =" + teller); // skriver 1 Log.i (DEBUG_TAG, "Tellerverdien er =" + teller-); // skriver 1 Log.i (DEBUG_TAG, "Tellerverdien er =" + teller); // utskrifter 0 Log.i (DEBUG_TAG, "Tellerverdien er =" + (++-teller)); // skriver 1 Log.i (DEBUG_TAG, "Tellerverdien er =" + - telleren); // utskrifter 0
Java-utviklere unngår generelt å skape variabler de egentlig ikke trenger. Dette gjelder spesielt midlertidig, ellertemp ,variabler som brukes en gang for å lagre resultatet av en uttalelse, bare for å bli forlatt.
I stedet bruker Java-utviklere ofte bare setningen som skal evalueres som "resulterende? verdsetter seg selv. Dette ses ofte når det kommer til tilbakemeldinger, men du ser det også på andre steder. For eksempel bruker følgende verbose metode en "temp" -variabel som kalles sum for å lagre summen av to heltall og returnerer denne verdien:
int sumVerbose (int a, int b) int temp = a + b; retur temp;
Mange Java-utviklere ville ganske enkelt hoppe over overhead og problemer med å opprette tempvariabelen, og bare evaluere setningen som en del av returoppstillingen, slik:
int sum (int a, int b) retur (a + b);
Denne stilen gjelder for tilfeller der tempvariabelen bare brukes en gang. Hvis metoden inkluderer videre operasjoner på den verdien, er det vanligvis forsiktig å bruke en velkalt variabel for kodelesbarhet. I tillegg vil du ofte se mer? Verbose? kodende stil i kode som har mange feilsøkingsfunksjoner.
Du vil ofte se Java-metoder sammenkoblet. Ofte kalles disse metodene på forekomsten av den nåværende klassen (dermed, den dette søkeord). I likhet med tipset som er diskutert ovenfor, blir returverdiene for hver metode bare brukt for å få tilgang til en underliggende metode. Derfor blir returverdien ikke lagret i en containerværdi, men den underliggende metoden kalles bare. For eksempel:
InputStream er = getResources (). OpenRawResource (R.drawable.icon);
Denne koden er logisk ekvivalent med følgende:
Ressurser myAppResources = this.getResources (); InputStream er = myAppResources.openRawResource (R.drawable.icon);
Et betinget utsagn du vil se, vil bruke Java's ternære operatørstøtte. Dette er en kortfattet måte å designe en enkel If-Else-setning ved å bruke en betinget setning (som kanskje ikke er innkapslet i parentes), etterfulgt av et spørsmålstegn (?), Så en uttalelse som skal skje dersom betingelsen er sann, da et kolon (:) og en annen setning som skal skje hvis betingelsen er feil.
Her er et eksempel på en ternær operatør som er i bruk:
int lowNum = 1; int høyNum = 99; int largerNum = lowNum < highNum ? highNum : lowNum;
Dette er den logiske ekvivalenten av følgende, mye lengre, kodestykke:
int greaterNum; if (lowNum < highNum) largerNum = highNum; else largerNum = lowNum;
Denne typen Java shorthand er egentlig bare hensiktsmessig når din If-Else-setning er enkel. Du vil noen ganger se utviklere kramme mye logikk inn i en av disse uttalelsene; Vi anbefaler ikke dette. Bruk bare ternære operatører når de gjør koden enklere å lese, ikke vanskeligere.
I Java kan du ha tomme utsagn ved å avslutte en tom kode med sin semikolon. Dette trikset brukes ofte til å spesifisere for () løkkebetingelser for å lage en uendelig sløyfe, slik:
for (;;) // Gjør noe over, og over, og igjen.
Hver av komponentene for () loop er en tom setning. Dette vurderer å være sant, og derfor fortsetter løkken på ubestemt tid. Som med hvilken som helst kode design, sørg for at uendelige løkker du lager, har rimelige utgangssaker.
Det kan være frustrerende når utviklere som er nye til Java, møter merkelig kodesyntax på deres første dag, arbeider med Android-syntaks som ikke normalt dekkes av den typiske "Master Everything in Java in 20 Minutes?" opplæringen. Nå vet du hva noen av disse? Shorthand? triks ser ut, og hva de mener. Uansett om du bruker dem selv, er det opp til deg, men i det minste vil de ikke forvirre deg når du ser dem i prøvekode! Lykke til, og vær så snill å dele noen av favorittkorthandelen Java-koden du kommer over i kommentarseksjonen også!
Mobilutviklere Lauren Darcey og Shane Conder har medforfatter flere bøker om Android-utvikling: en grundig programmeringsbok med tittel Android Wireless Application Development og Sams TeachYourself Android Application Development i 24 timer. Når de ikke skriver, bruker de sin tid på å utvikle mobil programvare hos deres firma og tilby konsulenttjenester. De kan nås via e-post til [email protected], via bloggen deres på androidbook.blogspot.com, og på Twitter @androidwireless.