Ciao ragazzi,
Mi sono incaglliato in un altro problemino e non so proprio come uscirne.
Il testo dell'esercizio è questo:
"Si organizzi una gerarchia di classi che modelli figure geometriche bidimensionali (cerchi, triangoli, rettangoli, poligoni regolari e irregolari) e tridimensionali (sfere, cubi, coni, cilindri, tetraedri). Si considerino gli attributi cone superficie, volume, colore, perimetro e si individuino in particolare i casi in cui il polimorfismo può ssere utilizzato per astrarre alcuni attributi delle figure, pur effettuando computazioni diverse a seconda della figura."
Ho realizzato quindi le classi Figura.java che contiene i metodi per tutte le classi figlie, per esempio:
E questa è una delle classi figlie:codice:public double calcolaPerimetro() { String classe=this.getClass().toString(); switch (classe) { case "class Rettangolo": return base*altezza; case "class Triangolo": return base*altezza/2; case "class Cerchio": return 2*raggio*3.14; case "class PoligonoRegolare": return this.getLato(); default : return -1; } }
Il problema è che il metodo della classe figura non riesce a vedere i parametri delle classi figlie, ne direttamente ne invocando i metodi Get che ho creato per ciascun parametro. Ho pensato anche di passare i parametri normalmente, ma anche se funziona non mi sembra una soluzione molto pulita.codice:public class PoligonoRegolare extends Figura { private double apotema,lato; private int n; // numero di lati public PoligonoRegolare(String colore, int n, double apotema,double lato) { super(colore); this.n=n; this.lato=lato; this.apotema=apotema; } public double getApotema() { return apotema; } public double getLato() { return lato; } public int getN() { return n; } }
Grazie.
Roberto

Rispondi quotando