Aula do dia 17/08/2023
A Programação Orientada a Objetos é formada por alguns itens: Classes, Objetos, Atributos, Métodos, Construtores (já visto em Engenharia de Software II)
O que começamos a ver nesse capítulo é a ideia de encapsular, isto é, esconder todos os membros de uma classe , além de esconder como funcionam as rotinas (no caso métodos) do nosso sistema.
- Quando se insere uma variável, o java procura primeiro localmente e depois globalmente
- É interessante o getters/setters serem públicos
- Alt + insert -> Criação dos getters e setters
Num relacionamento de Agregação, podemos entender que classes que são agregadas por outras não precisam destas para “viver”, para “existir”. Por exemplo, a classe Unha agrega a classe Corpo Humano. Sem a unha o corpo humano vive sem grandes dificuldades.
Obs: Não deixa de ser uma associação
Pilha = variáveis Heap = conteúdo
Pilha | Heap |
---|---|
F1 | Classe Func |
Filho | Classe Filho |
A associação entre dois objetos ocorre quando eles são completamente independentes entre si mas eventualmente estão relacionados.
Quando usamos a palavra chave new , estamos construindo um objeto. Sempre quando o new é chamado, ele executa o construtor da classe. O construtor da classe é um bloco declarado com o mesmo nome que a classe
class Conta {
String titular;
int numero;
double saldo;
// construtor
Conta() {
System.out.println("Construindo uma conta.");
}
}
Então, quando fizermos: Conta c = new Conta(); A mensagem "construindo uma conta" aparecerá. É como uma rotina de inicialização que é chamada sempre que um novo objeto é criado. Um construtor pode parecer, mas não é um método.
Estrutura de dados = armazena dados correlatos
A API de Collections traz a interface java.util.List , que especifica o que uma classe deve ser capaz de fazer para ser uma lista
- List:
- Acesso via índice
- Ordem de entrada é igual a ordem de saída
- Pode ter itens duplicados
Para criar uma lista, chame o construtor: ArrayList lista = new ArrayList();
Para saber quantos elementos há na lista, usamos o método size()
e o get(int)
que recebe como argumento o índice do elemento que se quer
recuperar :
for(int i = 0; i < lista.size(); i++){
System.out.println("Nome:[" + i + "]:" + lista.get(i));
}
- ForEach
"for-each" (ou "enhanced for loop" em inglês) e é uma maneira simplificada de percorrer coleções de objetos em Java, como arrays e listas.
Criar projeto em FXML JavaFX Maven Archtype (Gluon)
- FXML - tela
- CSS - estilos
- Controller - Gerenciamento
- Os eventos que ocorrem dentro da tela (FXML) é gerenciado pelo controller
Para renomear a classe App mude a linha 39 do pom.xml em project files
- Para limpar os textField e os radioButton
//Limpar os TextFields
txtNumero1.setText("");
txtNumero2.setText("");
txtResultado.setText("");
//limpar todos os radioButton
tgOperacao.selectToggle(null);
//enviar o foco para txtNumero1
txtNumero1.requestFocus();
- *Exibir dados (button)
@FXML
private void btnExibirDados_Click(ActionEvent event) {
//verifica se tem algo selecionado e exibe msg
//getValue -> DEVOLVE O ELEMENTO SELECIONADO E SE N TIVER NADA == NULL
if(cbProduto.getValue() == null){
mensagem("Selecione um item...");
}
else{
//pega dados da combo
modelProduto = cbProduto.getValue();
//exibe
moveModelToView(modelProduto);
}
}