Superclasse/sottoclasse

di il
70 risposte

70 Risposte - Pagina 5

  • Re: Superclasse/sottoclasse

    KuroKami69 ha scritto:


    Però a questo punto scusa, se non posso referenziare alcune variabili nel costruttore di veicolo, vuol dire che gli devo passare tutti i valori da automobile...
    Ma allora ... non hai proprio ancora compreso!!

    RIVEDI l'esempio Veicolo/Automobile qui

    La classe Veicolo ha un tot di campi e relativi metodi getter/setter. Veicolo PUO' avere (e nell'esempio c'è) un costruttore che riceve quei dati e li assegna ai campi. Stop, punto.

    La sottoclasse Automobile PUO' avere campi IN PIU' rispetto alla superclasse, con i relativi metodi getter/setter per questi SUOI campi. E PUO' avere (e nell'esempio c'è) un costruttore che riceve tutti i dati di interesse. Quelli di competenza di Automobile li usa per sé per inizializzare i SUOI campi. Quelli non di competenza di Automobile li passa al super-costruttore. Stop, punto.

    Cosa NON è chiaro di questo concetto?
  • Re: Superclasse/sottoclasse

    Aspetta ma io sono totalmente pirla però...
    super () è una chiamata al costruttore. posso metterci dentro tutti gli attributi che voglio, nel costruttore, e passare solo tot argomenti....
    per dire il mio costruttore
    
    public Veicolo(String marca, String modello, String tipologia, int prezzo, int cavalli, int massaVuoto, int cilindrata, int consumo)
    	{
    		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;
    		
    	}
    
    può anche essere solo così e quando lo richiamo in veicolo con super, posso passargli solo quei parametri.
    ora vorrei proprio sapere perché diamine stavo facendo tutto questo casino quando la risposta l'ho sempre avuta
  • Re: Superclasse/sottoclasse

    KuroKami69 ha scritto:


    Aspetta ma io sono totalmente pirla però...
    No ... ti mancano solo le "basi" ....

    KuroKami69 ha scritto:


    per dire il mio costruttore
    
    public Veicolo(String marca, String modello, String tipologia, int prezzo, int cavalli, int massaVuoto, int cilindrata, int consumo)
    
    Se questo è il costruttore di Veicolo, nella sottoclasse la invocazione super( ..... ) DEVE avere esattamente questi tot argomenti e con questi tipi/significati (la marca, il modello, ecc...). Poi cosa la sottoclasse passa, se valori costanti, valori ricevuti da un suo costruttore, altro, a Veicolo NON importa.
  • Re: Superclasse/sottoclasse

    Nono non è un discorso di mancanza.
    questa cosa non mi era venuta minimamente in mente, non so per quale motivo, mi è scattata la molla solo mentre scrivevo la risposta, ogni tanto capita che faccio delle cose senza rendermene conto oppure che dimentico cosa ho fatto 1 minuto prima... e non parlo solo di programmazione purtroppo
    @EDIT
    per esempio una volta stavo scrivendo degli appunti di informatica, a casa, e mi è uscito che le matrici possono essere anche così: matrice[][][][][]
    non ho la minima idea di come mi sia uscita questa castronata spaziale, e quando ci ho riguardato un paio di giorni dopo sono tipo sbiancato per questo orrore, non me ne ero minimamente reso conto quando l'ho scritta quella roba
  • Re: Superclasse/sottoclasse

    Comunque alla fine della fiera, funziona
    lo ripeterò all'infinito, so che non è un lavoro professionale, manca di eleganza e di logica, ma per ora va bene così, devo solo fare un ultimo metodino che mi controlla la scadenza del bollo, ma non è argomento di questo thread
  • Re: Superclasse/sottoclasse

    KuroKami69 ha scritto:


    [...]
    
    public Veicolo(String marca, String modello, String tipologia, int prezzo, int cavalli, int massaVuoto, int cilindrata, int consumo)
    	{
    		this.stato = setStatoRandom();
    		this.marca = "";
    		this.modello = "";
    		this.tipologia = "";
    		[....]
    	}
    
    Il costruttore può ricevere certamente anche solo quei valori. Però non ha senso che tu riceva dei valori in ingresso come marca, modello, tipologia, e poi non li setti all'istanza che crei, ma setti invece dei valori di default.
    A quel punto fai un costruttore con meno argomenti no?
  • Re: Superclasse/sottoclasse

    Ansharja ha scritto:


    KuroKami69 ha scritto:


    [...]
    
    public Veicolo(String marca, String modello, String tipologia, int prezzo, int cavalli, int massaVuoto, int cilindrata, int consumo)
    	{
    		this.stato = setStatoRandom();
    		this.marca = "";
    		this.modello = "";
    		this.tipologia = "";
    		[....]
    	}
    
    Il costruttore può ricevere certamente anche solo quei valori. Però non ha senso che tu riceva dei valori in ingresso come marca, modello, tipologia, e poi non li setti all'istanza che crei, ma setti invece dei valori di default.
    A quel punto fai un costruttore con meno argomenti no?
    difatti avevo sbagliato io ahahaha tipo mi trovavo la tabella con 8 colonne bianche ahahahaha
    ci ho messo mezzoretta per arrivarci ma alla fine ce l'ho fatta (pensavo fosse un problema dei metodi)
  • Re: Superclasse/sottoclasse

    KuroKami69 ha scritto:


    mi è uscito che le matrici possono essere anche così: matrice[][][][][]
    Gli array possono essere multi-dimensionali.
  • Re: Superclasse/sottoclasse

    andbin ha scritto:


    KuroKami69 ha scritto:


    mi è uscito che le matrici possono essere anche così: matrice[][][][][]
    Gli array possono essere multi-dimensionali.
    si ma di 3 dimensioni massimo no? non credo possa esserci un array a 6 dimensioni mmh o si?
  • Re: Superclasse/sottoclasse

    KuroKami69 ha scritto:


    si ma di 3 dimensioni massimo no? non credo possa esserci un array a 6 dimensioni mmh o si?
    No, tecnicamente un numero qualunque di dimensioni. Uno o due dimensioni sono molto frequenti. Tre dimensioni è più raro ma è possibile in ambiti matematici/scientifici un po' specifici. Più di tre dimensioni è moooooolto raro e bisogna proprio impegnarsi per trovare un ambito di applicabilità.


    P.S. apri prima o poi quel libro Java ... sennò ad un certo punto mi metto a piangere ...
  • Re: Superclasse/sottoclasse

    Ah ok
Devi accedere o registrarti per scrivere nel forum
70 risposte