Inicialização de Objetos:
Construtores são métodos especiais que inicializam objetos ao serem criados.
Eles têm o mesmo nome da classe e não têm tipo de retorno.
Utilidade:
Construtores são usados para fornecer valores iniciais às variáveis de instância ou realizar outras tarefas de inicialização.
Construtor Padrão:
Se uma classe não define um construtor, o Java fornece automaticamente um construtor padrão.
Este construtor padrão inicializa variáveis numéricas com zero, referências com null e booleanos com false.
Exemplo:
A classe MyClass tem um construtor que inicializa a variável de instância x com o valor 10.
// Um construtor simples.
class MyClass {
int x;
// Construtor da classe MyClass
MyClass() {
x = 10; // Inicializa x com 10
}
}
class ConsDemo {
public static void main(String args[]) {
MyClass t1 = new MyClass(); // Cria uma instância de MyClass
MyClass t2 = new MyClass(); // Cria outra instância de MyClass
// Exibe os valores de x para ambas as instâncias
System.out.println(t1.x + " " + t2.x);
}
}
Construtores Parametrizados
- Necessidade de Parâmetros: Construtores parametrizados permitem a inicialização de objetos com valores diferentes. Eles aceitam parâmetros da mesma forma que métodos, declarados dentro de parênteses após o nome do construtor.
Exemplo:
A classe MyClass tem um construtor parametrizado que aceita um inteiro i e inicializa x com esse valor.
Na criação de objetos, valores diferentes podem ser passados para inicializar x com valores específicos.
Estes tópicos destacam a importância dos construtores para a inicialização segura e correta dos objetos, além de permitir a criação de instâncias com diferentes estados iniciais.
// Um construtor parametrizado.
class MyClass {
int x;
// Construtor parametrizado da classe MyClass
MyClass(int i) {
x = i; // Inicializa x com o valor passado no parâmetro i
}
}
class ParmConsDemo {
public static void main(String args[]) {
MyClass t1 = new MyClass(10); // Cria uma instância de MyClass com x = 10
MyClass t2 = new MyClass(88); // Cria outra instância de MyClass com x = 88
// Exibe os valores de x para ambas as instâncias
System.out.println(t1.x + " " + t2.x);
}
}