Invocar método da mesma classe

10 respostas
andrepm

Pessoal boa noite,

Como eu faço pra disparar um método que eu implementei dentro de outro método?

O método está na interface, mas foi implementado em outra classe.

Segue a interface:

import java.rmi.*;

public interface ChatInterface extends Remote {
    public void juntar(Notificar n, String name) throws RemoteException;
    
    public void conversar(String name, String s) throws RemoteException;
    
    public void deixar(Notificar n, String name) throws RemoteException;
    
    public void baralho () throws RemoteException;
    
    public carta distribui (String name) throws RemoteException;
    
    public void embaralhar () throws RemoteException;

    public void trocar () throws RemoteException;
    
    public void encerrar () throws RemoteException;
    
    public void inicia_partida () throws RemoteException;

Segue o método implementado:

public void embaralhar () throws RemoteException{
	       atual = 0; 
	  
	       for ( int prim = 0; prim < carta.length; prim++ ) 
	       { 
	         
	          int seg =  aleatório.nextInt( quantidade ); 
	  
	          carta temp = carta[ prim ];      
	          carta[ prim ] = carta[ seg ]; 
	          carta[ seg ] = temp; 

			
		}
		
		serverList.decCounter();
	       }
   }

10 Respostas

andrepm

up, alguém pra me ajudar nessa por favor?

charleston10

RMI agora vc falou minha lingua…

qual método vc quer chamar, este “serverList.decCounter();” que esta dentro de “Embaralhar” ?

andrepm

Opa bom dia,

É que eu não estou com o meu código aqui, esse severlist ta ali sem querer rs, ignora ele por favor. O que eu quero fazer é invocar o embaralhar em um método chamado JUNTAR, no qual eu faço um if, ai eu gostaria de chamar o método nonelse.

Tiago.Argolo

O método que vai chamar o “embaralhar” precisa tratar, ou declarar com throws, RemoteException. Fazendo isto, pode chamar o método embaralhar dentro dele. Me diz se deu certo!

charleston10

Primeiro o método tem que ter a visibilidade como Public para poder ser acessado por outra classe - Esta OK!
Segundo, vc deve criar um objeto na outra classe e chamar esse método a partir desse objeto.

Exemplo

public class Teste(){

    public Teste(){} //metodo construtor
    
    private void Juntar(){
        clsCartas objCartas = new clsCartas(); cria objeto
        
        if (1 < 50){
            aaaa
        }else{
             objCartas.Embaralhar(); //chama metodo da outra classe
        }
    }
}
andrepm

Entendi! Obrigado aos dois.

Só mais uma duvida, o juntar esta na mesma classe(servidor), o embaralhar é criado na interface e implementado na classe servidor, então não muda nada de como me explicou né?

charleston10

Se esta na mesma classe muda sim, vc tera que referenciar a classe que vc esta usando..

private void Juntar(){         
          
        if (1 < 50){  
            aaaa  
        }else{  
            this.Embaralhar(); //chama metodo da mesma classe (this -> referencia da classe que vc esta)
        }  
    }
charleston10

Esse seu jogo é OpenSource?

andrepm

Sim, é só um trabalho de faculdade.

charleston10

Manda pra gente depois se puder,
eu trabalho com RMI estava querendo um tempo atras criar um jogo de BlackJack ou Truco,
nao sei qual é o seu q vc esta fazendo, enfim…

Tenho um chat OpenSource …
http://javaaberto.blogspot.com.br/2012/09/chat-com-rmi.html

Funcionou ai?

Criado 18 de novembro de 2012
Ultima resposta 19 de nov. de 2012
Respostas 10
Participantes 3