Sobrecarga de construtor em Java: explicação, benefícios e exemplos

Publicados: 2021-07-22

Índice

Noções básicas de Java

Java, com suas características marcantes e dinâmicas, surgiu como uma das escolhas mais procuradas pelos desenvolvedores para programação em larga escala de aplicações web. É uma linguagem amigável com uma ampla gama de recursos extraordinários. Sua compatibilidade com todos os sistemas operacionais é a rica API que o tornou popular em todo o mundo. A linguagem oferece suporte robusto à comunidade e excelentes serviços de documentação. Java tem um conjunto de ferramentas de desenvolvimento sólidas.

Construtores em Java

Os construtores em Java são usados ​​para inicializar o estado do objeto. Assim como os métodos, os construtores também contêm um grupo de instruções ou instruções que devem ser executadas enquanto um objeto é criado.

Por que precisamos de um construtor em Java?

Consideremos uma Caixa. Se a caixa for considerada uma classe, ela pode ter várias variáveis, como largura, comprimento e altura. Quando um objeto for criado, a classe box não terá valores definidos para suas dimensões. Na hora de criar novos objetos, os construtores atribuem valores às variáveis ​​da classe. A atribuição de valores pode ser feita usando construtores Java padrão ou explicitamente pelos parâmetros passados ​​pelo programador.

Quando um construtor é invocado?

Um mínimo de um construtor é invocado sempre que um objeto é criado usando a palavra-chave new(). Esse construtor fornece valores iniciais aos membros de dados da classe. Em geral, um construtor é chamado quando um novo objeto ou instância é criado.

Sobrecarga de construtor em Java

O processo de definir vários construtores da mesma classe é chamado de sobrecarga de construtor. No entanto, cada construtor deve ter uma assinatura ou parâmetros de entrada diferentes. Em outras palavras, a sobrecarga de construtor em Java é uma técnica que permite que uma única classe tenha mais de um construtor que varia de acordo com a lista de argumentos passados. Cada construtor sobrecarregado é usado para executar uma tarefa diferente na classe.

O compilador Java identifica os construtores sobrecarregados com base em suas listas de parâmetros, tipos de parâmetros e número de parâmetros de entrada. Portanto, os construtores sobrecarregados devem ter assinaturas diferentes. A assinatura de um construtor contém seu nome e tipos de parâmetro. Um problema de ambiguidade surge quando dois dos construtores de classe têm uma assinatura idêntica.

O compilador não diferencia entre os dois e, portanto, retorna uma notificação de erro. Quando construtores com assinaturas diferentes são sobrecarregados, o compilador determina o construtor a ser invocado com base no número de parâmetros de entrada dos objetos.

Uso de Sobrecarga do Construtor

Como a sobrecarga de construção possibilita a criação do objeto de uma classe específica de várias maneiras, ela é mais comumente utilizada em programas Java baseados na necessidade do programador. Com o uso de sobrecarga de construtor, os objetos podem ser inicializados com diferentes tipos de dados.

Considere que um objeto com três variáveis ​​de instância de classe é tomado como exemplo onde um determinado valor deve ser atribuído à segunda variável de instância e as outras variáveis ​​devem receber valores padrão. Isso pode ser feito pela declaração de vários construtores de acordo com as diferentes assinaturas na classe constituinte.

Leia: Componentes e arquitetura de carreira Java explicados

Código de exemplo para a implementação de sobrecarga de construtor em Java

Vamos considerar um programa no qual uma classe Employee tem três construtores. Com base nos valores passados, cada um dos três é invocado para inicializar um objeto.

Uso desta Referência em Java

Todos os métodos e construtores de instância aceitam um parâmetro implícito chamado 'this', que é usado para se referir ao objeto atual. O objeto atual é aquele objeto no qual o método é invocado. Podemos usar a referência 'this' para fazer referência ao objeto atual em qualquer construtor ou método. A referência 'this' pode ser usada, como qualquer outra referência de objeto, para acessar métodos de instância, construtores e variáveis, dentro do método ou do corpo do construtor.

Alguns cenários importantes onde a referência 'this' é usada são:

  1. Quando os nomes dos parâmetros são diferentes dos nomes das variáveis ​​de instância
  2. Quando uma referência deve ser passada para o objeto atual e um parâmetro para outro método
  3. Quando um construtor deve ser invocado de outro construtor.

Os argumentos de referência this() devem corresponder aos argumentos do construtor de destino neste caso. A função this() deve ser a primeira instrução dentro do construtor. Em casos especiais como complexidade da rotina de inicialização, esta função pode ser utilizada na eliminação de código duplicado em múltiplos construtores.

Aprenda cursos de desenvolvimento de software online das melhores universidades do mundo. Ganhe Programas PG Executivos, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.

Benefícios da sobrecarga de construtor em Java

As principais vantagens de fazer uso da sobrecarga de construtor ao escrever programas Java são:

  • A sobrecarga do construtor possibilita a realização de polimorfismo estático.
  • As instâncias de classe podem ser inicializadas de várias maneiras com o uso de sobrecarga de construtor.
  • Ele facilita o processo de definição de vários construtores em uma classe com assinaturas exclusivas.
  • Cada construtor sobrecarregado executa várias tarefas para fins específicos.

Resumo

  • A sobrecarga de construtor em Java refere-se ao uso de mais de um construtor em uma classe de instância. No entanto, cada construtor sobrecarregado deve ter assinaturas diferentes.
  • Para que a compilação seja bem-sucedida, cada construtor deve conter uma lista diferente de argumentos.
  • A lista de parâmetros inclui a sequência e os tipos de argumentos de entrada.
  • Dois construtores em uma classe com a mesma lista de parâmetros não são viáveis ​​em Java.

Se você estiver interessado em aprender mais sobre desenvolvimento de software full stack, confira o Executive PG Program in Software Development – ​​Specialization in Full Stack Development do upGrad & IIIT-B, que é projetado para profissionais que trabalham e oferece mais de 500 horas de treinamento rigoroso, 9+ projetos e atribuições, status de ex-alunos do IIIT-B, projetos práticos práticos e assistência de trabalho com as principais empresas.

Prepare-se para uma carreira do futuro

Candidate-se ao Programa PG Executivo em Desenvolvimento de Software pelo IIIT-B