- Tipos de construtores
- Sobrecarga de construtor
- O construtor retorna algum valor?
- Copiando os valores de um objeto para outro
- O construtor executa outras tarefas em vez da inicialização
Em Java , um construtor é um bloco de códigos semelhante ao método. É chamado quando uma instância do aula é criado. No momento de chamar o construtor, a memória para o objeto é alocada na memória.
É um tipo especial de método usado para inicializar o objeto.
Cada vez que um objeto é criado usando a palavra-chave new(), pelo menos um construtor é chamado.
Ele chama um construtor padrão se não houver nenhum construtor disponível na classe. Nesse caso, o compilador Java fornece um construtor padrão por padrão.
Existem dois tipos de construtores em Java: construtor sem argumentos e construtor parametrizado.
Observação: É chamado de construtor porque constrói os valores no momento da criação do objeto. Não é necessário escrever um construtor para uma classe. É porque o compilador Java cria um construtor padrão se sua classe não tiver nenhum.
Regras para criação de construtor Java
Existem duas regras definidas para o construtor.
converter matriz de bytes em string
- O nome do construtor deve ser igual ao nome da classe
- Um Construtor não deve ter nenhum tipo de retorno explícito
- Um construtor Java não pode ser abstrato, estático, final e sincronizado
Observação: podemos usar modificadores de acesso ao declarar um construtor. Ele controla a criação do objeto. Em outras palavras, podemos ter construtor privado, protegido, público ou padrão em Java.
Tipos de construtores Java
Existem dois tipos de construtores em Java:
- Construtor padrão (construtor sem argumento)
- Construtor parametrizado
Construtor padrão Java
Um construtor é chamado de 'Construtor Padrão' quando não possui nenhum parâmetro.
Sintaxe do construtor padrão:
(){}
Exemplo de construtor padrão
Neste exemplo, estamos criando o construtor no-arg na classe Bike. Ele será invocado no momento da criação do objeto. |
//Java Program to create and call a default constructor class Bike1{ //creating a default constructor Bike1(){System.out.println('Bike is created');} //main method public static void main(String args[]){ //calling a default constructor Bike1 b=new Bike1(); } }Teste agora
Saída:
Bike is created
Regra: Se não houver construtor em uma classe, o compilador cria automaticamente um construtor padrão.
P) Qual é o propósito de um construtor padrão?
O construtor padrão é usado para fornecer os valores padrão ao objeto como 0, nulo, etc., dependendo do tipo.
Exemplo de construtor padrão que exibe os valores padrão
//Let us see another example of default constructor //which displays the default values class Student3{ int id; String name; //method to display the value of id and name void display(){System.out.println(id+' '+name);} public static void main(String args[]){ //creating objects Student3 s1=new Student3(); Student3 s2=new Student3(); //displaying values of the object s1.display(); s2.display(); } }Teste agora
Saída:
0 null 0 null
Explicação: Na classe acima, você não está criando nenhum construtor, então o compilador fornece um construtor padrão. Aqui os valores 0 e nulo são fornecidos pelo construtor padrão.
Construtor Java parametrizado
Um construtor que possui um número específico de parâmetros é chamado de construtor parametrizado.
Por que usar o construtor parametrizado?
O construtor parametrizado é usado para fornecer valores diferentes para objetos distintos. No entanto, você também pode fornecer os mesmos valores.
Exemplo de construtor parametrizado
Neste exemplo, criamos o construtor da classe Student que possui dois parâmetros. Podemos ter qualquer número de parâmetros no construtor.
//Java Program to demonstrate the use of the parameterized constructor. class Student4{ int id; String name; //creating a parameterized constructor Student4(int i,String n){ id = i; name = n; } //method to display the values void display(){System.out.println(id+' '+name);} public static void main(String args[]){ //creating objects and passing values Student4 s1 = new Student4(111,'Karan'); Student4 s2 = new Student4(222,'Aryan'); //calling method to display the values of object s1.display(); s2.display(); } }Teste agora
Saída:
111 Karan 222 Aryan
Sobrecarga de construtor em Java
Em Java, um construtor é como um método, mas sem tipo de retorno. Também pode ser sobrecarregado como métodos Java.
Construtor sobrecarga em Java é uma técnica de ter mais de um construtor com listas de parâmetros diferentes. Eles são organizados de forma que cada construtor execute uma tarefa diferente. Eles são diferenciados pelo compilador pelo número de parâmetros na lista e seus tipos.
Exemplo de sobrecarga de construtor
//Java program to overload constructors class Student5{ int id; String name; int age; //creating two arg constructor Student5(int i,String n){ id = i; name = n; } //creating three arg constructor Student5(int i,String n,int a){ id = i; name = n; age=a; } void display(){System.out.println(id+' '+name+' '+age);} public static void main(String args[]){ Student5 s1 = new Student5(111,'Karan'); Student5 s2 = new Student5(222,'Aryan',25); s1.display(); s2.display(); } }Teste agora
Saída:
111 Karan 0 222 Aryan 25
Diferença entre construtor e método em Java
Existem muitas diferenças entre construtores e métodos. Eles são fornecidos abaixo.
Construtor Java | Método Java |
---|---|
Um construtor é usado para inicializar o estado de um objeto. | Um método é usado para expor o comportamento de um objeto. |
Um construtor não deve ter um tipo de retorno. | Um método deve ter um tipo de retorno. |
O construtor é invocado implicitamente. | O método é invocado explicitamente. |
O compilador Java fornece um construtor padrão se você não tiver nenhum construtor em uma classe. | O método não é fornecido pelo compilador em nenhum caso. |
O nome do construtor deve ser igual ao nome da classe. | O nome do método pode ou não ser igual ao nome da classe. |
Construtor de cópia Java
Não há construtor de cópia em Java. No entanto, podemos copiar os valores de um objeto para outro como o construtor de cópia em C++.
Existem muitas maneiras de copiar os valores de um objeto para outro em Java. Eles são:
- Por construtor
- Ao atribuir os valores de um objeto a outro
- Pelo método clone() da classe Object
Neste exemplo, copiaremos os valores de um objeto para outro usando o construtor Java.
classificação de matriz java
//Java program to initialize the values from one object to another object. class Student6{ int id; String name; //constructor to initialize integer and string Student6(int i,String n){ id = i; name = n; } //constructor to initialize another object Student6(Student6 s){ id = s.id; name =s.name; } void display(){System.out.println(id+' '+name);} public static void main(String args[]){ Student6 s1 = new Student6(111,'Karan'); Student6 s2 = new Student6(s1); s1.display(); s2.display(); } }Teste agora
Saída:
111 Karan 111 Karan
Copiando valores sem construtor
Podemos copiar os valores de um objeto para outro atribuindo os valores dos objetos a outro objeto. Neste caso, não há necessidade de criar o construtor.
class Student7{ int id; String name; Student7(int i,String n){ id = i; name = n; } Student7(){} void display(){System.out.println(id+' '+name);} public static void main(String args[]){ Student7 s1 = new Student7(111,'Karan'); Student7 s2 = new Student7(); s2.id=s1.id; s2.name=s1.name; s1.display(); s2.display(); } }Teste agora
Saída:
111 Karan 111 Karan
P) O construtor retorna algum valor?
Sim, é a instância da classe atual (você não pode usar o tipo de retorno, mas ele retorna um valor).
O construtor pode executar outras tarefas em vez da inicialização?
Sim, como criação de objeto, início de thread, chamada de método, etc. Você pode realizar qualquer operação no construtor da mesma forma que executa no método.
Existe classe Construtor em Java?
Sim.
Qual é o propósito da classe Construtor?
Java fornece uma classe Construtora que pode ser usada para obter as informações internas de um construtor na classe. Ele é encontrado no pacote java.lang.reflect.