Vídeo: Quer ler código de barras no seu app? 2024
Há algumas coisas que você quer pensar ao reutilizar nomes no seu aplicativo para Android. Você pode declarar duas variáveis Java -
bag1
e
bag2
- para se referir a dois objetos
BagOfCheese
diferentes. Isso é bom. Mas às vezes, ter apenas uma variável e reutilizá-la para o segundo objeto funciona tão bem, como mostrado aqui.
pacote com. Allmycode. a09_03;
importar o Android. Apoio, suporte. v7. aplicativo. AppCompatActivity;
importar o Android. os. Agrupar;
importar o Android. ferramenta. TextView;
import com. Allmycode. a09_01. BagOfCheese;
classe pública MainActivity extends AppCompatActivity {
TextView textView;
@Override
protected void onCreate (Bundle savedInstanceState) {
super. onCreate (savedInstanceState);
setContentView (layout R. activity_main);
textView = (TextView) findViewById (R. Id. TextView);
Saco BagOfCheese = novo BagOfCheese ();
saco. kind = "Cheddar";
saco. peso = 2,43;
saco. daysAged = 30;
saco. isDomestic = true;
textView. setText ("");
textView. anexar (saco. tipo + "," + saco. peso + "," +
saco. daysAged + "," + saco. isDomestic + " n");
saco = novo BagOfCheese ();
saco. kind = "Blue";
saco. peso = 5 987;
saco. daysAged = 90;
saco. isDomestic = false;
textView. anexar (saco. tipo + "," + saco. peso + "," +
saco. daysAged + "," + saco. isDomestic + " n");
}
}
Neste código, quando Java executa a segunda
bag = nova declaração BagOfCheese ()
, o objeto antigo (o saco contendo cheddar) desapareceu. Sem bolsa (ou qualquer outra variável) referindo-se a esse objeto cheddar, não há como seu código pode fazer nada com o objeto cheddar. Felizmente, no momento em que você chegar ao segundo
saco = nova declaração BagOfCheese ()
, você terminou de fazer tudo o que deseja fazer com o saco cheddar original. Nesse caso, a reutilização da variável do saco é aceitável.
Quando você reúso uma variável (como a única e
bolsa
acima), você faz isso usando uma declaração de atribuição, e não uma inicialização. Em outras palavras, você não escreve
BagOfCheese bag
uma segunda vez no seu código. Se você fizer isso, você vê mensagens de erro no editor do Android Studio.
Para ser dolorosamente preciso, você pode, de fato, escrever
BagOfCheese bag
mais de uma vez no mesmo código.
Nenhum dos
BagOfCheese
campos da classe é
final
. Em outras palavras, o código da classe permite reatribuir valores aos campos dentro de um objeto
BagOfCheese
.Com esta informação em mente, você pode encurtar o código acima por mais uma linha, como mostrado aqui.
pacote com. Allmycode. a09_04;
importar o Android. Apoio, suporte. v7. aplicativo. AppCompatActivity;
importar o Android. os. Agrupar;
importar o Android. ferramenta. TextView;
import com. Allmycode. a09_01. BagOfCheese;
classe pública MainActivity extends AppCompatActivity {
TextView textView;
@Override
protected void onCreate (Bundle savedInstanceState) {
super. onCreate (savedInstanceState);
setContentView (layout R. activity_main);
textView = (TextView) findViewById (R. Id. TextView);
Saco BagOfCheese = novo BagOfCheese ();
saco. kind = "Cheddar";
saco. peso = 2,43;
saco. daysAged = 30;
saco. isDomestic = true;
textView. setText ("");
textView. anexar (saco. tipo + "," + saco. peso + "," +
saco. daysAged + "," + saco. isDomestic + " n");
// saco = novo BagOfCheese ();
saco. kind = "Blue";
saco. peso = 5 987;
saco. daysAged = 90;
saco. isDomestic = false;
textView. anexar (saco. tipo + "," + saco. peso + "," +
saco. daysAged + "," + saco. isDomestic + " n");
}
}
Com a segunda chamada do construtor neste código comentado, você não faz a variável
se referir a um novo objeto. Em vez disso, você economiza atribuindo novos valores aos campos do objeto existente.
Em algumas situações, reutilizar os campos de um objeto pode ser mais eficiente (mais rápido para executar) do que criar um novo objeto. Mas sempre que você tiver uma escolha, é uma boa idéia escrever código que espelha dados reais. Se o conteúdo de uma bolsa real não muda de queijo cheddar para queijo azul, seria melhor não alterar um campo genérico do objeto
BagOfCheese
de "
Cheddar
" para "
Azul
".