Visualizzazione dei risultati da 1 a 1 su 1
  1. #1
    Utente di HTML.it L'avatar di el92
    Registrato dal
    Dec 2014
    Messaggi
    177

    [java]richiamare un metodo di un altra classe con parametri diversi

    Ciao ho un piccolo problemino nella risoluzione di un metodo; in pratica non riesco a capire come posso richiamare una classe(con i relativi parametri) in un altra classe:

    tutta la classe è:

    codice:
    import java.util.*;
    class Torre{
        String nome;
        ArrayList<Blocco> a;
        Torre(String nome){
            this.nome=nome;
            a=new ArrayList<Blocco>();
    
        }
    
    
    /**    addBlocco(Blocco b)
    Pone in cima alla torre il blocco b se questo è possibile, cioè se sono rispettati 
    i vincoli 1, 2 e 3.*/
    public boolean addBlocco(Blocco b){
    Torre t=new Torre(nome);
    //oggetto = altraClasse.nomeOggetto;
    BloccoColorato n=(BloccoColorato)b; // è l'ogetto successivo?
    boolean o=false;
        if(!t.containsBlocco(b) && b.puoStareSopraA(n)){
            a.add(b);
            o=true;
                
    }return o;
    }
        public int numColorati(){
            int count=0;
            for(Blocco b:a){
                if(b instanceof BloccoColorato){
                    count++;
                }
            }
            return count;
        }
        public int numJolly(){
            int count=0;
            for(Blocco b:a){
                if(b instanceof BloccoJolly){
                    count++;
                }
            }
            return count;
        }
        /**Restituisce true se la torre contiene un blocco il cui numero e uguale al 
         numero del blocco b , false altrimenti*/
        public boolean containsBlocco(Blocco b){
            boolean bx=false;
            for(Blocco u:a){
                if(u instanceof BloccoJolly ||u instanceof BloccoColorato && u.numero==b.numero){
                        bx=true;
                }
            
        }return bx;
    }
    public String toString(){
        String s="";
        for(Blocco v:a){
            if(v instanceof BloccoJolly ||v instanceof BloccoColorato){
                
        s+=v.toString();
    
    }
    }return s;
    }
            
    public static void main(String[] args){
        Torre t=new Torre("fff");
        BloccoColorato g=new BloccoColorato(9,"rosso");
        BloccoColorato dv=new BloccoColorato(9,"arancione");
        BloccoJolly h=new BloccoJolly(3);
        System.out.println(t.addBlocco(g));
        System.out.println(t.addBlocco(dv)); 
     }
    }
    nello specifico il metodo problematico è:

    codice:
    /**    addBlocco(Blocco b)
    Pone in cima alla torre il blocco b se questo è possibile, cioè se sono rispettati 
    i vincoli 1, 2 e 3.*/
    public boolean addBlocco(Blocco b){
    Torre t=new Torre(nome);
    BloccoColorato n=(BloccoColorato)b; //è l'ogetto successivo?
    boolean o=false;
        if(!t.containsBlocco(b) && b.puoStareSopraA(n)){
            a.add(b);
            o=true;
                
    }return o;
    }
    Il mio problema è il metodo dentro all'if,b.puoStareSopraA(n),perchè n è il BloccoColorato successivo;volendo anche creare un nuovo oggetto BloccoColorato... che ciufolo di parametri metto? In parole povere come faccio a creare in una classe un ogetto di un altra classe con parametri viversi e che risulti quindi l'oggetto successivo nel metodo main? scusate per i giri di parole
    Ultima modifica di el92; 23-05-2015 a 16:55

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.