Spiegazioni su overload in java

di il
4 risposte

Spiegazioni su overload in java

A tutti buona serata.
Come sempre chiedo un aiuto a Voi molto banale (per Voi che ve ne intendete).
Vorrei sapere se utilizzando un piccolo programma con dei metodi sovraccaricati si può utilizzare un metodo costruttore.
Se scrivo:
public class Aritmetica {
public int a;
public double b;
public float c;
public int d;

public Aritmetica (int a, double b, float c, int d){ // costruttore
this.a = a;
this.b = b;
this.c = c;
this.d = d;
}

public double somma (int a, double b) { // 1° metodo somma()
return ( a + b );
}

public float somma ( int a, float c) { // 2° metodo somma()
return ( a + c );
}
public int somma (int a, int d) { // 3° metodo somma()
return ( a + d );
}
}

e quindi:

public class Aritmetica_esegui {
public static void main(String args[]) {
Aritmetica ogg_1 = new Aritmetica(10, 10D, 10F, 10);

System.out.println(" Primo metodo somma double = " + ogg_1.somma(10, 20D) + " \n ");
System.out.println(" Primo metodo somma float = " + ogg_1.somma(10, 20F) + " \n ");
System.out.println(" Primo metodo somma int = " + ogg_1.somma(10, 20));
}
}

è tutto OK, ma nel caso voglio usare il costruttore non mi funziona niente.
Dove sbaglio ???
Grazie per un Vostro riscontro.
marco

4 Risposte

  • Re: Spiegazioni su overload in java

    Marco Mascardi ha scritto:


    ma nel caso voglio usare il costruttore non mi funziona niente.
    Che vuol dire?
    Anche i costruttori possono in essere in overload, ovvero più costruttori nella stessa classe, chiaramente con numero/tipo di parametri differenti.
    Ma non c'entrano niente con i metodi in overload.
  • Re: Spiegazioni su overload in java

    Scusa andbin, sarai un mega informatico, e te ne do atto, ma cerchiamo di intenderci in ITALIANO, ho chiesto nel programmino da me scritto dove ho sbagliato nel usare un metodo costruttore, dato che tutto funziona se non uso il costruttore e invece non funziona se uso il costruttore.
    Non vedo cosa centrino le tue spiegazioni su l'overload dei costruttori. Non ho chiesto una spiegazione su i costruttori sovraccaricati ma soltanto perché il piccolo programma funziona senza costruttori e non funziona con un costruttore.
    Cerchiamo di capirci.
    marco e grazie.
  • Re: Spiegazioni su overload in java

    Marco Mascardi ha scritto:


    ho chiesto nel programmino da me scritto dove ho sbagliato nel usare un metodo costruttore
    Premettiamo una cosa: il codice che hai scritto è tecnicamente corretto, cioè non hai sbagliato nulla a livello di sintassi. Il codice "compila" senza errori (verificato un attimo ora).

    Marco Mascardi ha scritto:


    dato che tutto funziona se non uso il costruttore e invece non funziona se uso il costruttore.
    La classe Aritmetica ha solo 1 costruttore esplicito. Il costruttore di "default" (quello implicito, senza argomenti) NON c'è, proprio perché nei hai inserito uno esplicito tu.
    Quindi l'UNICO modo per costruire un oggetto Aritmetica è usare quel costruttore:

    public Aritmetica (int a, double b, float c, int d)

    E facendo nel main:

    new Aritmetica(10, 10D, 10F, 10)

    è corretto.
  • Re: Spiegazioni su overload in java

    Giusto per curiosità ma perché a b c d sono dichiarate pubbliche?
Devi accedere o registrarti per scrivere nel forum
4 risposte