Questi suggerimenti rapidi illustrano alcune delle tecniche di stenografia Java più comuni che incontrerai quando inizi a sviluppare Android.
Troverai queste piccole informazioni sul codice, che chiamiamo stenografia di Java nel codice di esempio dell'SDK di Android, e quasi tutti i libri di sviluppo Android pubblicati in questo momento, per non parlare delle esercitazioni online e dei forum degli sviluppatori. Nessuno di questi suggerimenti è specifico per Android; sono semplicemente tecniche Java che confondono regolarmente principianti nuovi a Java e Android, in base alle e-mail che riceviamo dai nostri lettori.
Molti sviluppatori amano il loro codice breve e facile da leggere. Come altri linguaggi di programmazione, Java include operatori unari per incrementare e decrementare facilmente i valori delle variabili di 1.
In altre parole,
contatore int = 1; contatore ++; counter--;
Questo codice è equivalente a:
contatore int = 1; contatore = contatore + 1; contatore = contatore - 1;
Questi operatori unari possono apparire prima (prefisso) o dopo (postfix) la variabile. La posizione dell'operatore determina se l'operazione di incremento / decremento avviene prima o dopo la valutazione del resto dell'espressione. Ad esempio, il codice seguente mostra come funzionano gli operatori unari manipolando una variabile denominata contatore utilizzando la registrazione Android:
contatore int = 0; Log.i (DEBUG_TAG, "Il valore del contatore è =" + contatore ++); // stampa 0 Log.i (DEBUG_TAG, "Il valore del contatore è =" + contatore); // stampa 1 Log.i (DEBUG_TAG, "Il valore del contatore è =" + contatore--); // stampa 1 Log.i (DEBUG_TAG, "Il valore del contatore è =" + contatore); // stampa 0 Log.i (DEBUG_TAG, "Il valore del contatore è =" + (contatore ++)); // stampa 1 Log.i (DEBUG_TAG, "Il valore del contatore è =" + - contatore); // stampa 0
Gli sviluppatori Java generalmente evitano di creare variabili di cui non hanno realmente bisogno. Questo è particolarmente vero per il temporaneo, oTemp ,variabili che vengono utilizzate una volta per memorizzare il risultato di una dichiarazione, solo per essere abbandonate.
Invece, gli sviluppatori Java spesso usano semplicemente l'istruzione per essere valutati come "risultanti"? valore stesso. Questo si vede spesso quando si tratta di dichiarazioni di ritorno, ma lo vedrete anche in altri posti. Ad esempio, il seguente metodo verbose utilizza una variabile "temp" chiamata sum per memorizzare la somma di due numeri interi e quindi restituisce questo valore:
int sumVerbose (int a, int b) int temp = a + b; ritorno temp;
Molti sviluppatori Java ignorerebbero semplicemente il sovraccarico e il fastidio di creare la variabile temporanea e valuteranno semplicemente la dichiarazione come parte dell'istruzione return, come questa:
int sum (int a, int b) return (a + b);
Questo stile è valido per i casi in cui la variabile temp viene utilizzata una sola volta. Se il metodo include ulteriori operazioni su quel valore, di solito è prudente utilizzare una variabile ben denominata per la leggibilità del codice. Inoltre, vedrai spesso più? Verbose? stile di codifica nel codice che ha molte funzioni di debug.
Vedrai spesso i metodi Java concatenati. Frequentemente, questi metodi sono chiamati sull'istanza della classe corrente (quindi, il Questo parola chiave). Simile al suggerimento discusso in precedenza, i valori di ritorno di ciascun metodo vengono utilizzati solo per accedere a un metodo sottostante. Pertanto, il valore restituito non è memorizzato in un valore contenitore, ma viene semplicemente chiamato il metodo sottostante. Per esempio:
InputStream is = getResources (). OpenRawResource (R.drawable.icon);
Questo codice è logicamente equivalente al seguente:
Risorse myAppResources = this.getResources (); InputStream è = myAppResources.openRawResource (R.drawable.icon);
Una dichiarazione condizionale che probabilmente vedrai utilizzerà il supporto per operatore ternario di Java. Questo è un modo stenografico per progettare una semplice istruzione If-Else usando un'istruzione condizionale (che può o non può essere incapsulata tra parentesi), seguita da un punto interrogativo (?), Quindi un'istruzione che si verifica se il condizionale è vero, quindi i due punti (:) e un'altra istruzione si verificano se il condizionale è falso.
Ecco un esempio di un operatore ternario in uso:
int lowNum = 1; int highNum = 99; int largerNum = lowNum < highNum ? highNum : lowNum;
Questo è l'equivalente logico del seguente, molto più lungo, snippet di codice:
int largerNum; if (lowNum < highNum) largerNum = highNum; else largerNum = lowNum;
Questa sorta di stenografia di Java è davvero appropriata solo quando la tua istruzione If-Else è semplice. A volte capita che gli sviluppatori stipano molta logica in una di queste affermazioni; noi non lo raccomandiamo. Usa gli operatori ternari solo quando rendono il tuo codice più facile da leggere, non più difficile.
In Java, è possibile avere istruzioni vuote semplicemente terminando una riga vuota di codice con il suo punto e virgola. Questo trucco è spesso usato per specificare per () le condizioni del ciclo per creare un ciclo infinito, come questo:
for (;;) // Fai qualcosa oltre, e ancora e ancora.
Ciascuno dei componenti del ciclo for () è un'istruzione vuota. Questo è vero e quindi il ciclo continua indefinitamente. Come con qualsiasi progetto di codice, assicurati che tutti i loop infiniti creati abbiano casi di uscita ragionevoli.
Può essere frustrante quando gli sviluppatori nuovi di Java incontrano una strana sintassi del codice durante il loro primo giorno di lavoro con la sintassi di Android che normalmente non è coperta nel tipico? Tutto in Java in 20 minuti? tutorial. Ora sai cosa alcuni di questi? Stenografia? assomigliano trucchi e cosa significano. Che tu li usi o meno da te stesso dipende da te, ma almeno non ti confonderanno quando li vedi in codice di esempio! Buona fortuna e sentiti libero di condividere parte del tuo codice Java abbreviato preferito che trovi nella sezione dei commenti!
Gli sviluppatori mobili Lauren Darcey e Shane Conder hanno coautore diversi libri sullo sviluppo di Android: un libro di programmazione approfondito intitolato Sviluppo di applicazioni wireless Android e Sams TeachYourself Sviluppo di applicazioni Android in 24 ore. Quando non scrivono, passano il loro tempo a sviluppare software mobile presso la loro azienda ea fornire servizi di consulenza. Possono essere contattati via email a [email protected], tramite il loro blog su androidbook.blogspot.com e su Twitter @androidwireless.