Programação com java: reutilização de nomes em seu aplicativo android
Há um par de coisas que você quer pensar sobre quando a reutilização de nomes em seu aplicativo Android. Você poderia declarar duas variáveis Java - bag1
Conteúdo
bag2
- para se referir a dois diferentes BagOfCheese
objetos. Isso é bom. Mas, às vezes, tendo apenas uma variável e reutilizá-lo para o segundo objeto funciona tão bem, como mostrado aqui.com.allmycode.a09_03- pacote
importação android.support.v7.app.AppCompatActivity-
importação android.os.Bundle-
importação android.widget.TextView-
importação com.allmycode.a09_01.BagOfCheese-
classe pública MainActivity estende AppCompatActivity {
TextView textView-
@Sobrepor
protected void onCreate (Bundle savedInstanceState) {
super.onCreate (savedInstanceState) -
Video: Primeiro App no Android utilizando o Android Studio
setContentView (R.layout.activity_main) -
textView = (TextView) findViewById (R.id.textView) -
BagOfCheese saco = novo BagOfCheese () -
bag.kind = "queijo Cheddar"-
bag.weight = 2.43-
bag.daysAged = 30-
Video: Criar APP com várias atividades no Android Studio
bag.isDomestic = true-
textView.setText ("") -
textView.append (+ bag.kind ", " + + Bag.weight ", " +
bag.daysAged + ", " + + Bag.isDomestic " n") -
= saco novo BagOfCheese () -
bag.kind = "Azul"-
bag.weight = 5.987-
bag.daysAged = 90-
bag.isDomestic = falso-
textView.append (+ bag.kind ", " + + Bag.weight ", " +
bag.daysAged + ", " + + Bag.isDomestic " n") -
}
}
Neste código, quando o Java executa a segunda saco = novos BagOfCheese ()
declaração, o objeto antigo (o saco contendo cheddar) desapareceu. Sem saco (ou qualquer outra variável) referindo-se a esse objeto cheddar, não há nenhuma maneira seu código pode fazer qualquer coisa com o objeto cheddar. Felizmente, pelo tempo que você chegar ao segundo saco = novos BagOfCheese ()
declaração, você terminar de fazer tudo o que você quer fazer com o saco cheddar originais. Neste caso, reutilizando a variável saco é aceitável.
Quando você reutilizar uma variável (como o primeiro e único Bolsa
variável acima), você fazê-lo usando um comando de atribuição, não uma inicialização. Em outras palavras, você não escrever saco BagOfCheese
uma segunda vez em seu código. Se fizer isso, você vê mensagens de erro no editor Android Studio.
Para ser dolorosamente preciso, você pode, na verdade, escrever saco BagOfCheese
mais de uma vez no mesmo pedaço de código.
Nenhum dos BagOfCheese
campos de classe é final
. Em outras palavras, o código do class permite transferir os valores para os campos dentro de um BagOfCheese
objeto. Com esta informação em mente, você pode encurtar o código acima por mais uma linha, como mostrado aqui.
com.allmycode.a09_04- pacote
importação android.support.v7.app.AppCompatActivity-
importação android.os.Bundle-
importação android.widget.TextView-
importação com.allmycode.a09_01.BagOfCheese-
classe pública MainActivity estende AppCompatActivity {
TextView textView-
@Sobrepor
protected void onCreate (Bundle savedInstanceState) {
super.onCreate (savedInstanceState) -
setContentView (R.layout.activity_main) -
textView = (TextView) findViewById (R.id.textView) -
BagOfCheese saco = novo BagOfCheese () -
bag.kind = "queijo Cheddar"-
bag.weight = 2.43-
Video: Aprenda programar no seu celular Android
bag.daysAged = 30-
bag.isDomestic = true-
textView.setText ("") -
textView.append (+ bag.kind ", " + + Bag.weight ", " +
bag.daysAged + ", " + + Bag.isDomestic " n") -
// saco = new BagOfCheese () -
bag.kind = "Azul"-
bag.weight = 5.987-
bag.daysAged = 90-
bag.isDomestic = falso-
textView.append (+ bag.kind ", " + + Bag.weight ", " +
bag.daysAged + ", " + + Bag.isDomestic " n") -
}
}
Com a segunda chamada do construtor neste código comentado, você não fazer a Bolsa
variável referem-se a um novo objeto. Em vez disso, você economizar atribuindo novos valores para campos do objeto existente.
Em algumas situações, a reutilização de campos de um objeto pode ser mais eficiente (mais rápido para executar) do que criar um novo objeto. Mas sempre que você tem uma escolha, é uma boa idéia para escrever código que espelha dados reais. Se o conteúdo de um saco real não muda de queijo cheddar com queijo azul, que seria melhor não alterar uma BagOfCheese
campo de tipo do objeto de “queijo Cheddar
" para "Azul
“.