Ciao Edoardo! Intanto complimenti per il corso!! Volevo chiederti invece come fare se volessi mettere dinamicamente una collezione di stringhe o numeri nel costruttore , come hai scritto per i voti o le classi dell'insegnante ma dinamicamente , non so se mi sono spiegato bene
Ciao Edoardo! Anche io ti vorrei fare i complimenti per il corso e ne approfitto per chiederti se pensi di fare un corso anche su SpringBoot. Grazie e continua così! 💣
Ciao Edoardo, grazie per i tuoi video. Volevo chiederti se volessi aggiungere un tipo booleano nella classe che poi si manifesta nel metodo main come vero o falso, come potrei fare? esempio. Ho una superclasse Famiglia e una sottoclasse Figlia, nella Superclasse insieme a tutti gli attributi e metodi ho un booleano "conFigli" , quindi io vorrei che l ordine fosse : if conFigli allora metti a schermo "HO FIGLI" else "SENZA FIGLI". Non riesco a inserire il comando e non saprei nemmeno dove inserirlo, perche nel momento che metto tutto a schermo il booleano appare solo true o false. Non so se mi sono spiegata :D Puoi aiutarmi?
Ciao, mi viene un dubbio spontaneo. Ci possono essere più costruttore con lo stesso nome nella stesa classe? So che hai fatto il video sugli overloaded metods ma non mi è ben chiara questa cosa adesso che si aggiungono pure le "sottoclassi".
sì, ad esempio puoi avere sia il costruttore principale sia il costruttore di copia (che ti serve quando vuoi creare un'istanza di una classe come copia di un'altra istanza già esistente), per distinguerli basta che i due costruttori abbiano parametri differenti
Certo, basta che modifichi il numero e la tipologia di parametri che metti dentro il costruttore. Per esempio, puoi fare all'interno di una classe persona un costruttore del tipo: Persona(String nome, String cognome) come potresti fare un altro che accetta solo il nome o solo il cognome Persona (String nome) ecc
@@MartinByrdeCuriosity viene eseguito il costruttore in base a quanti parametri metti dentro quando lo crei. Se metti una sola stringa, allora il costruttore prenderà laddove c'è una sola stringa, altrimenti due e così via... Ad esempio, ritornando all'esempio di prima, se nella classe main fai Persona persona = new Persona("Luca") è diverso dal fare Persona persona = new Persona ("Luca", "Rossi") in quanto cambiano i valori che hai messo dentro, o, meglio dire, cambia il numero dei valori. Non c'è di chee
UHM, gli attributi , di una classe, non dovrebbero sempre essere privati? in questo caso, non sarebbe possibile richiamarli da altre classi, come si risolve questo problema?
devi creare due metodi all'interno della classe dove sono contenute le variabili private. Per esempio, facciamo finta di avere una classe Persona con dentro: private String nome; ovviamente, poiché privata, non potrai usare in altre classi liberamente la variabile nome. Quindi crei due metodi: il setter e il getter. (mi pare che Edoardo abbia fatto una lezione su ciò) fai String getNome() { return nome;} e String setNome() {this.nome =nome} così nella classe figlia, basta fare .getNome() o .setNome
volevo fare un'appunto, quando hai fatto l'esempio degli array di voti o gli array delle materie insegnate dalla prof., se io provo a mandarli a schermo con System.out.println(studente1.votiStoria); mi dà il risultato strano, come succedeva con le String prima di stanziare il metodo --> public String toString() {...} , per eliminare il problema della stampa. Se riesci a darmi una risposta mi faresti un favore. Grazie!
essendo un array non puó prendere un posto a caso e quindi ti stampa la posizione in memoria della prima cella dell'array. Devi specificare quale posizione stampare di esso
Molto utile,spiegazione ottimale
Ciao Edoardo! Intanto complimenti per il corso!!
Volevo chiederti invece come fare se volessi mettere dinamicamente una collezione di stringhe o numeri nel costruttore , come hai scritto per i voti o le classi dell'insegnante ma dinamicamente , non so se mi sono spiegato bene
"Certo mamma, sto studiando... eh!" 😂😂😂😂😂😂😂😂😂😂😂😂😂😂
Ciao Edoardo! Anche io ti vorrei fare i complimenti per il corso e ne approfitto per chiederti se pensi di fare un corso anche su SpringBoot. Grazie e continua così! 💣
yes, se riesco è in programma quest'anno
Ciao Edoardo, grazie per i tuoi video. Volevo chiederti se volessi aggiungere un tipo booleano nella classe che poi si manifesta nel metodo main come vero o falso, come potrei fare? esempio. Ho una superclasse Famiglia e una sottoclasse Figlia, nella Superclasse insieme a tutti gli attributi e metodi ho un booleano "conFigli" , quindi io vorrei che l ordine fosse : if conFigli allora metti a schermo "HO FIGLI" else "SENZA FIGLI". Non riesco a inserire il comando e non saprei nemmeno dove inserirlo, perche nel momento che metto tutto a schermo il booleano appare solo true o false. Non so se mi sono spiegata :D Puoi aiutarmi?
Ciao, mi viene un dubbio spontaneo. Ci possono essere più costruttore con lo stesso nome nella stesa classe? So che hai fatto il video sugli overloaded metods ma non mi è ben chiara questa cosa adesso che si aggiungono pure le "sottoclassi".
sì, ad esempio puoi avere sia il costruttore principale sia il costruttore di copia (che ti serve quando vuoi creare un'istanza di una classe come copia di un'altra istanza già esistente), per distinguerli basta che i due costruttori abbiano parametri differenti
Certo, basta che modifichi il numero e la tipologia di parametri che metti dentro il costruttore. Per esempio, puoi fare all'interno di una classe persona un costruttore del tipo:
Persona(String nome, String cognome)
come potresti fare un altro che accetta solo il nome o solo il cognome
Persona (String nome)
ecc
@@fedehxx730 Ciao, innanzitutto grazie per la risposta, ma in questo caso quale costruttore viene eseguito? Entrambi?
@@MartinByrdeCuriosity viene eseguito il costruttore in base a quanti parametri metti dentro quando lo crei. Se metti una sola stringa, allora il costruttore prenderà laddove c'è una sola stringa, altrimenti due e così via... Ad esempio, ritornando all'esempio di prima, se nella classe main fai Persona persona = new Persona("Luca")
è diverso dal fare Persona persona = new Persona ("Luca", "Rossi") in quanto cambiano i valori che hai messo dentro, o, meglio dire, cambia il numero dei valori.
Non c'è di chee
Ma se per esempio volessi ereditare solo il cognome, basterebbe scrivere super(cognome)?
UHM, gli attributi , di una classe, non dovrebbero sempre essere privati? in questo caso, non sarebbe possibile richiamarli da altre classi, come si risolve questo problema?
devi creare due metodi all'interno della classe dove sono contenute le variabili private. Per esempio, facciamo finta di avere una classe Persona con dentro:
private String nome;
ovviamente, poiché privata, non potrai usare in altre classi liberamente la variabile nome.
Quindi crei due metodi: il setter e il getter. (mi pare che Edoardo abbia fatto una lezione su ciò)
fai String getNome() { return nome;}
e String setNome() {this.nome =nome}
così nella classe figlia, basta fare .getNome() o .setNome
ti prego fatti assumere al corni perché sei meglio dei nostri insegnanti
no dai voglio fare impresa che ho tante idee da sviluppare 😎
volevo fare un'appunto, quando hai fatto l'esempio degli array di voti o gli array delle materie insegnate dalla prof., se io provo a mandarli a schermo con System.out.println(studente1.votiStoria); mi dà il risultato strano, come succedeva con le String prima di stanziare il metodo --> public String toString() {...} , per eliminare il problema della stampa.
Se riesci a darmi una risposta mi faresti un favore.
Grazie!
[I@48140564 ---> questo è il risultato che mi esce
Perché devi mettere la posizione dello studente all'interno dell'array, non il nome dell'oggetto, (Es. studenti[0].votiStoria)
essendo un array non puó prendere un posto a caso e quindi ti stampa la posizione in memoria della prima cella dell'array. Devi specificare quale posizione stampare di esso