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;
}
}