11.4. Estrutura de Classes e Objetos em Java: Construtores

A linguagem de programação Java é orientada a objetos, o que significa que ela utiliza objetos como a base para todas as operações e interações. Os objetos são instâncias de classes, que são os moldes ou templates que definem as características e comportamentos desses objetos. Uma parte fundamental da definição de uma classe em Java é o construtor. Neste capítulo, vamos explorar em detalhes a estrutura de classes e objetos em Java, com foco especial nos construtores.

O que é uma Classe?

Uma classe em Java é um blueprint que define um tipo de objeto. Ela especifica o que o objeto sabe (seus atributos ou estados) e o que o objeto faz (seus métodos ou comportamentos). Por exemplo, uma classe Carro pode ter atributos como cor, marca e velocidade máxima, e métodos como acelerar, frear e virar.


public class Carro {
    String cor;
    String marca;
    int velocidadeMaxima;

    void acelerar() {
        // Código para acelerar
    }

    void frear() {
        // Código para frear
    }

    void virar() {
        // Código para virar
    }
}

O que são Objetos?

Um objeto é uma instância de uma classe. Quando você cria um objeto, está criando uma entidade que possui todas as características e comportamentos definidos pela classe. No caso da classe Carro, você pode criar um objeto que é um carro específico, como um "Fusca azul" ou um "Camaro amarelo". Cada objeto tem seu próprio estado, independente dos outros objetos da mesma classe.


Carro meuFusca = new Carro();
meuFusca.cor = "Azul";
meuFusca.marca = "Volkswagen";
meuFusca.velocidadeMaxima = 160;

Carro meuCamaro = new Carro();
meuCamaro.cor = "Amarelo";
meuCamaro.marca = "Chevrolet";
meuCamaro.velocidadeMaxima = 250;

O que são Construtores?

Construtores são métodos especiais dentro de uma classe que são chamados quando um novo objeto dessa classe é criado. Eles têm o mesmo nome da classe e não têm um tipo de retorno, nem mesmo void. Os construtores são usados para inicializar os atributos do objeto com valores específicos ou para executar qualquer inicialização que seja necessária antes de usar o objeto.

É possível ter mais de um construtor em uma classe, desde que cada um tenha uma lista de parâmetros diferente. Isso é chamado de sobrecarga de construtores (constructor overloading).


public class Carro {
    String cor;
    String marca;
    int velocidadeMaxima;

    // Construtor padrão
    public Carro() {
        cor = "Branco";
        marca = "Sem marca";
        velocidadeMaxima = 120;
    }

    // Construtor com parâmetros
    public Carro(String cor, String marca, int velocidadeMaxima) {
        this.cor = cor;
        this.marca = marca;
        this.velocidadeMaxima = velocidadeMaxima;
    }
}

Ao usar a palavra-chave this, estamos nos referindo à instância atual do objeto. Isso é útil para diferenciar entre parâmetros e atributos da classe quando eles têm o mesmo nome.

Inicializando Objetos com Construtores

Quando você cria um novo objeto, pode escolher qual construtor usar, com base nos parâmetros que deseja passar. Se você não especificar nenhum construtor, o Java usará o construtor padrão, que é um construtor sem parâmetros que o compilador Java cria automaticamente se nenhum outro construtor for definido.


// Usando o construtor padrão
Carro meuCarro = new Carro();

// Usando o construtor com parâmetros
Carro seuCarro = new Carro("Preto", "Ford", 200);

Construtores e Encapsulamento

O encapsulamento é um dos pilares da programação orientada a objetos e refere-se à prática de ocultar os detalhes internos de uma classe e expor apenas o necessário através de métodos públicos. Os construtores desempenham um papel importante no encapsulamento porque permitem que você defina como um objeto deve ser inicializado, garantindo que ele esteja sempre em um estado válido.


public class Carro {
    private String cor;
    private String marca;
    private int velocidadeMaxima;

    public Carro(String cor, String marca, int velocidadeMaxima) {
        this.cor = cor;
        this.marca = marca;
        this.velocidadeMaxima = velocidadeMaxima;
    }

    // Métodos getters e setters para acesso aos atributos
    public String getCor() {
        return cor;
    }

    public void setCor(String cor) {
        this.cor = cor;
    }

    // Outros getters e setters...
}

Conclusão

Construtores são fundamentais na criação de objetos em Java, pois permitem definir como os objetos são inicializados e garantem que eles comecem a vida em um estado consistente. Ao dominar os construtores e entender como eles se encaixam na estrutura de classes e objetos em Java, você será capaz de criar programas mais robustos, manuteníveis e seguros. Lembre-se de usar o encapsulamento para proteger os dados do objeto e garantir que o objeto seja sempre usado da maneira pretendida.

Agora responda o exercício sobre o conteúdo:

_Qual das seguintes afirmações sobre construtores em Java está correta?

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

Imagem do artigo Estrutura de classes e objetos em Java: Encapsulamento

Próxima página do Ebook Gratuito:

63Estrutura de classes e objetos em Java: Encapsulamento

4 minutos

Ganhe seu Certificado deste Curso Gratuitamente! ao baixar o aplicativo Cursa e ler o ebook por lá. Disponível na Google Play ou App Store!

Disponível no Google Play Disponível no App Store

+ de 6,5 milhões
de alunos

Certificado Gratuito e
Válido em todo o Brasil

48 mil exercícios
gratuitos

4,8/5 classificação
nas lojas de apps

Cursos gratuitos em
vídeo, áudio e texto