Problema classi Numero e Quadrato

di il
3 risposte

Problema classi Numero e Quadrato

Ciao , sono un programmatore alle primissime armi , questi sono due programmi sono stai presi da un power-point della mia professoressa ,
e dovrebbero servire a esplicare meglio il concetto di legame per valore e il passaggio di parametri di tipo riferimento ( i quali credo di aver compreso) , non ho infatti dubbi su cosa il programma mi darà poi in uscita . Il mio problema è che i programmi non girano, quando compilo incontro una serie di errori che non riesco a risolvere , o meglio risolto uno ne esce fuori un altro ... Ho vari dubbi a questo punto : java legge Numero e Quadrato come fossero Number e Square ? ( o va scritto esclusivamente in inglese?) getValore o getValue funzionano su un oggetto Numero ? devo importare qualcosa ? (ho provato java.lang.Object.* per il quadrato per esempio ma cmq non riconosce in nessun modo ne la classe Quadrato o Square che sia nè il getLato o getSide o .side ) . Gli errori di compilazione sono sempre del tipo " cannot find symbol" riferiti appunto a Numero,Quadrato,.getValore e getLato... e un "Number is abstract cannot be instanciated ". Forse sono semplicemente scritti per non essere fatti girare e servono solo per farti visualizzare meglio la cosa ? . Se riusciste a farli andare senza cambiarne la struttura ve ne sarei grato , magari spiegando il perchè andava fatto in quel modo e come utilizzare queste classi senza cadere in cascate di errori anche al di fuori di questi esempi. Spero le mie incertezze non siano del tutto idiozie e vi ringrazio in anticipo per il tempo dedicatomi.

Primo:

class DemoNumeroPassPar{
public static void alfa(Numero n){
// viene creato un nuovo oggetto referenziato da n
n = new Numero(50);
System.out.println("n1 in alfa = " + n.getValore());}
public static void beta(Numero n){
// viene modificato lo stato dell'oggetto referenziato da n
n.setValore(50);
System.out.println("n1 in beta = " + n.getValore());}
public static void main(String[] args) {
Numero n1;
n1 = new Numero(10); //crea il numero
System.out.println("n1 nel main = " + n1.getValore());
alfa(n1);
System.out.println("n1 nel main dopo alfa = “ +n1.getValore());
beta(n1);
System.out.println("n1 nel main dopo beta= " + n1.getValore());
}
}


Secondo:

class LegamePerValore5 {
public static void alfa(Quadrato q) {
System.out.println(q.getLato()); // sicuramente 5
q = new Quadrato(6);
System.out.println(q.getLato()); // sicuramente 6
}
public static void main(String[] args) {
Quadrato k = new Quadrato(5);
System.out.println(k.getLato()); // sicuramente 5
alfa(k);
System.out.println(k.getLato()); // 5 oppure 6?
}
}

3 Risposte

  • Re: Problema classi Numero e Quadrato

    Ed ecco un terzo esempio (che dà errori in compilazione) di cui non capisco nemmeno cosa intenda il Razionale(1,3) .. un numero razionale x=1,3??????

    public class TestRazionale {
    public static void main(String[] args) {
    Razionale x,z,r,a;
    x = new Razionale(1,3);
    x.simpl();
    System.out.println("x = " + x.toString());
    z = new Razionale(8,12);
    z.simpl();
    System.out.println("z = " + z.toString());
    r = x.add(z);
    System.out.println("r = " + r.toString());
    a = new Razionale(2,3);
    System.out.println("a = " + a.toString());
    System.out.println("verifico che a e r siano uguali");
    System.out.println(r.equals(a));
    }
    }
  • Re: Problema classi Numero e Quadrato

    Forse sono semplicemente scritti per non essere fatti girare e servono solo per farti visualizzare meglio la cosa ?
    Esattamente.

    Questi sono esempi didattici. Da qualche parte devono essere definite le classi Numero, Quadrato e Razionale.
  • Re: Problema classi Numero e Quadrato

    Si , grazie , riguardando anche sul libro ho capito , non so perchè ma pensavo fossero classi già definite di "default" in qualche modo .
Devi accedere o registrarti per scrivere nel forum
3 risposte