Superclasse/sottoclasse

di il
70 risposte

70 Risposte - Pagina 3

  • Re: Superclasse/sottoclasse

    Il polimorfismo andrebbe studiato prima ancora di accendere il PC. Un bel libro su Java, mi pare si chiami "Hands on Java" all'inizio dice:"Java, alla fine è: polimorfismo, polimorfismo e polimorfismo...".
  • Re: Superclasse/sottoclasse

    Il libro mi arriva settimana prossima
  • Re: Superclasse/sottoclasse

    Comunque a fare come hai suggerito, @Ansharja, vuol dire avere un'infinità di vettori lol
    andare a leggere il file ogni volta che creavo l'auto comportava la scrittura di molto molto meno codice
  • Re: Superclasse/sottoclasse

    KuroKami69 ha scritto:


    Il libro mi arriva settimana prossima

    KuroKami69 ha scritto:


    Comunque a fare come hai suggerito, @Ansharja, vuol dire avere un'infinità di vettori lol
    andare a leggere il file ogni volta che creavo l'auto comportava la scrittura di molto molto meno codice
    E quindi? Cosa pensi alla fine di fare?
  • Re: Superclasse/sottoclasse

    Bhe sono dannatamente combattuto. essendo un qualcosa che non esce dal mio pc, credo sia al 100% impossibile che il file possa essere cancellato, o che si possa verificare un qualsiasi altro problema di lettura. questo mi porterebbe a fare un lavoro magari meno "professionale" ma non essendo l'ambito, direi che ci potrebbe anche stare
    dall'altra mi seccherebbe non farlo fatto bene, ma l'idea di dover avere qualcosa come 14 vettori, mi fa sentire male. è anche vero che potrei utilizzare un unico vettore per categoria, e ci vado a mettere i valori di entrambi, ma pensandola professionalmente, se un giorno dovessi aggiungere o togliere valori, dovrei rimettere mano al codice e potrei incasinarlo.
    però onestamente voglio finirlo, quindi devo decidermi alla svelta. te cosa faresti @andbin?
  • Re: Superclasse/sottoclasse

    KuroKami69 ha scritto:


    te cosa faresti @andbin?
    Come lo farei io in generale ... sarebbe ovviamente diverso da come potresti/riusciresti a farlo tu. Ma senza andare in design troppo contorti, una prima cosa semplice da fare è una classe con metodi static per tirar su i dati per ciascun tipo di file.
    public class FileDati {
        private FileDati() {}
    
        public static List<String> leggiTipologie(File fileTipologie) {
            // .....
        }
    
        // .....altri metodi di lettura per gli altri tipi di file
    }
    Non è la cosa migliore ma neanche la peggiore.

    leggiTipologie è in grado di leggere sia Tipologia Automobili.txt che Tipologia Moto.txt. Il concetto/struttura è lo stesso in questi file, per questo basta 1 solo metodo.

    Poi questa FileDati la potresti usare in un'altra classe che si occupa solo di "generare" un veicolo. Che sarebbe quindi tutto da valutare.
  • Re: Superclasse/sottoclasse

    Quindi mi stai consigliando di mettere i file in una lista e poi di andarli a leggere? non ho ben capito uhm
    cioè sostanzialmente rendi la lista un metodo per la lettura?
  • Re: Superclasse/sottoclasse

    KuroKami69 ha scritto:


    Quindi mi stai consigliando di mettere i file in una lista e poi di andarli a leggere? non ho ben capito uhm
    cioè sostanzialmente rendi la lista un metodo per la lettura?
    Non ho capito cosa non dovrebbe essere chiaro ... qualcuno (da qualche altra parte) invocherà FileDati.leggiTipologie( ... ) passando un java.io.File (se vuoi puoi usare direttamente un String con il filename, non necessariamente File) per ottenere una lista delle tipologie che sono semplici stringhe.
  • Re: Superclasse/sottoclasse

    Che non ho mai visto una struttura simile, e quindi non capisco come dovrebbe funzionare. anzi mi sto solo confondendo sempre di più. non sono minimamente portato per programmare :/
  • Re: Superclasse/sottoclasse

    KuroKami69 ha scritto:


    Che non ho mai visto una struttura simile, e quindi non capisco come dovrebbe funzionare. anzi mi sto solo confondendo sempre di più.
    Perché non ha "basi" su Java. Quindi: libro java --> studio, studio, studio
  • Re: Superclasse/sottoclasse

    Ho deciso ahahaha
    questo progetto lo lascio com'è e cerco di far visualizzare i valori sulla tabella. quando ne saprò di più lo sistemerò ahahahah
  • Re: Superclasse/sottoclasse

    KuroKami69 ha scritto:


    quando ne saprò di più lo sistemerò
    Bene, allora attendiamo tue domande sul linguaggio Java ... perché se inizi a studiare seriamente sul libro sono quasi certo che ne avrai.
  • Re: Superclasse/sottoclasse

    Contaci. vi sommergerò di domande però cerca di essere meno tecnico per favore
  • Re: Superclasse/sottoclasse

    KuroKami69 ha scritto:


    però cerca di essere meno tecnico per favore
    Certo, nel limite del possibile. Però nella programmazione i "tecnicismi" ci sono, servono e vanno studiati.
  • Re: Superclasse/sottoclasse

    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?
Devi accedere o registrarti per scrivere nel forum
70 risposte