Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Variaveis de controle dentro de uma Class

Ola, a todos. Estou com uma duvida em como uma variavel funciona e continua existindo dentro de uma Class, segue o codigo exemplo :

class Empresa {

    String nome;
    int cnpj;
    Funcionario[] empregados;
    int i = 0;

    void adicionar ( Funcionario p ){

        this.empregados[this.i] = p;
        this.i++;
    }

}

Porque a variavel "int i = 0;", pode ser usada dentro do metodo "adicionar" incrementando o seu valor e seu valor e guardado e nao volta a 0 ? Essa variavel nao deveria ser apenas uma referencia para acesso na criacao de uma "new Empresa" ?

Outra pergunta envolvendo a mesma variavel, caso eu crie isso:

Empresa e = new Empresa();

println(e.i);

e.1 tera o valor nulo, correto ?

PS: Eu entendi como se usa, mas nao como funciona !

4 respostas

Olá José. As variáveis nome, cnpj, empregados e i são chamadas atributos da classe. Qualquer método da classe pode alterá-las livremente. Normalmente nós fazemos a inicialização dos atributos dentro do construtor da classe, mas seu uso não é restrito ao construtor.

Acho que entendi, Somente metodos dentro da propria classe podem alterar e acessar seus valores, caso eu crie um new Empresa em outra Class estarei criando uma nova variavel com os mesmos atributos, mas nao os mesmo valores, e sim todos terao valor null, correto ?

solução!

Praticamente isso.

Como você não especificou o tipo de acesso dos seus atributos (private, public), elas tem permissão de acesso padrão: todas as classes do mesmo pacote podem acessar esses atributos.

Quando você não inicializa os seus atributos eles tem o valor padrão do seu tipo:

  • Objetos: null
  • Primitivos numéricos: 0
  • Primitivo booleano: false

Perfeito. Obrigado Daniel, ajudou bastante !