Programação orientada a objetos e o Java (parte 5)

No artigo anterior vimos os métodos ou funções-membro e a possibilidade de um método devolver valor de retorno. Agora estudaremos um termo muito importante da programação orientada a objetos, o encapsulamento ou acessibilidade e entenderemos o porque sua utilização é tão importante. Vamos compreender o que são construtores e como funciona dentro do Java.

[ Hits: 34.579 ]

Por: Ygor Thomaz em 12/04/2004 | Blog: http://www.ygorthomaz.net/


Construtores



O operador new que nós utilizamos para instanciar um objeto sempre precede uma chamada , como o acionamento de um método comum, sendo que o nome deste método é o mesmo que o da classe que desejamos instanciar. Esse método é o que chamamos de construtor do objeto (constructor).

Radio sharp = new Radio();

O operador new indica que um método especial construtor de uma certa classe será posto em uso, sendo estes métodos construtores acionados pela sistema no momento da criação do objeto fazendo referência a uma área de memória e preparando para a utilização do novo objeto. Os construtores podem criar estruturas de dados e operações que representam uma entidade real utilizando-se de uma classe. Todos os construtores de uma classe tem sempre o mesmo nome da classe que pertencem, todas as classes tem pelo menos um construtor. Devemos lembrar que todo construtor deve ser declarado como públicos, pois eles resultam na criação de um novo objeto.

Quando não temos construtores declarados em classes, o Java assume a existência de um construtor chamado "default". Temos que o construtor "default" é um método de mesmo nome que a classe, não contém parâmetros e inicializa automaticamente as variáveis membro existentes na classe, seguindo o modelo:

Tipo Valor default
byte, short, int, long, c0
float, double 0
BooleanFalse Referências para objetosNull

Ele será criado apenas no momento da compilação e apenas nos casos que não existam construtor declarado. Podemos fazer:

public class RadioSemConstrutor {
  boolean estado;
  public boolean desligar() {
    return estado=false;
  }
  public boolean ligar() {
    return estado=true;
  }
}

Para provar, basta compilarmos este código e entrar com o comando no diretório do arquivo RadioSemConstrutor.java:

$ javap RadioSemConstrutor

Este comando retornaria na tela:

 Compiled from RadioSemConstrutor.java
 public class RadioSemConstrutor extends java.lang.Object {
    boolean estado;
    public RadioSemConstrutor();
    public boolean desligar();
    public boolean ligar();
 }


Podemos perceber a presença de um método público sem parâmetro, denominado RadioSemConstrutor. Acabamos de encontrar o construtor default usando o disassembler bytecodes.

Vamos utilizar a classe String do pacote java.lang que contem 11 tipos diferentes de construtores. Vamos utilizar um que cria uma string vazia e outro construtor que aceita uma string literal ou outro objeto String. Neste exemplo podemos notar a criação de vários objetos String diferentes, utilizando os construtores citados:

// UseStrings.java
public class UseStrings {
  public static void main(String args[]) {
   String s0 = null;
   String s1 = new String();
   String s2 = new String("Alo pessoal!");
   System.out.println("Testando contrutores Strings:");
   System.out.println("s0 = " + s0);
   System.out.println("s1 = " + s1);
   System.out.println("s2 = " + s2);
  }
}

Percebemos que uma classe pode ter vários tipos de construtores, todos com o mesmo nome obrigatório. Se diferem apenas pela lista de argumentos ou sobrecarga de construtor.

Página anterior     Próxima página

Páginas do artigo
   1. Objetivo do artigo
   2. Encapsulamento
   3. Construtores
   4. Terminando e referências
Outros artigos deste autor

Programação orientada a objetos e o Java (parte 7)

Programação orientada a objetos e o Java (parte 2)

Manipulando erros com try catch finally

Programação orientada a objetos e o Java (parte 1)

Dominando o iptables (parte 1)

Leitura recomendada

Conceito OOP no Java

Streams, lendo do teclado e escrevendo em arquivos com Java

Programação orientada a objetos e o Java (parte 2)

Android e Eclipse no Ubuntu 11.10 - Problemas? Eis a solução

Leitura e escrita de arquivos utilizando Java

  
Comentários
[1] Comentário enviado por fabio em 12/04/2004 - 20:17h

Muito bom o artigo! Estou aprendendo Java e essa séria de artigos tem sido de grande utilidade.

[]'s

[2] Comentário enviado por gustavo_marcon em 12/04/2004 - 20:21h

Muito massa essa tua série de artigos, sugiro que continue com ela e o que vc acha de falar em outros artigos sobre interfaces gráficas?

Teus artigos estão sendo muito utéis p/ mim que estou aprendendo Java agora.

Só tenho uma perguntinha, vi q vc usou o comando javap, eu não o conhecia vc poderia me dizer p/ que ele serve?

[3] Comentário enviado por ygorth em 13/04/2004 - 14:54h

Ola,

pode ficar tranquilo gustavo eu não cosutumo deixar um desafio pela metade. Por enquanto prometo apenas terminar a serie e POO e Java depois veremos, já tinha isso em mente. (:

O javap nada mais é do que um disassembler em bytecodes e por essa caracteristicas pode ter diversos usos como o que eu fiz no artigo.

Agradeço a todos que tem comentado sobre a serie.

Abracos!

[4] Comentário enviado por ygorth em 13/04/2004 - 14:57h

Ola,

pode ficar tranquilo gustavo eu não cosutumo deixar um desafio pela metade. Por enquanto prometo apenas terminar a serie e POO e Java depois veremos, já tinha isso em mente. (:

O javap nada mais é do que um disassembler em bytecodes e por essa caracteristicas pode ter diversos usos como o que eu fiz no artigo.

Agradeço a todos que tem comentado sobre a serie.

Abracos!

[5] Comentário enviado por ygorth em 13/04/2004 - 15:01h

Ola,

pode ficar tranquilo gustavo eu não cosutumo deixar um desafio pela metade. Por enquanto prometo apenas terminar a serie e POO e Java depois veremos, já tinha isso em mente. (:

O javap nada mais é do que um disassembler em bytecodes e por essa caracteristicas pode ter diversos usos como o que eu fiz no artigo.

Agradeço a todos que tem comentado sobre a serie.

Abracos!

[6] Comentário enviado por ygorth em 13/04/2004 - 15:30h

Desculpem os comentarios repetidos ! A conexão da faculdade deixa a desejar (:


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts