Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Construtor | Classes
Java Extended

ConstrutorConstrutor

Como simplificar a inicialização de uma classe?

Iniciar cada campo todas as vezes pode ser tedioso. Para tais propósitos, as classes possuem construtores. A sintaxe para um construtor é a seguinte:

java

Main.java

Vamos analisar cada palavra escrita aqui:

  • modifier: Isso se refere ao modificador de acesso, que geralmente é public para construtores. Casos em que um construtor pode ter um modificador de acesso diferente serão abordados em um curso separado;
  • ClassName: Este é simplesmente o nome da classe na qual você está criando este construtor;
  • ParameterType: Este é o tipo de parâmetro que será usado no construtor. É importante prestar atenção aqui, pois esse parâmetro deve ser do mesmo tipo que o campo na classe; Por exemplo: Se a classe tem dois parâmetros, String name e int age, então o construtor deve ter os mesmos parâmetros (se quisermos inicializar todos os campos por meio do construtor). Se quisermos inicializar apenas um campo específico da classe através do construtor, por exemplo, name, então devemos usar apenas um parâmetro do mesmo tipo e nome que o campo na classe;
  • Em seguida, dentro do corpo do construtor, atribuímos valores aos campos da classe usando os valores passados no parâmetro.

Palavra-chave "this"

Com a ajuda da palavra-chave this, podemos nos referir ao campo da classe no qual escrevemos o valor desta palavra-chave. Por exemplo, quando temos uma classe com dois campos: name e age, podemos escrever this.name dentro do construtor ou de um método, e isto se referirá especificamente ao campo da classe, não à variável local que é passada como parâmetro para aquele construtor ou método. Desta forma, podemos inicializar os campos da classe através do construtor usando a sintaxe: this.name = name;.

Exemplo

Vejamos um exemplo de um construtor em uma classe que ajudará a inicializar todos os campos para tornar isso mais claro:

java

Person.java

Temos uma classe chamada Person com três campos. Cada um desses campos foi adicionado ao construtor usando a palavra-chave this. Portanto, o construtor inicializa os campos com os valores dos parâmetros. Vamos usar este construtor no método main para que você possa ver que os campos são inicializados com o que passamos como parâmetros:

java

Main.java

Inicializamos o objeto Person chamado bob usando o construtor, passando name, age e gender como parâmetros. Em seguida, imprimimos seus parâmetros na tela e vemos que o objeto possui valores de campos conforme especificado nos parâmetros do construtor.

Sobrecarga de construtores

O construtor também pode ser sobrecarregado e não abranger a inicialização de todos os campos da classe. Por exemplo, se não quisermos especificar o gênero de Alice, podemos sobrecarregar o construtor para aceitar apenas 2 parâmetros e inicializar os campos com eles:

java

Main.java

Pode-se concluir que um construtor, como um método, pode ser sobrecarregado e aceitar diferentes números e tipos de parâmetros.

Construtor padrão

Um construtor padrão é um construtor que não leva parâmetros e não inicializa nenhum campo. Ele existe em todas as classes por padrão se elas não tiverem qualquer outro tipo de construtor, razão pela qual é chamado de construtor padrão. Toda vez que criamos um objeto de qualquer classe, utilizamos um construtor. Para usar o construtor padrão quando já temos um construtor que aceita parâmetros, precisamos também escrever um construtor vazio:

java

Main.java

Utilizamos 3 construtores diferentes para inicializar cada um dos objetos Person. Como podemos ver no último exemplo, John não possui nome ou idade porque estes campos não são inicializados para o objeto. Assim, podemos sobrecarregar o construtor tantas vezes quanto necessário e criar objetos por meio dele.

1. Qual das seguintes afirmações sobre construtores é verdadeira?
2. Qual é o propósito de um construtor em Java?
3. Qual dos seguintes trechos de código demonstra a maneira correta de criar um construtor parametrizado?

question-icon

Qual das seguintes afirmações sobre construtores é verdadeira?

Selecione algumas respostas corretas

Qual é o propósito de um construtor em Java?

Selecione a resposta correta

Qual dos seguintes trechos de código demonstra a maneira correta de criar um construtor parametrizado?

Selecione a resposta correta

Tudo estava claro?

Seção 4. Capítulo 6
course content

