6
respostas

Aula 7 - Exemplo

Quando é feito o Conta () , o que se refere esse Conta ()? É uma função? eu entendi que é em relação a classe Conta, mas por que está sendo chamado o nome da classe com () pra fazer a adição do total de contas?

class Conta {
    private int totalDeContas;
    //...

    Conta() {
        this.totalDeContas = this.totalDeContas + 1;
    }
}
6 respostas

Oi,

Este é o construtor da classe. É através dele que você pode construir seu objeto, e inicializar variáveis, e fazer tratamento iniciais.

Té mais,

Esse seu código não está incorreto?

totalDeContas não deveria ser static?

() é o construtor, o costrutor pega dados básicos para inserir nos atributos ou métodos. Ajuda a dar segurança ao sistema, junto aos modificadores de acesso.

Esse código é do exemplo dado no alura, mas no caso, minha dúvida é o que exatamente esse Conta () vai fazer, e porque ele não é igual as outras funções e métodos mostrados anteriormente que tinham algo como "void" ou modificador de acesso antes da definição

Olá, Os construtores tem esse formato. Embora perceba, que você pode usar os modificadores de acesso: private, public. Além disso. Perceba que construtores não possuem retorno, e nem retornam void.

Té mais,

Ele necessariamente tinha que ter o mesmo nome da classe? Conta?

O construtor é o responsável por criar objetos da classe, e sim ele obrigatoriamente tem que ter o nome da classe.

Ao criar um objeto de uma classe, você pode definir valores iniciais através do construtor.

class Conta {
    private String nome;
    private double valor;

    Conta() {
    }

    Conta(String nome, double valor) {
        this.nome = nome ;
        this.valor = valor;
    }
// getters e setters
    }

Por exemplo, se eu quero criar um objeto da classe Conta com o nome "Conta 1" com o valor inicial 250, basta eu passar como parâmetro esse nome e valor para o construtor.

Conta conta = new Conta("Conta 1", 250.0);

Caso eu apenas crie o objeto sem inicializar os valores, mas depois eu queira atribuir um nome e um valor a esse objeto

// Construtor padrão, apenas cria o objeto sem nenhum valor inicial.
Conta conta = new Conta();
// Atribuindo o  nome
conta.setNome("Conta1");
// Atribuindo o valor
conta.setValor(250.0);

Como você deve ter percebido fica muito mais fácil você inicializar os valores através do construtor do que ficar setando atributo por atributo.

Você pode ter vários construtores.