[RESOLVIDO]Metodos no escopo da classe

2 respostas
AndreMendes

Sempre tenho esse problema. Nenhum método pode ser executado no escopo da classe? Todos eles devem estar dentro de algum método da propria classe ou dentro do metodo main ? Pra quem nao entendeu, vai um exemplo:

Isso funciona:

public class GUJ {
    
    
    List<String> listaString = new ArrayList();
    String nome = "andre";
    String nome1 = "rafael";
    String nome2 = "marina";
    String nome3 = "mariel";
    
    public void adicionaNomes(){
        
        listaString.add(nome);
        listaString.add(nome1);
        listaString.add(nome2);
        listaString.add(nome3);
    }

}

Isso não:

public class GUJ {
    
    
    List<String> listaString = new ArrayList();
    String nome = "andre";
    String nome1 = "rafael";
    String nome2 = "marina";
    String nome3 = "mariel";
        
    listaString.add(nome);
    listaString.add(nome1);
    listaString.add(nome2);
    listaString.add(nome3);
    
}

A minha duvida pode até parece bem ridicula, mas eu não entendo porque isso acontece! Que conceito de OO pode explicar isso ?

2 Respostas

marcelo.bellissimo

Isso acontece justamente pelo fato do Java ser OO. Ou seja, você cria objetos, e depois faz algo com eles... do jeito que você está tentando fazer, seria uma programação estruturada, sequencial, onde você "instancia" um objeto e ele já sai executando algumas coisas...

Isso pode ser simulado no Java através do método construtor, que é sempre chamado ao instanciar um objeto... ficaria assim:

public class GUJ {
    
    
    List<String> listaString = new ArrayList();
    String nome = "andre";
    String nome1 = "rafael";
    String nome2 = "marina";
    String nome3 = "mariel";

    public GUJ(){        
        listaString.add(nome);
        listaString.add(nome1);
        listaString.add(nome2);
        listaString.add(nome3);
    }
    
}

Isso é um padrão do Java, você apenas declara variáveis e inicia (ou não, você escolhe) as mesmas...
Para executar qualquer outro tipo de tarefa, apenas dentro dos métodos...

AndreMendes

Realmente! Não tinha pensado por esse lado… Uma coisa tão simples de se explicar e eu quebrando a cabeça :wink:
Muito obrigado.

[RESOLVIDO]

Criado 17 de agosto de 2010
Ultima resposta 17 de ago. de 2010
Respostas 2
Participantes 2