Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    xkè nn trova il costruttore???

    di seguito questo esercizio:

    devo fare una class contratto che prenda un veicolo e la tariffa che gli viene applicata...

    package poo.ProveAppelli.Assicurazione;
    import java.util.*;

    class Veicolo{
    private String targa;
    private Date immatricolazione;
    private String modello;

    public Veicolo(String targa,Date immatricolazione, String modello){
    this.targa = targa;
    this.immatricolazione = immatricolazione;
    this.modello = modello;
    }

    public Veicolo(Veicolo v){
    this.targa = v.targa;
    this.immatricolazione = v.immatricolazione;
    this.modello = v.modello;
    }

    public boolean equals(Object o){
    if(!(o instanceof Veicolo))
    return false;
    Veicolo x = (Veicolo) o;
    return this==x;
    }

    public String toString(){
    return "targa "+targa+" modello "+modello+" anno immatricolazione "+immatricolazione;
    }
    }


    public class Contratto{
    private Veicolo veicolo;
    private Tariffa t;
    public enum Tariffa{BonusMalus,PremioAnnuo,ClasseDiMerito};

    public Contratto(Veicolo v,Tariffa t){
    this.veicolo=v;
    this.t=t;
    }

    public Contratto(Contratto c){
    this.veicolo = c.veicolo;
    this.t = c.t;
    }

    public void setTariffa(Tariffa nuovaTariffa){
    this.t = nuovaTariffa;
    }

    public Veicolo getVeicolo(){
    return veicolo;
    }

    public Tariffa getTariffa(){
    return t;
    }

    public boolean equals(Object o){
    if(!(o instanceof Contratto))
    return false;
    Contratto x = (Contratto) o;

    return this.getVeicolo().equals(x.getVeicolo());
    }

    public String toString(){
    return "Tariffa = "+t+" Veicolo del contratto = "+veicolo.toString();
    }
    }

    e dovrebbe essere tutto corretto,se però faccio un'altra classe con solo main per fare una prova...

    package poo.ProveAppelli.Assicurazione;
    import java.util.*;

    public class Prova extends Contratto{
    public static void main(String[]args){

    Veicolo v = new Veicolo("123456",new Date(3,Calendar.MARCH,1989),"Panda");
    Tariffa t = Tariffa.BonusMalus;

    Contratto a = new Contratto(v,t);
    }
    }
    mi da quest'errore:
    D:\java\poo\ProveAppelli\Assicurazione\Prova.java: 4: cannot find symbol
    symbol : constructor Contratto()
    location: class poo.ProveAppelli.Assicurazione.Contratto
    public class Prova extends Contratto{
    ^
    Note: D:\java\poo\ProveAppelli\Assicurazione\Prova.java uses or overrides a deprecated API.
    Note: Recompile with -Xlint:deprecation for details.
    1 error

    nn trova il costruttore...mi viene il dubbio visto il warning che abbia a che fare con i generici...è così?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: xkè nn trova il costruttore???

    Originariamente inviato da valerik87
    mi da quest'errore:
    D:\java\poo\ProveAppelli\Assicurazione\Prova.java: 4: cannot find symbol
    symbol : constructor Contratto()
    location: class poo.ProveAppelli.Assicurazione.Contratto
    public class Prova extends Contratto{
    ^
    La classe Prova l'hai derivata da Contratto (già... perché??) ma non hai definito nessun costruttore in Prova che richiama esplicitamente uno dei costruttori di Contratto. Visto che Contratto NON ha un costruttore no-arg, il costruttore di default in Prova che usa per default super() non trova il costruttore no-arg nella superclasse.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    ho derivato contratto proprio xkè volevo provare a vedere se funzionassero i suoi metodi!quindi praticamente tu mi stai dicendo che la classe prova nn trova il costruttore di default di contratto,per intenderci Contratto() senza parametri(che io nn ho inserito xkè nn esiste un contratto di default,cosa me ne farei?

    ho messo però un costruttore con parametri espliciti,che costruisci un contratto partendo da veicolo e tariffa:
    Contratto a = new Contratto(v,t);

    se invece metto il costruttore default funziona,xkè? nn capisco che lavoro faccia...

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da valerik87
    ho derivato contratto proprio xkè volevo provare a vedere se funzionassero i suoi metodi!quindi praticamente tu mi stai dicendo che la classe prova nn trova il costruttore di default di contratto,per intenderci Contratto() senza parametri(che io nn ho inserito xkè nn esiste un contratto di default,cosa me ne farei?
    Appunto ...

    Ma la questione è che se definisci che Prova estende Contratto, allora mi aspetterei che da qualche parte fai un new Prova(), cioè crei una istanza di Prova e poi ne usi i suoi metodi di istanza. Non vedo tutto questo. E comunque non so se avrebbe granché senso.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    mmm si giusto sottigliezza mia....ps riesci a risolvere il prob nell'altro mio post? ^^

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.