Creare classe Circle

di il
4 risposte

Creare classe Circle

Ciao, qualcuno può aiutarmi a costruire questa classe? il testo è questo:
Creare una classe Circle con un costruttore che abbia al suo interno un metodo per calcolare il perimetro e l'area del cerchio (le variabili che caratterizzano questa classe devono essere private, ovvero sono visibili solo all'interno di quella classe, se vengono chiamate fuori dalla classe risultano inesistenti).Utilizzare dei metodi get che, dato un cerchio, mi restituiscono le variabili di istanza di cui abbiamo bisogno per costruire quel cerchio. Per ogni operazione, nella classe Circle, va scritto accanto un commento.
Poi sotto va creata un'altra classe chiamata CircleTest dentro la quale dobbiamo scrivere l’ intestazione del main e sotto invochiamo tutti i metodi scritti nella classe Circle stampandoli, commentare i passaggi.

4 Risposte

  • Re: Creare classe Circle

    miche12 ha scritto:


    ciao, qualcuno può aiutarmi a costruire questa classe?
    E esattamente di che tipo di aiuto hai bisogno? Hai già provato a scrivere qualcosa? O nulla?
  • Re: Creare classe Circle

    si ho provato.. però non va bene come l' ho fatta io! potresti, per favore, correggere gli errori oppure se vuoi e se hai tempo farmi vedere come la faresti te? grazie mille. La mia è così:

    public class Cerchio
    {
    private double raggio; //dichiarazione delle variabili di istanza.
    private double pi=3.14;
    private double area;
    private double perimetro;
    }
    public Cerchio (double r,double g) //costruttore crea ogetto ed atrribuisce i valori alle variabili di istanza dell'oggetto
    {
    raggio=r;
    pi=g;
    }
    void setRaggio(double r) //permette di modificare il valore di una variabile di istanza
    {
    raggio =r;
    }
    double getRaggio() //permette di accedere al valore della variabile di istanza
    {
    return raggio;
    }
    void setArea (double a)
    {
    area =a;
    }
    double getArea()
    {
    a=(r*r*g);
    return a;
    }
    void setPerimetro (double p)
    {
    perimetro =p;
    }
    double getPerimetro()
    {
    p= 2*g*r;
    return p;
    }
    public static void main(String[] args) //permette di eseguire la classe e stampa sullo schermo il risultato dell'esecuzione dei metodi precedenti
    {
    Cerchio x = new Cerchio (); // dichiara una variabile che verra utilizzata per fare riferimento ad un oggetto
    x.setRaggio(Input.getDouble("raggio")); // serve ad utilizzare l'oggetto e ricevere informazioni da esso, per cambiare lo stato o fargli eseguire azioni
    System.out.println("raggio:"+x.getRaggio()+"perimetro:"+ x.getPerimetro()); // stampa il risultato su schermo
    System.out.println("raggio:"+x.getRaggio()+"area:"+x.getArea());
    }
    }
  • Re: Creare classe Circle

    miche12 ha scritto:


    si ho provato.. però non va bene come l' ho fatta io!
    Innanzitutto posta il codice ben indentato e qui sul forum tra i tag CODE, perché altrimenti è illeggibile.

    Il tuo codice tra l'altro non dovrebbe nemmeno compilarti, perché già dopo il campo perimetro hai messo una graffa '}' di chiusura.

    Il campo del pi non ha molto senso .... è una costante, non cambia (tra l'altro esiste già PI di java.lang.Math).


    Poi setArea/setPerimetro non hanno molto senso ... perché sono valori derivati, calcolati in base ad altri valori.
    Quindi o:
    a) tieni i campi area/perimetro, li calcoli/assegni nel setRaggio (e setRaggio lo invochi anche dal costruttore, così eviti doppioni) e li restituisci da getArea/getPerimetro.
    oppure
    b) niente campi area/perimetro e i getArea/getPerimetro ritornano il risultato del calcolo fatto "al volo".

    A te la scelta in base ad eventuali imposizioni/restrizioni che hai.

    Infine ti è stato chiesto di fare un'altra classe CircleTest dove mettere il main. Qui non la vedo ....
  • Re: Creare classe Circle

    Capito.. provo a correggere gli errori, mentre la classe CircleTest non l' ho fatta perché essendo alle prime armi, ancora non so programmare bene... se puoi aiutarmi mi faresti un gran piacere!
Devi accedere o registrarti per scrivere nel forum
4 risposte