Dúvida sobre membros estaticos

3 respostas
L

ei galera sou novo aqui no forum e to com uma dúvida espero que voces possam me ajudar. Desde já agradecido!

e o seguinte eu sei que um menbro estatico é um menbro que pertence a propia classe e não a uma insatancia em especifico ne
por favor me corrijam se eu estiver errado.
agora aqui vem a dúvida.

nesse metodo TestaBanco que contem o metodo main, eu inseri esse metodo aqui.

private static void criarConta() {

if(qntClientes >= vet.length)

System.out.println(“ERRO - Não é possivel incluir mais clientes”);

else{

System.out.println(“a. Conta Corrente:);

System.out.println(“b. Conta Poupanca:);

System.out.println(“c. Conta Especial:);

char op = trem.next().charAt(0);
switch(op){
			case 'a':
				vet[qntClientes++] = new ContaCorrente(digNumero(),digSaldo());
				break;
			case 'b':
				vet[qntClientes++] = new ContaPoupanca(digNumero(), digSaldo());
				break;
			case 'c':
				vet[qntClientes++] = new ContaEspecial(digNumero(), digSaldo());
				break;
		}
	}		
}

e como vcs estão vendo tenho a chamada para outros dois metodos uma para digitar um numero(gigNumero()) e outro para digitar o saldo(digSaldo())

public static int digNumero(){

System.out.println("Digite o numero do cliente: ");

return trem.nextInt();

}

public static double digSaldo(){

System.out.println("Digite o saldo do cliente: ");

return trem.nextDouble();

}

agora sim vem a dúvida pq eu tenho que declarar esses metodos como estaticos se eles estão contidos dentro da minha classe TestaBanco??
e outra como eu faço para escrever o código dentro daqules bloquinho??

3 Respostas

Zakim

métodos estaticos não podem conter métodos de instancia dentro deles!

Imagina só...

public class TesteEstatico {
    
    
    public void mostrarAlgo(){
        System.out.println("método que precisa de uma instancia para ser chamado!");
    }
    
    public static void mostraralgoestatico(){
        
        System.out.println("Isso vai aparecer tranaquilo");
        mostrarAlgo();  // nao vai funcionar pq esse método precisa de uma instancia para ser chamado
        
        //aqui vai funcionar
        // vai funcionar pq a classe TesteEstatico foi instanciada
        //fazendo com que o metodo mostrar algo tenha uma base para ser chamado
        new TesteEstatico().mostrarAlgo(); 
        
    }
    
    

}

ps: considere esse código como meramente ilustrativo.. heheh

Concluindo...

Basta você analisar a teoria : Método de Classe e método de instância

Um metodo de instância pode conter um método de classe
mas um método de classe não pode conter um método de instância a menos que a classe que o possui seja instanciada dentro do método de classe ou também seja estática

L

vlw ai cara pela resposta acho que to começacdo a ver a luz no fim do tunel! xD obrigado

Zakim

Aqui no guj sempre tem luz no fim do tunel… hehhe

basta postar!

:stuck_out_tongue:

Criado 17 de abril de 2008
Ultima resposta 17 de abr. de 2008
Respostas 3
Participantes 2