quarta-feira, 18 de julho de 2012

Programando em Java - parte 8

Construtor

Um construtor permite que um determinado trecho de código seja executado toda vez que um objeto é criado, ou seja, toda vez que o operador new é chamado. Assim como os métodos, os construtores podem receber parâmetros. Contudo, diferentemente dos métodos, os construtores não devolvem resposta.
Em Java, um construtor deve ter o mesmo nome da classe na qual ele foi definido:
class CartaoDeCredito {
    int numero ;
    CartaoDeCredito ( int numero ) {
        this . numero = numero ;
    }
}


Na criação de um objeto com o comando new, os argumentos passados devem ser compatíveis com a lista de parâmetros de algum construtor definido na classe que está sendo instanciada. Caso contrário, um erro de compilação ocorrerá para avisar o desenvolvedor dos valores obrigatórios que devem ser passados para criar um objeto.

CartaoDeCredito c = new CartaoDeCredito(736723672);


Construtor Padrão

Toda vez que um objeto é criado, um construtor da classe correspondente deve ser chamado. Mesmo quando nenhum construtor for definido explicitamente, há um construtor padrão que será inserido pelo próprio compilador. O construtor padrão não recebe parâmetros e será inserido sempre que o desenvolvedor não definir pelo menos um construtor explicitamente.
Portanto, para instanciar uma classe que não possui construtores definidos no código fonte, devemos utilizar o construtor padrão, já que este é inserido automaticamente pelo compilador.

class Conta() {}

Lembrando que o construtor padrão só será inserido pelo compilador se nenhum construtor for definido no código fonte. Dessa forma, se você adicionar um construtor com parâmetros então não poderá  utilizar o comando new sem passar argumentos, pois um erro de compilação ocorrerá.

Sobrecarga de Construtores

O conceito de sobrecarga de métodos pode ser aplicado para construtores. Dessa forma, podemos definir diversos construtores na mesma classe.

class Pessoa {
    String rg ;
    int cpf ;
    Pessoa ( String rg ) {
        this . rg = rg ;
    }
    Pessoa ( int cpf ) {
        this . cpf = cpf ;
   }
}

Quando dois construtores são definidos, há duas opções no momento de utilizar o comando new.

// Chamando o primeiro construtor
Pessoa p1 = new Pessoa ( " 123456 X " ) ;
// Chamando o segundo construtor
Pessoa p2 = new Pessoa (123456789) ;


Construtores chamando construtores

Assim como podemos encadear métodos, também podemos encadear construtores.

class Conta {
    int numero ;
    double limite ;
    Conta ( int numero ) {
        this . numero = numero ;
    }
    Conta ( int numero , double limite ) {
        this ( numero ) ;
        this . limite = limite ;
    }
}


Nenhum comentário:

Postar um comentário

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