domingo, 27 de maio de 2012

Programando em Java - parte 5

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).

2 comentários:

  1. Não entendi o que você fez com a variável c2.
    E na classe ,não deveria ter sido feito um construtor, para poder distanciar o objeto?

    Leonardo Schick

    ResponderExcluir
    Respostas
    1. 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.

      Já 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?

      Excluir

Novidade!!! Agora vamos ter canal no Youtube =D

Fala pessoal tudo beleza, estou sumido a correria está forte por aqui. Estou querendo dar um start em um projeto antigo que vem desde o temp...