POO - Programação Orientada a Objetos
Orientação a objetos é um paradigma de programação, que se relaciona com a ideia de organizar, classificar e abstrair as coisas.
Domínio e Aplicação
Um domínio é composto pelas entidades, processos e informações Uma aplicação pode ser desenvolvida para tornar fazível as tarefas de um domínio.
Para entender melhor o que é domínio e aplicação, observe o seguinte cenário. Um empresa está desenvolvendo uma solução para um banco:
Domínio = banco
Entidade = clientes, funcionários, agências e contas.
Aplicação = sistema a ser vendido para o banco
Objetos, atributos e métodos
Os objetos são usados para representar as entidades do domínio. As entidades possuem características e essas características são representadas pelos atributos. As entidades também podem executar ações, essas ações são os métodos.Exemplo:
Entidade = Cliente
Atributo(s) da entidade = nome, rg, cpf;
Método(s) da entidade = fazEmprestimo, mudaEndereco
Classes
Antes de um objeto ser criado devemos definir quais serão seus atributos e métodos. Para realizar essa tarefa fazemos o uso da classe.
Uma classe é desenho, projeto de um objeto. Assim como a planta é um desenho, projeto de uma casa.
Veja como ficaria a classe conta:
Conta.java
public class Conta { //entidade
double saldo; //atributos
double limite; //atributos
int numero; //atributos
}
Agora que já definimos a classe conta, podemos criar objetos a partir dela. Para criar novos objetos é necessário utilizar o comando new.
public class TestaConta {
public static void main(String[] args) {
new Conta();
}
}
Não há nenhum limite para se usar o comando new, ele pode ser usado mais de uma vez no código. Exemplo:
public class TestaConta {
public static void main(String[] args) {
new Conta();
new Conta();
new Conta();
}
}
Tudo foi criado corretamente até agora, porém, se compilarmos o código veremos que nada é exibido. Isso acontece pois os objetos criados não guardam nenhuma referência, e para manipular um objeto é necessário que ele tenha uma referência.
Referências
A referência de um objeto é a única maneira de acessar seus atributos e métodos. Podemos dizer que a referência funciona como um controle remoto, com o controle conseguimos manipular a TV: aumentamos e diminuímos, ligamos e desligamos, trocamos de canal.
O comando new, aloca um objeto na memória e retorna uma referência para que possamos acessar aquele objeto. Para guardar essa referencia devemos declarar um avariável do tipo da Classe e ela irá receber o retorno do new, exemplo:
public class TestaConta {
public static void main(String[] args) {
Conta c = new Conta(); //declara e já recebe a referencia
Conta c2; //declara a variável que irá armazenar a referencia
c2 = new Conta(); //atribui a referencia do objeto a variável
}
}
Agora que já temos a referencia, podemos acessar os atributos do objeto. Para acessar os atributos e métodos que estão presentes em nossos objetos utilizamos o operador "." (ponto final).
public class TestaConta {
public static void main(String[] args) {
Conta c = new Conta();
c.saldo = 1000; //acessando os atributos do objeto com o operador "."
c.limite = 100;
c.nro = 1;
System.out.println("Saldo = R$" + c.saldo);
System.out.println("Limite = R$" + c.limite);
System.out.println("Número = R$" + c.nro);
}
}
No código acima o atributo saldo recebe 1000, limite recebe 100 e nro recebe 1. Na sequencia os valores são exibidos para o usuário.
Poderíamos instanciar um objeto e utilizar seus atributos sem inicializa-los explicitamente, pois os atributos são inicializados com valores padrão. Os atributos numéricos são inicializados com 0, os do tipo boolean são inicializados com o tipo false e os demais tipos são inicializados com null (vazio).
Não entendi o que você fez com a variável c2.
ResponderExcluirE na classe ,não deveria ter sido feito um construtor, para poder distanciar o objeto?
Leonardo Schick
Primeiro eu declarei uma variável do tipo conta e depois eu atribui a referencia de um objeto há ela. Isso é apenas mais uma maneira de se criar objetos, pois até então eu estava mostrando um único jeito de se criar um objeto referenciado que era declarar a variável e usar o comando new, tudo isso na mesma linha. Por enquanto não faz muito sentido o segundo jeito de declaração (que é o que eu uso no c2), mais com o decorrer dos post's você irá ver uma grande vantagem nisso Schick.
ExcluirJá o construtor o Java possui um default então se eu não escrever esse construtor é acionado automaticamente como o próprio nome sugere. A cara desse construtor é mais ou menos essa:
public Conta() {}
O Java te dá a opção de escrever seus próprios construtores, porém, se você não escreve nenhum o default é usado. Eu explicarei mais sobre construtores em um próximo post.
Beleza Schick?