Chiaramente
ascolta una cosa, ho appena finito di aggiustare il mio progettino facendo quel discorso della classe per leggere i file...
ora ho il costruttore di veicolo
public Veicolo()
{
this.stato = setStatoRandom();
this.marca = "";
this.modello = "";
this.tipologia = "";
this.km = 0;
this.annoImmatricolazione = "non immatricolata";
this.scadenzaBollo = " ";
this.prezzo = 0;
this.targa = "non ancora immatricolata";
if (stato.equals("usata")) //attributi solo per le auto usate
{
this.km = setKm();
this.annoImmatricolazione = setAnnoImmatricolazione();
this.scadenzaBollo = " ";//setScadenzaBollo(annoImmatricolazione);
this.prezzo = Math.round(prezzo/2);
this.targa = setTarga();
}
this.rapportoPesoPotenza = 0;
this.cavalli = 0;
this.massaVuoto = 0;
this.cambio = setCambio();
this.marce = setMarce();
this.motore = setMotore();
this.colore = setColore();
this.cilindrata = 0;
this.cilindri = cl[rnd.nextInt(3)];
this.consumo = 0;
}
che mi prende tutti i valori comuni tra auto e moto
poi ho il costruttore di auto
public Automobili(String marca, String modello, String tipologia, int prezzo, int cavalli, int massaVuoto, int cilindrata, int consumo)
{
super (stato, marca, modello, tipologia, km, annoImmatricolazione, scadenzaBollo, prezzo, targa, rapportoPesoPotenza, cavalli, massaVuoto, cambio, marce, motore, colore, cilindrata, cilindri, consumo);
if (tipologia.equals("station wagon"))
bagagliaio = setBagagliaio();
else if (tipologia.equals("supersport"))
rapportoPesoPotenza = setRapportoPp(massaVuoto, cavalli);
else if (tipologia.equals("city car"))
lunghezza = setLunghezza();
else if (tipologia.equals("suv"))
altezzaTerra = setAltezzaTerra();
else if (tipologia.equals("cabrio"))
tettuccio = setTettuccio();
trazione = setTrazione();
nPosti = setPosti();
nPortiere = setPortiere();
}
però quando compilo mi genera diversi errori
.\Automobili.java:99: error: cannot reference stato before supertype constructor
has been called
super (stato, marca, modello, tipologia, km, annoImmatricolazion
e, scadenzaBollo, prezzo, targa, rapportoPesoPotenza, cavalli, massaVuoto, cambi
o, marce, motore, colore, cilindrata, cilindri, consumo);
^
.\Automobili.java:99: error: cannot reference km before supertype constructor ha
s been called
super (stato, marca, modello, tipologia, km, annoImmatricolazion
e, scadenzaBollo, prezzo, targa, rapportoPesoPotenza, cavalli, massaVuoto, cambi
o, marce, motore, colore, cilindrata, cilindri, consumo);
^
.\Automobili.java:99: error: cannot reference annoImmatricolazione before supert
ype constructor has been called
super (stato, marca, modello, tipologia, km, annoImmatricolazion
e, scadenzaBollo, prezzo, targa, rapportoPesoPotenza, cavalli, massaVuoto, cambi
o, marce, motore, colore, cilindrata, cilindri, consumo);
^
.\Automobili.java:99: error: cannot reference scadenzaBollo before supertype con
structor has been called
super (stato, marca, modello, tipologia, km, annoImmatricolazion
e, scadenzaBollo, prezzo, targa, rapportoPesoPotenza, cavalli, massaVuoto, cambi
o, marce, motore, colore, cilindrata, cilindri, consumo);
^
.\Automobili.java:99: error: cannot reference targa before supertype constructor
has been called
super (stato, marca, modello, tipologia, km, annoImmatricolazion
e, scadenzaBollo, prezzo, targa, rapportoPesoPotenza, cavalli, massaVuoto, cambi
o, marce, motore, colore, cilindrata, cilindri, consumo);
^
.\Automobili.java:99: error: cannot reference rapportoPesoPotenza before superty
pe constructor has been called
super (stato, marca, modello, tipologia, km, annoImmatricolazion
e, scadenzaBollo, prezzo, targa, rapportoPesoPotenza, cavalli, massaVuoto, cambi
o, marce, motore, colore, cilindrata, cilindri, consumo);
^
.\Automobili.java:99: error: cannot reference cambio before supertype constructo
r has been called
super (stato, marca, modello, tipologia, km, annoImmatricolazion
e, scadenzaBollo, prezzo, targa, rapportoPesoPotenza, cavalli, massaVuoto, cambi
o, marce, motore, colore, cilindrata, cilindri, consumo);
^
.\Automobili.java:99: error: cannot reference marce before supertype constructor
has been called
super (stato, marca, modello, tipologia, km, annoImmatricolazion
e, scadenzaBollo, prezzo, targa, rapportoPesoPotenza, cavalli, massaVuoto, cambi
o, marce, motore, colore, cilindrata, cilindri, consumo);
^
.\Automobili.java:99: error: cannot reference motore before supertype constructo
r has been called
super (stato, marca, modello, tipologia, km, annoImmatricolazion
e, scadenzaBollo, prezzo, targa, rapportoPesoPotenza, cavalli, massaVuoto, cambi
o, marce, motore, colore, cilindrata, cilindri, consumo);
^
.\Automobili.java:99: error: cannot reference colore before supertype constructo
r has been called
super (stato, marca, modello, tipologia, km, annoImmatricolazion
e, scadenzaBollo, prezzo, targa, rapportoPesoPotenza, cavalli, massaVuoto, cambi
o, marce, motore, colore, cilindrata, cilindri, consumo);
^
.\Automobili.java:99: error: cannot reference cilindri before supertype construc
tor has been called
super (stato, marca, modello, tipologia, km, annoImmatricolazion
e, scadenzaBollo, prezzo, targa, rapportoPesoPotenza, cavalli, massaVuoto, cambi
o, marce, motore, colore, cilindrata, cilindri, consumo);
^
.\Automobili.java:99: error: constructor Veicolo in class Veicolo cannot be appl
ied to given types;
super (stato, marca, modello, tipologia, km, annoImmatricolazion
e, scadenzaBollo, prezzo, targa, rapportoPesoPotenza, cavalli, massaVuoto, cambi
o, marce, motore, colore, cilindrata, cilindri, consumo);
^
required: no arguments
found: String,String,String,String,int,String,String,int,String,double,int,int
,String,int,String,String,int,int,int
reason: actual and formal argument lists differ in length
12 errors
mi pare di capire che se ad automobili passo 7 argomenti, allora quando richiamo il super dentro al costruttore, devo chiamare 7 elementi, giusto? altrimenti devo passarne al costruttore di automobili tanti quanti ne ho in super, o mi sbaglio?