Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Java

Dominando Construtores em Java: Tipos, Uso e Exemplos Práticos

Construtores em Java

Neste tutorial, aprenderemos sobre construtores Java, seus tipos e como usá-los com a ajuda de exemplos.

O que é um Construtor?

Um construtor em Java é similar a um método que é invocado quando um objeto da classe é criado.

Diferente de métodos Java, um construtor tem o mesmo nome da classe e não tem tipo de retorno. Por exemplo,

class Test {
    Test() {
        // corpo do construtor
    }
}

Aqui, Test() é um construtor. Tem o mesmo nome da classe e não tem tipo de retorno.

Leitura Recomendada: Por que construtores não retornam valores


Exemplo 1: Construtor Java

class Main {
    private String name;
    // construtor
    Main() {
        System.out.println("Construtor Chamado:");
        name = "Programiz";
    }
    public static void main(String[] args) {
        // construtor é invocado ao
        // criar um objeto da classe Main
        Main obj = new Main();
        System.out.println("O nome é " + obj.name);
    }
}

Saída:

Construtor Chamado:
O nome é Programiz

No exemplo acima, criamos um construtor chamado Main(). Dentro do construtor, estamos inicializando o valor da variável name.

Observe a instrução de criação de um objeto da classe Main.

Main obj = new Main();

Aqui, quando o objeto é criado, o construtor Main() é chamado. E o valor da variável name é inicializado.

Portanto, o programa imprime o valor da variável name como Programiz.


Tipos de Construtor

Em Java, construtores podem ser divididos em 3 tipos:

  1. Construtor Sem Argumentos
  2. Construtor Parametrizado
  3. Construtor Padrão

1. Construtores Sem Argumentos em Java

Similar a métodos, um construtor Java pode ou não ter parâmetros (argumentos).

Se um construtor não aceita parâmetros, é conhecido como construtor sem argumentos. Por exemplo,

private Construtor() {
    // corpo do construtor
}

Exemplo 2: Construtor privado sem argumentos em Java

class Main {
    int i;
    // construtor sem parâmetro
    private Main() {
        i = 5;
        System.out.println("Construtor é chamado");
    }
    public static void main(String[] args) {
        // chamando construtor sem parâmetro
        Main obj = new Main();
        System.out.println("Valor de i: " + obj.i);
    }
}

Saída:

Construtor é chamado
Valor de i: 5

No exemplo acima, criamos um construtor Main(). Aqui, o construtor não aceita parâmetros. Portanto, é conhecido como construtor sem argumentos.

Observe que declaramos o construtor como private.

Uma vez que um construtor é declarado private, ele não pode ser acessado de fora da classe. Então, criar objetos de fora da classe é proibido usando construtor privado.

Aqui, estamos criando o objeto dentro da mesma classe. Portanto, o programa consegue acessar o construtor. Para saber mais, visite Java Implement Private Constructor.

No entanto, se quisermos criar objetos fora da classe, precisamos declarar o construtor como public.

Exemplo 3: Construtores públicos sem argumentos em Java

class Company {
    String name;
    // construtor público
    public Company() {
        name = "Programiz";
    }
}
class Main {
    public static void main(String[] args) {
        // objeto criado em outra classe
        Company obj = new Company();
        System.out.println("Nome da empresa = " + obj.name);
    }
}

Saída:

Nome da empresa = Programiz

Leitura Recomendada: Modificador de Acesso Java


2. Construtor Parametrizado em Java

Um construtor Java também pode aceitar um ou mais parâmetros. Tais construtores são conhecidos como construtores parametrizados (construtor com parâmetros).

Exemplo 4: Construtor parametrizado

class Main {
    String languages;
    // construtor aceitando valor único
    Main(String lang) {
        languages = lang;
        System.out.println(languages + " Linguagem de Programação");
    }
    public static void main(String[] args) {
        // chamar construtor passando valor único
        Main obj1 = new Main("Java");
        Main obj2 = new Main("Python");
        Main obj3 = new Main("C");
    }
}

Saída:

