Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Costrutto super()

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    17

    Costrutto super()

    Ciao mi potete dire a cosa serve super() nel costruttore della classe? grazie

    public class Vincolo {

    //variabili d'istanza della classe Vincolo
    private int l1,l2;
    private Stato s1, s2;
    private Ordine o;

    /**
    * costruttore di un oggetto vincolo
    */
    public Vincolo(int l1, int l2, Ordine o, Stato s1, Stato s2){

    super(); ------>???
    this.l1=l1;
    this.l2=l2;
    this.o=o;
    this.s1=s1;
    this.s2=s2;
    }//costruttore
    }//Vincolo

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da teran1 Visualizza il messaggio
    Ciao mi potete dire a cosa serve super() nel costruttore della classe?
    Ad invocare il costruttore della superclasse. Ma nel tuo caso l'uso esplicito è superfluo. Se non metti la invocazione esplicita di un super-costruttore, il compilatore mette per default super(). Ed è comunque corretto perché la superclasse è Object che ha un costruttore no-arg.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    17
    e super(1) in questo costruttore??
    public ProblemaConcreto(LinkedList<Lavoro> l,LinkedList<Vincolo> v) {

    super(1);
    lavori=new LinkedList<Lavoro>(l);

    vincoli=new LinkedList<Vincolo>(v);


    }

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da teran1 Visualizza il messaggio
    e super(1) in questo costruttore??
    codice:
    public ProblemaConcreto(LinkedList<Lavoro> l,LinkedList<Vincolo> v) {
    		
    		super(1);
    Non so come è definita la classe ProblemaConcreto (es. cosa estende). Se la superclasse di ProblemaConcreto ha un costruttore che riceve 1 int (o più ampio di int o Integer, tramite autoboxing da Java 5) allora super(1); è corretto ..... altrimenti è sbagliato. Tutto qui.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Ciao,
    Con super(1) inizializzi la classe madre di "ProblemaConcreto" con valore 1, immagino che il suo (della classe madre) costruttore avrà come parametro un intero.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    17
    Ecco le 2 classi:


    public abstract class Problema <P,S>{

    public Problema ( int num_max_soluzioni ){
    this.num_max_soluzioni =num_max_soluzioni ;
    }
    }


    public class ProblemaConcreto extends Problema<Lavoro, Integer>{

    private LinkedList<Lavoro> lavori;
    private LinkedList<Vincolo> vincoli;


    public ProblemaConcreto(LinkedList<Lavoro> l,LinkedList<Vincolo> v) {

    super(1);
    lavori=new LinkedList<Lavoro>(l);

    vincoli=new LinkedList<Vincolo>(v);

    durataMax=sommaComplessiva(lavori);

    }
    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.