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

e 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“.


Publicações relacionadas