Em nossa discussão anterior sobre como inicializar variáveis de instância em Java, encontramos o construtor. Aqui discutiremos o construtor em detalhes. Primeiro veremos o que é construtor. É muito entediante inicializar todas as variáveis em uma classe sempre que uma instância é criada.
Mesmo quando você adiciona funções de conveniência comoinitialize () [como usamos em nossos exemplos anteriores], seria mais simples e conciso ter todas as configurações feitas no momento em que o objeto foi criado. Java permite que os objetos se inicializem quando são criados. Essa inicialização automática é realizada através do uso de um construtor.
Construtor é um tipo especial de método que possuio mesmo nome da classe em que reside e inicializa o estado interno de um objeto, para que o código que cria uma instância tenha um objeto utilizável totalmente inicializado imediatamente após a criação antes da conclusão do novo operador e não tenha nenhum tipo de retorno, porque o tipo de recurso implícito do construtor de uma classe é o próprio tipo de classe.
Tipos de construtores:
- Construtor padrão.
- Construtor parametrizado.
- Copie o Construtor. (Discutirá mais tarde)
Programa Java
class Employee{ String employeeName; String address; int age; double salary; /*Default Constructor */ Employee(){ employeeName = "Platini"; address = "France"; age = 45; salary = 120500.92; } /* Parameterized Constructor */ Employee(String empName,String addr,int ag,double sal){ employeeName = empName; address = addr; age = ag; salary = sal; } void showDetails(){ System.out.println("Employee's Name: "+employeeName); System.out.println("Employee's Address: "+address); System.out.println("Employee's Age: "+age); System.out.println("Employee's Salary: "+salary); } } class ConstructorDemo{ public static void main(String args[]){ System.out.println("Employee Details"); System.out.println("----------------"); Employee employee1 = new Employee(); employee1.showDetails(); System.out.println("----------------"); String employeeName = "John"; String address = "Los Angles"; int age = 25; double salary = 34503.92; Employee employee2 = new Employee(employeeName,address,age,salary); employee2.showDetails(); System.out.println("----------------"); Employee employee3 = new Employee(); employee3.showDetails(); } }
Resultado
Explicação do código e saída Java
Employee () é um construtor padrão de Employeeclasse neste código. É chamado de padrão porque não aceita parâmetros. E quando você não define explicitamente um construtor para uma classe, o Java cria um construtor padrão para a classe. Se você vir os códigos escritos nos exemplos anteriores, não encontrará nenhum construtor definido lá, apesar de termos conseguido criar objetos dessas classes, isso ocorre apenas por esse motivo.
Flash ligado:
O construtor padrão inicializa automaticamente todas as variáveis de instância para zero.
Aqui neste exemplo, objeto employee1 eemployee3 é inicializado com o construtor padrão Employee () da classe Employee. Aqui criamos o construtor padrão Employee () para a classe Employee e estamos inicializando os objetos com alguns valores definidos pelo usuário. Então, ele não será mais inicializado com zero, pois não é um construtor padrão implícito criado por java. Isso é feito apenas quando nenhum construtor é definido pelo programador para essa classe. O construtor padrão inicializa automaticamente todas as variáveis de instância para zero.
Também escrevemos um parâmetroconstrutor aqui. São necessários parâmetros durante a criação do objeto, por isso é um construtor parametrizado. O objeto Employee employee2 é inicializado com o construtor parametrizado Employee (String empName, String addr, int ag, double sal).
Flash ligado:
Depois de criar seu próprio parâmetroconstrutor, o Java não criará o construtor padrão para essa classe. Você precisa criar explicitamente o construtor padrão para essa classe, caso contrário não poderá inicializar objetos usando o construtor padrão. Irá gerar um erro de tempo de compilação.
Aqui, se não criarmos o padrão Employee ()Enquanto isso, se tivermos criado o construtor Employee (String empName, String addr, int ag, double sal), não conseguiremos criar objetos usando o construtor Employee (). isto é
Funcionário employee1 = new Employee ();
Funcionário employee3 = new Employee (); essas duas instruções não serão mais válidas.
Agora, removendo o construtor padrão Employee () se compilarmos, obteremos esse erro durante o tempo de compilação.
Informe-nos se tiver alguma dúvida.
A seguir vamos aprender como usar construtores de cópia em Java.
Confira tutoriais mais úteis e diretrizes definitivas sobre programação Java aqui.
Comentários