Conteúdo do Curso

Java Extended

ConstrutorConstrutor

Como simplificar a inicialização de uma classe?

Iniciar cada campo todas as vezes pode ser tedioso. Para tais propósitos, as classes possuem construtores. A sintaxe para um construtor é a seguinte:

java

Main.java

Vamos analisar cada palavra escrita aqui:

  • modifier: Isso se refere ao modificador de acesso, que geralmente é public para construtores. Casos em que um construtor pode ter um modificador de acesso diferente serão abordados em um curso separado;
  • ClassName: Este é simplesmente o nome da classe na qual você está criando este construtor;
  • ParameterType: Este é o tipo de parâmetro que será usado no construtor. É importante prestar atenção aqui, pois esse parâmetro deve ser do mesmo tipo que o campo na classe; Por exemplo: Se a classe tem dois parâmetros, String name e int age, então o construtor deve ter os mesmos parâmetros (se quisermos inicializar todos os campos por meio do construtor). Se quisermos inicializar apenas um campo específico da classe através do construtor, por exemplo, name, então devemos usar apenas um parâmetro do mesmo tipo e nome que o campo na classe;
  • Em seguida, dentro do corpo do construtor, atribuímos valores aos campos da classe usando os valores passados no parâmetro.

Palavra-chave "this"

Com a ajuda da palavra-chave this, podemos nos referir ao campo da classe no qual escrevemos o valor desta palavra-chave. Por exemplo, quando temos uma classe com dois campos: name e age, podemos escrever this.name dentro do construtor ou de um método, e isto se referirá especificamente ao campo da classe, não à variável local que é passada como parâmetro para aquele construtor ou método. Desta forma, podemos inicializar os campos da classe através do construtor usando a sintaxe: this.name = name;.

Exemplo

Vejamos um exemplo de um construtor em uma classe que ajudará a inicializar todos os campos para tornar isso mais claro:

java

Person.java

Temos uma classe chamada Person com três campos. Cada um desses campos foi adicionado ao construtor usando a palavra-chave this. Portanto, o construtor inicializa os campos com os valores dos parâmetros. Vamos usar este construtor no método main para que você possa ver que os campos são inicializados com o que passamos como parâmetros:

java

Main.java

Inicializamos o objeto Person chamado bob usando o construtor, passando name, age e gender como parâmetros. Em seguida, imprimimos seus parâmetros na tela e vemos que o objeto possui valores de campos conforme especificado nos parâmetros do construtor.

Sobrecarga de construtores

O construtor também pode ser sobrecarregado e não abranger a inicialização de todos os campos da classe. Por exemplo, se não quisermos especificar o gênero de Alice, podemos sobrecarregar o construtor para aceitar apenas 2 parâmetros e inicializar os campos com eles:

java

Main.java

Pode-se concluir que um construtor, como um método, pode ser sobrecarregado e aceitar diferentes números e tipos de parâmetros.

Construtor padrão

Um construtor padrão é um construtor que não leva parâmetros e não inicializa nenhum campo. Ele existe em todas as classes por padrão se elas não tiverem qualquer outro tipo de construtor, razão pela qual é chamado de construtor padrão. Toda vez que criamos um objeto de qualquer classe, utilizamos um construtor. Para usar o construtor padrão quando já temos um construtor que aceita parâmetros, precisamos também escrever um construtor vazio:

java

Main.java

Utilizamos 3 construtores diferentes para inicializar cada um dos objetos Person. Como podemos ver no último exemplo, John não possui nome ou idade porque estes campos não são inicializados para o objeto. Assim, podemos sobrecarregar o construtor tantas vezes quanto necessário e criar objetos por meio dele.

1. Qual das seguintes afirmações sobre construtores é verdadeira?
2. Qual é o propósito de um construtor em Java?
3. Qual dos seguintes trechos de código demonstra a maneira correta de criar um construtor parametrizado?

question-icon

Qual das seguintes afirmações sobre construtores é verdadeira?

Selecione algumas respostas corretas

Qual é o propósito de um construtor em Java?

Selecione a resposta correta

Qual dos seguintes trechos de código demonstra a maneira correta de criar um construtor parametrizado?

Selecione a resposta correta

Tudo estava claro?

Seção 4. Capítulo 6
some-alt