Valore ritorno metodo

di il
1 risposte

Valore ritorno metodo

Salve ragazzi sto facendo un esercizio dove ho un problema sul valore di ritorno di un metodo che richiamo dal main....il metodo in questione è costi_manutenzione appartenente alla classe Guida...sostanzialmente quel metodo restituisce la media dei costi di manutenzione dei parchi di quella regione...il problema è che mi restituisce sempre '0' .
ps : Ho un array V in cui inserisco Parchi Terrestri e Parchi acquatici, i 2 tipi di parchi sono sottoclassi della classe Parchi, il resto è abbastanza intuibile, se vedete altri errori/incongruenze dite pure (sono alle prime armi in java siate clementi )
package esercizio1;

/**
 *
 * @author Marco
 */
public class Esercizio1 {

    /**
     * @param args the command line arguments
     */

    public static void main(String[] args) {

       Guida V=new Guida(10,15);
       System.out.println("Costo medio regione selezionata: "+ V.costi_manutenzione("Parco_Acqua3"));
       System.out.println("Costo medio regione selezionata: "+ V.costi_manutenzione("Parco_Terr12"));
       System.out.println("Costo medio regione selezionata: "+ V.costi_manutenzione("Parco_Acqua200"));
    }
    
}
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package esercizio1;

/**

package esercizio1;

/**
 *
 * @author Marco
 */
public abstract class Parchi {
    
    String regione;
  private int num_giochi;
    
    public Parchi(String regione,int num_giochi){
        this.regione=regione;
        this.num_giochi=num_giochi;       
    }

    public int get_num_giochi(){
        return num_giochi;
    }
   
    public void ingrandisci(int num_giochi){
        if(num_giochi>this.num_giochi)
            this.num_giochi=num_giochi;
          }

    /**
     *
     * @return
     */
    public abstract int prezzo();
}

    

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package esercizio1;

/**
 *
 * @author Marco
 */
public class Parchi_Acqua extends Parchi{
    
    int num_isole;
    
    public Parchi_Acqua(String regione, int num_giochi,int num_isole) {
        super(regione, num_giochi);
        this.num_isole=num_isole;
    }
   
   @Override
   public int prezzo(){
       int prezzo=2000+50*get_num_giochi()+100*num_isole;
       return prezzo;
   }


    
   
   
    
}
/*
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package esercizio1;

/**
 *
 * @author Marco
 */
public class Parchi_Terr extends Parchi {
    
    boolean animali;
    
    public Parchi_Terr(String regione, int num_giochi,boolean animali ) {
        super(regione, num_giochi);
        this.animali=animali;
    }
    @Override
    public int prezzo(){
      int prezzo=1000+get_num_giochi()*10;
     if(animali){
    return prezzo+2000;
    }else
   return prezzo;}

}
    

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package esercizio1;
import java.util.Random;
/**
 *
 * @author Marco
 */
public class Guida{
    
    Parchi[] V;
    
    public Guida(int n , int m){
        
    V=new Parchi[n + m];
    Random r= new Random();
    
    for( int i=0; i<n;i++){
        V[i]=new Parchi_Terr("Parco_Terr"+i,r.nextInt(500),r.nextBoolean());
}
      for(int i= n ; i<n+m;i++){
        V[i]=new Parchi_Acqua("Parco_Acqua"+i,r.nextInt(500),r.nextInt(100));
}
    }
    
    public int costi_manutenzione(String regione){
        int acc=0;
        int tot=0;
        
        for( int i=0; i< V.length ; i++ ) {
            if (regione.equals(V[i].regione)) {
                ++acc;
                tot = V[i].prezzo() + tot;
            }
        }                           
      if(acc!=0){
     return tot/acc;   
}
      else return 0;
   
      
    
    }
}

1 Risposte

  • Re: Valore ritorno metodo

    metal_carter ha scritto:


    sostanzialmente quel metodo restituisce la media dei costi di manutenzione dei parchi di quella regione...il problema è che mi restituisce sempre '0' .
    Non hai postato la classe Parchi_Terr ma non è tanto quella la questione.

    Il punto è che nel main cerchi "Parco_Acqua3" (non esiste nell'array), "Parco_Terr12" (idem non esiste), "Parco_Acqua200" (idem non esiste).
    Quindi cosa puoi pretendere?
Devi accedere o registrarti per scrivere nel forum
1 risposte