Java Linguagem de Programação
Python Linguagem de Programação
C Linguagem de Programação

No exemplo acima, criamos um construtor chamado Main(). Aqui, o construtor aceita um único parâmetro. Observe a expressão,

Main obj1 = new Main("Java");

Aqui, estamos passando o valor único para o construtor. Baseado no argumento passado, a variável language é inicializada dentro do construtor.


3. Construtor Padrão em Java

Se não criarmos nenhum construtor, o compilador Java cria automaticamente um construtor sem argumentos durante a execução do programa. Este construtor é chamado construtor padrão.

Exemplo 5: Construtor Padrão

class Main {
    int a;
    boolean b;
    public static void main(String[] args) {
        // Um construtor padrão é chamado
        Main obj = new Main();
        System.out.println("Valor Padrão:");
        System.out.println("a = " + obj.a);
        System.out.println("b = " + obj.b);
    }
}

Saída:

a = 0
b = false

Aqui, não criamos nenhum construtor. Portanto, o compilador Java cria automaticamente o construtor padrão.

O construtor padrão inicializa quaisquer variáveis de instância não inicializadas com valores padrão.

TipoValor Padrão
booleanfalse
byte0
short0
int0
long0L
char\u0000
float0.0f
double0.0d
objectReferência null

No programa acima, as variáveis a e b são inicializadas com valor padrão 0 e false respectivamente.

O programa acima é equivalente a:

class Main {
    int a;
    boolean b;
    // um construtor privado
    private Main() {
        a = 0;
        b = false;
    }
    public static void main(String[] args) {
        // chamar o construtor
        Main obj = new Main();
        System.out.println("Valor Padrão:");
        System.out.println("a = " + obj.a);
        System.out.println("b = " + obj.b);
    }
}

A saída do programa é a mesma do Exemplo 5.


Notas Importantes sobre Construtores Java


Sobrecarga de Construtores em Java

Similar à sobrecarga de métodos Java, também podemos criar dois ou mais construtores com parâmetros diferentes. Isso é chamado sobrecarga de construtores.

Exemplo 6: Sobrecarga de Construtor Java

class Main {
    String language;
    // construtor sem parâmetro
    Main() {
        this.language = "Java";
    }
    // construtor com parâmetro único
    Main(String language) {
        this.language = language;
    }
    public void getName() {
        System.out.println("Linguagem de Programação: " + this.language);
    }
    public static void main(String[] args) {
        // chamar construtor sem parâmetro
        Main obj1 = new Main();
        // chamar construtor com parâmetro único
        Main obj2 = new Main("Python");
        obj1.getName();
        obj2.getName();
    }
}

Saída:

Linguagem de Programação: Java
Linguagem de Programação: Python

No exemplo acima, temos dois construtores: Main() e Main(String language). Aqui, ambos os construtores inicializam o valor da variável language com valores diferentes.

Baseado no parâmetro passado durante a criação do objeto, diferentes construtores são chamados e diferentes valores são atribuídos.

Também é possível chamar um construtor de outro construtor. Para saber mais, visite Java Call One Constructor from Another.

Nota: Usamos a palavra-chave this para especificar a variável da classe. Para saber mais sobre this, visite palavra-chave this Java.

Java

  1. Entendendo Construtores em C++: Padrão, Parametrizados e de Cópia Explicados
  2. Dominando Operadores Java: Tipos, Sintaxe e Exemplos Práticos
  3. Comentários em Java: Tipos, Uso e Boas Práticas
  4. Dominando o Loop for Aprimorado em Java: Sintaxe, Exemplos e Boas Práticas
  5. Dominando Construtores em Java: Tipos, Uso e Exemplos Práticos
  6. Dominando Strings em Java: Criação, Métodos e Boas Práticas
  7. Palavra-chave this em Java: Usos Práticos, Construtores e Mais
  8. Dominando Interfaces em Java: Conceitos, Implementação e Boas Práticas
  9. Dominando Classes Internas Anônimas em Java: Definição, Sintaxe e Exemplos Práticos
  10. Construtores de Enum em Java Explicados com Exemplo Prático