‫Ben tornato.
‫In questo video, vorrei mostrarti le proprietà e insegnarti come funzionano le proprietà e perché un video sarebbe troppo
‫lungo e ho creato un video in passato sulle proprietà ed era un po' troppo confuso come
‫sembrava.
‫Ho deciso di scomporlo e registrarlo nuovamente perché non era abbastanza buono, come sembra.
‫Quindi, se trovi un altro video che è totalmente confuso e non ti aiuta affatto, per favore
‫fammelo sapere, perché voglio che questo corso sia il miglior corso in circolazione.
‫Va bene.
‫Quindi quello che dobbiamo fare è, prima di tutto, creare una nuova classe.
‫Quindi andiamo al progetto e aggiungiamo una nuova classe, perché voglio insegnarti i fondamenti delle proprietà
‫perché sono un aspetto importante o un concetto importante che useremo molto.
‫Ecco perché è davvero importante che tu ne capisca l'intera portata.
‫OK, quindi iniziamo creando una nuova classe e chiamerò questa classe box.
‫Va bene.
‫Quindi sii una classe molto semplice.
‫Quindi questa classe box sarà solo una classe che ha una certa quantità di variabili.
‫Va bene.
‫Quindi, ad esempio, voglio solo calcolare il volume della scatola in base alla sua lunghezza, altezza e
‫con.
‫Va bene, quindi creiamo quelle variabili e le renderò pubbliche per ora.
‫Va bene.
‫Farò questo una lunghezza pubblica poi un'altra.
‫E questa sarà l'altezza e poi ci servirà la larghezza.
‫E infine voglio avere anche il volume, così il volume sarà il risultato finale di questa scatola.
‫Va bene.
‫Quindi ora ho un sacco di variabili.
‫Ora, quelle variabili non sono variabili semplici.
‫Sono, infatti, variabili membro, il che significa che sono le variabili a livello della classe in questo
‫caso della scatola della classe.
‫Quindi hanno un impatto diretto sull'intero aspetto della scatola o sull'intera struttura di una scatola, per così dire.
‫Va bene.
‫E vedremo come possiamo usare le variabili membro in un modo diverso o anche una struttura diversa, che è ancora
‫più sicura, perché il problema qui è che sono pubbliche, quindi non sono sicure.
‫Vedremo come possiamo risolvere questo problema.
‫Quindi, prima di tutto, andiamo avanti e creiamo un nuovo metodo qui.
‫E chiamerò solo questa informazione di visualizzazione, perché l'idea alla base è che mostrerà
‫solo la lunghezza, con l'altezza, e poi calcolerà il volume e ci dirà quanto è grande il volume.
‫Va bene.
‫Scriverò solo una breve dichiarazione sulla riga di destra.
‫Quindi inserisco un doppio tocco, che crea questa istruzione sulla riga di destra della console qui per me.
‫E qui, dirò solo qualcosa come la lunghezza sarà la prima voce e l'altezza.
‫Sarà la seconda entrata.
‫Quindi lo userò così.
‫E con è quella terza voce.
‫Quindi il volume è e poi ho la quarta voce.
‫Va bene.
‫Quindi questa è la mia intera dichiarazione sulla linea di guida.
‫E poi le variabili che voglio usare sono l'altezza della lunghezza.
‫Insieme a.
‫E il volume ora è qualcosa che devo calcolare in base a lunghezza, altezza e larghezza.
‫Quindi ho intenzione di farlo.
‫Dirò solo che il volume è la lunghezza moltiplicata per l'altezza moltiplicata per la larghezza.
‫In questo modo si crea questo volume o si calcola il volume, poiché il volume è il risultato di questo calcolo qui,
‫allungare i tempi laterali dove sarà il volume.
‫Va bene.
‫Quindi ora lascia che lo divida in due righe in modo che sia un po' più leggibile.
‫Va bene.
‫Quindi ora abbiamo questo metodo, questo aereo per ora.
‫Andiamo avanti e salviamo questo file e andiamo al nostro programma.
‫Sì.
‫Qui useremo questa classe.
‫Creeremo un oggetto di questa classe.
‫Come creiamo gli oggetti?
‫Bene.
‫Quindi ne creo un nuovo oggetto, la chiamerò una scatola e sarà una nuova scatola.
‫Quindi è così che crei un oggetto di una classe o un'istanza di una classe.
‫Quindi sto creando un'istanza di questa casella di classe.
‫Quindi praticamente una variabile di tipo box e box che abbiamo creato noi stessi.
‫Ora, quello che posso fare è assegnargli i valori così
‫posso andare avanti e dire, OK, la lunghezza sarà tre, poi l'altezza sarà quattro e il con sarà cinque, qualcosa come quello.
‫Naturalmente, anche qui ho bisogno di un segno di uguale affinché questo sia corretto.
‫Ora quello che posso fare è andare avanti e avviare la casella di chiamata.
‫Queste informazioni sul gioco, quindi è piuttosto interessante.
‫Non ho più bisogno di questa dichiarazione di linea brillante qui.
‫Ora posso salvare questo file ed eseguirlo.
‫Quindi eseguiamo questo file e visualizzerà tutte le informazioni e la console.
‫Quindi eccoci qua, Lenfest è libero e Hyde è per e con i suoi cinque, quindi il volume è 16.
‫Va bene, quindi ha funzionato.
‫È fantastico.
‫Quindi questa informazione sul display ha funzionato e riproduceva solo i dettagli che volevamo.
‫Ora, quello che potremmo fare è cambiare i valori o cosa possiamo cambiare i valori delle variabili membro
‫della nostra classe box, e possiamo farlo perché sono pubbliche.
‫Destra.
‫Quindi questo è pubblico.
‫Questo è pubblico.
‫Anche questo è pubblico.
‫Quindi sono tutti pubblici.
‫Ora, questo è un codice molto insicuro perché a questo punto, se scrivi robot membri, che sono totalmente pubblici, tutti
‫possono cambiarli in qualsiasi momento.
‫Quindi chiunque possa creare un oggetto o ogni classe che possa creare un oggetto di box sarà
‫in grado di modificare tutti quei valori di quell'istanza di box.
‫Quindi tutti coloro che avevano accesso a questa casella possono cambiarla ora.
‫E questo è qualcosa che può causare molti problemi più avanti, proprio quando si programma e un team e uno
‫staff possono davvero diventare ingombranti da fare in questo modo.
‫Quindi ci sono modi migliori, ci sono modi più puliti per implementarlo, perché forse non vuoi che questo
‫sia a lungo regolabile.
‫Forse vuoi che la lunghezza abbia un certo valore.
‫Nessuno può regolarlo.
‫Allora quello che potresti fare è fare questo.
‫Molto privato, quindi la mia lunghezza variabile del membro sarà privata e gli assegnerò solo un valore predefinito
‫di tre.
‫Quindi ora ogni scatola che creo avrà il valore per la lunghezza di tre.
‫Quindi ogni scatola avrà una lunghezza di tre pollici o metri o qualunque sia la metrica che stai usando.
‫Quindi ora non posso più assegnare la lunghezza.
‫Quindi vedi, ricevo una finestra di errore come questa inaccessibile a causa del suo livello di protezione.
‫Quindi abbiamo aggiunto il livello di protezione rendendolo privato.
‫Quindi ora non possiamo più regolarlo.
‫Quindi come possiamo ancora cambiarlo?
‫Beh, non possiamo, non in questo modo.
‫Quindi dobbiamo implementare qualcosa.
‫Dobbiamo implementare un modo alternativo per modificare la lunghezza della scatola.
‫Va bene.
‫Per fare ciò, quello che possiamo fare è implementare qualcosa chiamato setter e getter.
‫Quindi, in questo caso, non possiamo nemmeno più accedere alla lunghezza della scatola.
‫Quindi diciamo che voglio scrivere la lunghezza.
‫Quindi voglio consultare la giusta lunghezza della casella di riga e quindi accedere alla lunghezza della casella.
‫Come puoi vedere, il mio ID non mi mostra nemmeno la variabile.
‫Non riesco ad accedere alla casella di quella lunghezza, quindi non posso cambiarla, ma non posso nemmeno leggerla.
‫Va bene.
‫Quindi non posso né ottenerlo né impostarlo.
‫Quindi questo è l'impostazione e questo è ottenere la variabile.
‫Questi sono termini molto importanti per impostare e ottenere, perché ora quello che possiamo fare è creare metodi
‫nella nostra classe box, che ci permetterà di impostare o ottenere la lunghezza variabile.
‫Quindi facciamolo.
‫Creiamo un.
‫Setar, così pubblico.
‫Voight imposta la lunghezza, quindi questo verbale imposterà la lunghezza ora, a cosa lo imposterà?
‫Bene, ha bisogno di una variabile o di un parametro qui.
‫Ha bisogno di un valore qui su cui può essere impostato.
‫Quindi sta per succedere.
‫Ho bisogno di un numero intero qui, e lo chiamerò solo una lunghezza.
‫Quindi ora imposterà la lunghezza, io imposterò la lunghezza, uguale lunghezza.
‫Ora questo è confuso ed è anche errato.
‫Quindi ricevo un avvertimento qui.
‫Non ottieni nemmeno un errore qui, perché come puoi vedere, i colori sono diversi.
‫Destra?
‫Quindi questo colore e quel colore sono leggermente diversi.
‫Questo è questo colore molto chiaro e questo è un colore blu più scuro.
‫Allora cosa sta succedendo qui?
‫Perché stiamo usando la stessa parola qui stava usando la lunghezza qui.
‫Usiamo la lunghezza e qui, anche qui.
‫Quindi questa lunghezza qui è in realtà questa o dovrebbe essere questa lunghezza qui in alto.
‫Quindi, se voglio farlo correttamente, posso usare questa parola chiave.
‫Così facendo, dico, OK, voglio cambiare la lunghezza, che è.
‫Parti.
‫Di questa classe chiamata box, quindi voglio cambiare la lunghezza di questo oggetto.
‫OK, quindi in questo caso dell'oggetto che viene creato della casella di classe.
‫Va bene.
‫Quindi qualunque sia la lunghezza che mi viene assegnata, quindi qualunque sia la lunghezza passata, una lunghezza impostata viene
‫chiamata questo metodo sarà.
‫Questa variabile qui, e sarà impostata sulla lunghezza, che è la mia variabile membro privata della mia scatola,
‫è molto importante perché quello che posso fare ora è che ora posso andare avanti e modificare la
‫lunghezza della scatola così facendo set lunghezza.
‫Posso anche impostare la lunghezza, ad esempio, su tre e ora eseguire di nuovo il codice e funzionerà
‫perfettamente.
‫E vediamo, va bene, siamo liberi di lunghezza, idrosfera e così via.
‫Bene, ora diciamo che non voglio averne tre perché era il valore predefinito.
‫Ora, diciamo che voglio avere la lunghezza per e ora possiamo vedere che funziona e anche il volume è stato
‫regolato.
‫Quindi ha funzionato anche per il calcolo.
‫Quindi è fantastico.
‫Quindi ora possiamo impostare una variabile, che è una variabile membro di una classe.
‫Quindi è importante.
‫Stiamo parlando di una classe diversa.
‫Non è nella stessa classe.
‫Ora, quello che possiamo fare è provare ad accedere a questa lunghezza perché è privata.
‫Destra?
‫Quindi come potrei accedervi?
‫Perché forse ho davvero bisogno di questa variabile qui da qualche parte.
‫Voglio accedere alla lunghezza, ma non posso farlo.
‫Quindi quello che posso implementare è qualcosa chiamato GETER.
‫Quindi ottengo la lunghezza pubblica.
‫E in questo caso, il tipo deve essere lo stesso tipo della variabile che voglio restituire.
‫E in questo caso, voglio restituire il valore di questa lunghezza in cui voglio restituire la lunghezza stessa.
‫Destra.
‫Quindi è di tipo end.
‫Quindi ho bisogno di restituire un tipo di fine per questo metodo.
‫Quindi questo sarà ottenere la lunghezza.
‫E questa è anche la convenzione per usare il nome get con la G maiuscola e poi il nome della variabile che
‫vuoi ottenere.
‫E in questo caso, voglio ottenere la lunghezza variabile e ora restituisci solo la lunghezza.
‫Ora, per essere più precisi, restituisci questa lunghezza.
‫Certo, potresti farlo solo per quella lunghezza.
‫Ma quando aggiungi questo, è perfettamente chiaro che stiamo parlando della variabile membro qui.
‫Quindi stiamo parlando della variabile che si trova al livello più alto di questa classe.
‫Quindi non è all'interno di alcun metodo o giù di lì.
‫Non potresti nemmeno accedervi in questo modo.
‫Ma qui è di questa lunghezza particolare che stiamo parlando.
‫Quindi, se ci clicco sopra, puoi vedere il mio I. D. lo contrassegna automaticamente.
‫E segna anche questa lunghezza qui in basso.
‫Quindi ora posso ottenere la lunghezza usando get length usando questo metodo pubblico ed è importante che sia pubblico
‫perché se non fosse pubblico, non potrei accedervi.
‫Quindi, in questo caso, sto salvando di nuovo la casella e ora sto ottenendo la lunghezza chiamando questo metodo get length
‫e ora funziona di nuovo all'improvviso.
‫Quindi ora posso andare avanti.
‫Ed ovviamente.
‫Anche qui correttamente, length ed eseguiamolo di nuovo, e dirà che la lunghezza della casella è e
‫in questo caso è quattro.
‫Va bene, quindi questa è solo la preparazione per le proprietà, ma è un concetto importante, setter e
‫getter.
‫Questo è qualcosa che vedrai anche tu un bel po'.
‫Quindi è un approccio assolutamente perfetto, ma ci sono approcci molto più facili e veloci.
‫Quindi questo è solo un modo per farlo.
‫Ma ti mostrerò altri due o anche tre modi per renderlo ancora più veloce e per avere lo stesso
‫tipo di protezione, perché quello che stiamo facendo qui si chiama incapsulamento.
‫Quindi stiamo incapsulando l'eccesso della nostra lunghezza.
‫La definizione di è che l'incapsulamento si riferisce alla costruzione di dati con i metodi che operano
‫su tali dati o alla limitazione dell'accesso diretto ad alcuni componenti di un oggetto.
‫Quindi è esattamente quello che stiamo facendo.
‫Stiamo limitando l'accesso a questo componente chiamato length, che fa parte di un oggetto o della nostra casella di classe
‫di cui possiamo creare oggetti.
‫Va bene.
‫E creiamo questi setter e getter per regolarli ancora.
‫Ora, il bello è che puoi definire come vuoi incapsulare.
‫In questo caso, li ho resi pubblici entrambi.
‫Ma cosa succede se non voglio che siano pubblici?
‫E se voglio che sia così.
‫Non adatto, quindi diciamo che non voglio che nessuno sia in grado di impostare la lunghezza della mia scatola, quindi quello che
‫potrei fare è rendere privato questo.
‫Quindi solo ora.
‫Le classi che ereditano dal nostro box o dal box stesso potranno impostare la lunghezza dall'esterno, noi non potremo
‫più impostare la lunghezza.
‫Quindi, impostando la lunghezza qui, questa riga di codice non funziona più perché ho deciso, OK, se
‫qualcuno vuole impostare la lunghezza, volevo essere solo la classe stessa o ereditare le classi, ma non le classi al di fuori
‫di me.
‫Questo è qualcosa che puoi modificare direttamente da qui, potresti anche dire, OK, anche ottenere la lunghezza
‫non sarebbe consentito al di fuori di qui.
‫Va bene.
‫Ma ora la cosa bella è che puoi andare avanti e aggiustarli.
‫Quindi diciamo che qualcuno vuole ottenere il volume.
‫E ora, a questo punto, non abbiamo ancora impostato il volume.
‫Quindi quello che possiamo fare invece, possiamo andare avanti e dire public int get volume.
‫E se qualcuno vuole ottenere il volume, non solo restituiremo il volume, ma quello che
‫faremo è tornare.
‫Questa lunghezza iniziale moltiplicata con questo pensiero, l'altezza moltiplicata con questo pensiero con quindi se qualcuno vuole ottenere
‫il volume, non otterrà il volume direttamente.
‫Quindi non accedere direttamente a questa variabile.
‫Questa variabile di volume.
‫Ma in realtà otterranno il risultato del calcolo.
‫Quindi ora se salvo questo e invece vado avanti e qui uso ottieni volume, allora il volume delle scatole è e ora visualizzerà
‫il volume della scatola.
‫Quindi vediamo, box, questo volume è 60.
‫Quindi ora, in generale, quello che facciamo con questi setter e getter è
‫che non diamo accesso direttamente alla variabile, alla variabile membro, ma diamo solo accesso a un metodo che
‫quindi può regolare la variabile e possiamo decidere noi stessi come passiamo questo valore.
‫Quindi, come distribuiamo il valore in questo caso con un grande volume, abbiamo deciso, OK, non vogliamo darti il
‫volume stesso, ma vogliamo darti il risultato di un calcolo.
‫Oppure potremmo dire, OK, se qualcuno vuole ottenere il volume, diremo che
‫sarà volume per due o qualcosa del genere, o se qualcuno vuole impostare la lunghezza ed è qualcosa di negativo.
‫Quindi diciamo che lo rendiamo di nuovo pubblico, la voce pubblica a lungo e ora controlliamo due volte se.
‫Lunghezza.
‫È inferiore a zero.
‫Verrà generato un errore, verrà generata una nuova dimensione dell'eccezione o questa lunghezza deve essere maggiore di zero.
‫Va bene.
‫Quindi, se la lunghezza è inferiore a zero, viene lanciata un'eccezione e questo bloccherà il nostro programma in modo che questa riga
‫non venga mai eseguita.
‫Quindi ora proviamo questo.
‫Andiamo al nostro programma e impostiamo la lunghezza della nostra casella su un valore negativo.
‫Impostiamolo a meno quattro.
‫Ora lo eseguiamo di nuovo e vedremo che otteniamo un'eccezione.
‫Quindi il nostro programma si blocca e otteniamo un'eccezione qui dicendo.
‫Sistema, la lunghezza eccezionale deve essere maggiore di zero.
‫Quindi vedi, con l'eccezione generata, possiamo lanciare le nostre eccezioni.
‫Possiamo anche dire cosa dovrebbero dire le eccezioni.
‫E dovrebbe essere significativo.
‫Dovrebbe essere qualcosa che è utile e chiarisce qual è l'errore.
‫In questo caso, abbiamo creato un errore perché abbiamo impostato la lunghezza su qualcosa che è minore di zero.
‫Va bene.
‫Quindi questo è il potere di questi setter e getter, perché potresti chiederti, perché avrei bisogno di quei
‫setter e prenderci?
‫Perché non posso semplicemente accedere direttamente alla lunghezza se ho solo setter e ottengo anche io?
‫Ora lo vedi, puoi decidere attivamente cosa verrà impostato e cosa otterrai se qualcuno tenta di
‫accedere a questa variabile e modificarla o anche semplicemente recuperarla.
‫Va bene, quindi questo è stato molto più lungo di quanto mi aspettassi e stavo pianificando di
‫fare questo video, ma volevo davvero chiarire tutto perché questo sarà un importante trampolino
‫di lancio per il prossimo concetto, che sarà proprietà.
‫Quindi vedrai come possiamo riassumere tutto questo o renderlo molto più breve usando le proprietà.
‫Quindi direi di passare al prossimo video in cui vedremo come utilizzare le proprietà e come si relazionano
‫a ciò che abbiamo appreso in questo video.
‫Spero che abbia senso.
‫Se avete domande, per favore fatemelo sapere.
‫E sì, basta scrivere un commento e, naturalmente, discussioni.
‫E comunque, grazie mille per tutti coloro che danno feedback, perché mi aiuta davvero a
‫migliorare il corso se lo guardi solo passivamente, perché va benissimo.
‫Ma apprezzo davvero che tu abbia un feedback ed è costruttivo e mi aiuta davvero a sapere a che punto qualcosa
‫non è chiaro, perché se dici semplicemente, OK, questo video è una completa spazzatura, quindi non
‫sarà utile come se tu diciamo, OK, non ho capito il concetto un minuto cinque o qualcosa che capisco
‫molto meglio qual è il problema.
‫Quindi grazie ancora e ci vediamo al prossimo video.