Livro 2 - Projeto da Mini-Calculadora

7. Adicionado a Lógica da Aplicação

7.2. Atributos da classe

Boas práticas de programação indicam a criação de todos os atributos em uma classe em Java na parte de cima do arquivo. Nessa parte devem estar declaradas todas as variáveis e constantes que serão utilizadas pela aplicação.

No caso desse projeto,  iremos  criar  as constantes  currencyFormat e percentFormat, duas instâncias da classe NumberFormat, que vão cuidar da formatação da moeda e porcentagem. A especificação  do  tipo  de  formatação  que  irá  ser  usada  é  obtida  através  da  invocação  do  método getCurrecyInstance()  e  getPercentInstance()  respectivamente.  Fica  a  cargo  da  classe NumberFormat descobrir qual o tipo de moeda deve ser usado, informações essa que depende da localidade do dispositivo. Logo, a formatação da moeda é adaptável a reais (R$) ou dólares (U$), por exemplo, dependendo das configurações do dispositivo Android. Para  satisfazer  os  requisitos  da  aplicação,  são  declaradas  duas  variáveis  billAmount  (representará  o  valor  inserido  pelo  usuário  –  inicialmente  0)  e  percent  (representará  a  taxa  de serviço – inicialmente 0.15). Ao se interagir com as views da tela, esses valores irão ser modificados e usados nos cálculos. Também devem ser declarados no inicio da classe todos os componentes gráficos que serão manipulados na aplicação. Neste projeto é necessário obter a referência das views amoutTextView, percentTextView, tipTextView e totalTextView.

package br.com.bcalegaro.minicalculadora;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.EditText;
import android.widget.SeekBar;
import android.widget.TextView;

import java.text.NumberFormat;

public class MainActivity extends AppCompatActivity {
//objetos de formatação da MOEDA e da PORCENTAGEM
private static NumberFormat currecyFormat = NumberFormat.getCurrencyInstance();
private static NumberFormat percentFormat = NumberFormat.getPercentInstance();
//variáveis para a lógica de aplicação
private double billAmount = 0.0;
private double percent = 0.15;
//variavéis com as referências aos elementos da interface gráfica
private TextView amountTextView;
private TextView percentTextView;
private TextView tipTextView;
private TextView totalTextView;