Criar classe

6 respostas
J

como eu transformaria esses metodos em uma classe ja tentei mas sempre da erro
esse

private static void ordena(List<NovaLista> lista) {  
        Collections.sort(lista, new Comparator<NovaLista>() {  
            public int compare(NovaLista o1, NovaLista o2) {  
                if(o1.getQpais() < o2.getQpais()){                 
                            return 1; }      
                    else if(o1.getQpais() > o2.getQpais()){       
                            return -1;}
				if(o1.getPonto() < o2.getPonto()){                 
                            return 1; }      
                    else if(o1.getPonto() > o2.getPonto()){       
                            return -1;} 
			    if(o1.getPremiacao() < o2.getPremiacao()){                 
                            return 1; }      
                    else if(o1.getPremiacao() > o2.getPremiacao()){       
                            return -1;}                    
                    return 0;            
            }  
        });  
    }

e esse

private static int ContaPais(List<Lista> l,String Nome){  
          int j = 0;  
           for(int i = 0; i<l.size(); i++){  
             if(l.get(i).getPais().equals(Nome))  
                     j++;                       
                    }   
                       return j; }

6 Respostas

mauricioadl

transformar metodo em classe? explique melhor, por favor!

leandrow3b

Você poderia deixar mais claro sua pergunta?
Transformar método em classe?

J

e que eles estao implentados na classe principal eu queria criar um classe e colocar eles como metodos

philos_java

Acho que vc quer acessar esses metodos apartir de outra classe, certo?

se for isso, basta criar uma nova classe e instânciar a classe da qual possue esse metodos. Assim:

public class Classe1{
//metodos dessa classe
private static void ordena(List<NovaLista> lista) {    
        Collections.sort(lista, new Comparator<NovaLista>() {    
            public int compare(NovaLista o1, NovaLista o2) {    
                if(o1.getQpais() < o2.getQpais()){                   
                            return 1; }        
                    else if(o1.getQpais() > o2.getQpais()){         
                            return -1;}  
                if(o1.getPonto() < o2.getPonto()){                   
                            return 1; }        
                    else if(o1.getPonto() > o2.getPonto()){         
                            return -1;}   
                if(o1.getPremiacao() < o2.getPremiacao()){                   
                            return 1; }        
                    else if(o1.getPremiacao() > o2.getPremiacao()){         
                            return -1;}                      
                    return 0;              
            }    
        });    
    } 

    private static int ContaPais(List<Lista> l,String Nome){    
              int j = 0;    
               for(int i = 0; i<l.size(); i++){    
                 if(l.get(i).getPais().equals(Nome))    
                         j++;                         
                        }     
                           return j; }  
}

Nova classe:

public class Classe2{
    public static void main(String[] args){
        Classe1 classe1 = new Classe1()
      
        //chamando o metodo da classe Classe1
        classe1.ordena(lista);
    }
}
Caio.Sergio

Bom… Pelo que entendi você quer criar uma classe que contenha os dois método citados.

assumindo que os seus métodos não contenham erro de sintaxe a sua classe ficaria assim:

/*
        Classe Ordenacao
        Contem 2 metodos: ordena e ContaPais
*/
public class Ordenacao{ // Inicio da definicao da classe
	
        ////Metodo ordena
	//o escopo foi definido como publico para ser acessado externamente pela classe principal
	public void ordena(List<NovaLista> lista) {    
        Collections.sort(lista, new Comparator<NovaLista>() {    
            public int compare(NovaLista o1, NovaLista o2) {    
                if(o1.getQpais() < o2.getQpais()){                   
                            return 1; }        
                    else if(o1.getQpais() > o2.getQpais()){         
                            return -1;}  
                if(o1.getPonto() < o2.getPonto()){                   
                            return 1; }        
                    else if(o1.getPonto() > o2.getPonto()){         
                            return -1;}   
                if(o1.getPremiacao() < o2.getPremiacao()){                   
                            return 1; }        
                    else if(o1.getPremiacao() > o2.getPremiacao()){         
                            return -1;}                      
                    return 0;              
            }    
        });    
    }
	
	////Metodo ContaPais
	//o escopo foi definido como publico para ser acessado externamente pela classe principal
	public int ContaPais(List<Lista> l,String Nome){    
          int j = 0;    
           for(int i = 0; i<l.size(); i++){    
             if(l.get(i).getPais().equals(Nome))    
                     j++;                         
                    }     
                       return j; }
					   
} //final da definicao da classe

E esta a sua dúvida? pelo que conseguir entender era isso

Como falei antes não verifiquei se seus metodos estão corretos, se estiverem nao tera problemas

Vlw abraço

J

era isso msm eu tinha feito isso tava errando na chamar nao tava colocando o nome da classe antes rsrs
vlw

Criado 4 de maio de 2012
Ultima resposta 4 de mai. de 2012
Respostas 6
Participantes 5