Тёмный

I SEGRETI dei 4 PILASTRI in Java: Polimorfismo, Incapsulamento, Ereditarietà, Astrazione. FACILE ✅ 

CodeBrothers
Подписаться 2,9 тыс.
Просмотров 6 тыс.
50% 1

Episodio 10: In questo tutorial del nostro corso Java in Italiano vedremo assieme i 4 pilastri della programmazione a oggetti: Astrazione, Incapsulamento, Ereditarietà, Polimorfismo. Attenzione però, ti parlerò di molte altre cose come il Casting, l'overriding, l'overloading, il binding statico e dinamico o il polimorfismo a tempo di compilazione!
Come sempre farò del mio meglio per introdurti questi concetti e farli tuoi.
Probabilmente il tutorial java più importante di tutto il corso Java base, buona visione :)
_Contenuti_
0:00 Intro
0:36 Astrazione
1:44 Il Magnetron
2:39 Esempio
3:16 Incapsulamento
4:50 I vantaggi
6:19 Polimorfismo?
6:53 Ereditarietà
7:45 Tre tipi di gerarchia
10:35 Il polimorfismo
13:36 Esempio per capire il polimorfismo
17:38 Overloading, cos’è?
19:06 Binding Statico e Dinamico
21:23 Il Casting
23:55 Il Sindaco di Lignano
24:28 Esempio di Upcast
25:25 Esempio di Down-cast
26:41 Nella prossima puntata
___Crediti___
C Y G N - Lonely Waves chll.to/8c4b24fa
Knowmadic - Cascade chll.to/9869bf6b
Ruck P - Sunrise Hike chll.to/29b704d8
Anbuu - Traveling chll.to/0f390f36
iamalex, azula, Dayle - Meadow chll.to/a47ecec1
Mama Aiuto - Mt. Elsewhere chll.to/e0750b05
Stan Forebee - Along the Yarra chll.to/1597d375
Blue Wednesday, Magnus Klausen - Runaway chll.to/85e035bf
Misha, Screen Jazzmaster - Memories chll.to/e07ced84
___Prima di andare___
Rimaniamo in contatto seguimi su Instagram: / ytcodebrothers
Iscriviti al mio canale: / @codebrothers
#CodeBrothers #Programmazione #JavaBase

Опубликовано:

 

21 июл 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 41   
@CodeBrothers
@CodeBrothers 2 года назад
✨ System.out.print("Se vuoi ringraziarci ISCRIVITI ADESSO per non perderti gli ultimi contenuti!" } ✨😉 👨‍👨‍👧‍👦 Entra a far parte della community! 👨‍👨‍👧‍👦
@mauroragni869
@mauroragni869 10 месяцев назад
Complimenti! Sei davvero bravo. Fai sembrare facile un linguaggio che facile non è. Sei preciso, chiaro e presenti una padronanza della materia non indifferente. Ciao, grazie.
@CodeBrothers
@CodeBrothers 10 месяцев назад
Ciao Mauro! Grazie infinite i commenti come il tuo riempiono il cuore e fanno continuare il canale sempre meglio 🌟
@willjean3223
@willjean3223 8 дней назад
ciao ,guarda io non commento mai sui social pero cazzo mi sento in dovere di farti i complimenti per come fai sembrare facile cose complicate .
@CodeBrothers
@CodeBrothers 8 дней назад
@@willjean3223 WillJean grazie di cuore perché i commenti come il tuo sono ciò che ci fanno andare avanti! 🙏 Nel tempo abbiamo cercato di migliorare i video il più possibile, facci sapere, se vorrai, che ne pensi degli ultimi. Grazie e buon coding ☀️
@superMiki333
@superMiki333 9 месяцев назад
Grazie per il video!
@CodeBrothers
@CodeBrothers 9 месяцев назад
Ma figurati ^_^
@superMiki333
@superMiki333 9 месяцев назад
Gli esempi babyDoggo etc mi stanno facendo morire dalle risate… 😂
@CodeBrothers
@CodeBrothers 9 месяцев назад
Ciao Miki ahahah ci fa molto piacere! 🤣 non hai idea cosa ci sarà dopo! Se non altro poi le cose non te le dimentichi più così, è quello lo scopo :')
@superMiki333
@superMiki333 9 месяцев назад
@@CodeBrothers esattamente! Resta tutto più impresso!!!
@CodeBrothers
@CodeBrothers 9 месяцев назад
@@superMiki333 Pensa che per noi è lo stesso! Certe immagini e puntate girate non se ne sono più andate 🤣 non posso spoilerarti troppo ma vedrai anche puntate di Dragon Ball, Breaking Bad, Terminator e il resto lo lascio scoprire a te :')
@superMiki333
@superMiki333 9 месяцев назад
@@CodeBrothers hahahahha can’t wait
@user-cf4dr5bz5z
@user-cf4dr5bz5z 18 дней назад
15:24 Ya like JAZZ
@tristanodeimorti444
@tristanodeimorti444 8 месяцев назад
Ciao, complimenti per l'intenzione e la volontà di metterti a disposizione di un pubblico di utenti quanto più vasto possibile. Si vede che conosci bene l'argomento. Ma, se posso dire la mia, proprio questa cosa è un limite: spesso faccio personalmente fatica a seguirti, sia perché usi una terminologia molto specifica (e non è un problema di lingua inglese, che parlo correttamente - anche perché ho vissuto all'estero) che perché secondo me dai per scontate troppe cose. Spesso spieghi ma non spieghi, cioè non espliciti bene tutto il pensiero che sta dietro una "battuta", e chi non ne sa completamente niente (come me, ad esempio) si chiede perché mai avrai detto quella specifica cosa, cosa intendi dire, ecc. Credo insomma che questo corso non sia davvero per principianti, ma per gente che ha solide basi di informatica e di programmazione e vuole imparare il Java. Detto questo, sto comunque seguendo le tue spiegazioni con molta attenzione, ma in alcuni momenti (quelli più tecnici soprattutto) è difficile starti dietro
@CodeBrothers
@CodeBrothers 8 месяцев назад
Ciao Tristano e grazie per esserti preso il tempo di scrivere questo commento! Sono esattamente le cose che ci servono per capire in quale direzione andare 🙌 Potresti magari spiegarci un po' meglio cosa intendi con "spieghi ma non spieghi"? Vorremmo che questo corso fosse il più accessibile possibile proprio per chi, come me, non aveva la possibilità di studiarlo all'università ad esempio 🧑‍🎓🧑‍🏫 Penso che rispetto ai libri o ad altri percorsi i nostri video siano decisamente diversi poiché cerchiamo sempre di metterci nei panni di chi si approccia per la prima volta e insistiamo veramente molto sui concetti forse troppo (e si vede dalla durata dei video credo) ma i feedback come i tuoi ci dicono che possiamo fare ancora di meglio 😉 Una cosa è certa ed è da tenere a mente: non basta un video di 27 minuti sulla OOP per capirla tutta. Ciò che ci prefiggiamo è di far comprendere in buonissima parte un concetto così che poi uno abbia le carte per studiarselo in autonomia senza essere disorientato. La OOP è un po' come medicina, non si finisce mai di imparare, e di sicuro non si diventa chirurghi su RU-vid ma sperimentando e sporcandosi le mani ⛑🚑 Noi cerchiamo di dare vari strumenti del caso ma poi ci vuole anche dall'altra parte impegno nell'informarsi e comprendere il contesto in cui ci si vuole immergere. Per qualunque dubbio, siamo sempre disposti a chiarire nei commenti e ad approfondire nel caso qualcosa non fosse chiaro, quindi non tenerti dentro nulla chiedi pure :D Abbiamo anche aperto un gruppo Discord proprio per fugare eventuali dubbi sulle puntate e puoi trovarlo proprio qui se vuoi far parte dei CodeBrothers -> discord.com/invite/bhA8TTQgGh PS: Ci farebbe un sacco piacere se potessi commentare anche i prossimi video così da dirci cosa magari poteva essere migliorato e cosa magari andava già bene, anche dal punto di vista dello sviluppo della puntata, editing, musica, ogni cosa che possa elevare la qualità del canale, grazie e speriamo di risentirci! 🐬
@CodeBrothers
@CodeBrothers 8 месяцев назад
Ciao Tristano e grazie per esserti preso il tempo di scrivere questo commento! Sono esattamente le cose che ci servono per capire in quale direzione andare 🙌 Potresti magari spiegarci un po' meglio cosa intendi con "spieghi ma non spieghi"? Vorremmo che questo corso fosse il più accessibile possibile proprio per chi, come me, non aveva la possibilità di studiarlo all'università ad esempio 🧑‍🎓🧑‍🏫 Penso che rispetto ai libri o ad altri percorsi i nostri video siano decisamente diversi poiché cerchiamo sempre di metterci nei panni di chi si approccia per la prima volta e insistiamo veramente molto sui concetti forse troppo (e si vede dalla durata dei video credo) ma i feedback come i tuoi ci dicono che possiamo fare ancora di meglio 😉 Una cosa è certa ed è da tenere a mente: non basta un video di 27 minuti sulla OOP per capirla tutta. Ciò che ci prefiggiamo è di far comprendere in buonissima parte un concetto così che poi uno abbia le carte per studiarselo in autonomia senza essere disorientato. La OOP è un po' come medicina, non si finisce mai di imparare, e di sicuro non si diventa chirurghi su RU-vid ma sperimentando e sporcandosi le mani ⛑🚑 Noi cerchiamo di dare vari strumenti del caso ma poi ci vuole anche dall'altra parte impegno nell'informarsi e comprendere il contesto in cui ci si vuole immergere. Per qualunque dubbio, siamo sempre disposti a chiarire nei commenti e ad approfondire nel caso qualcosa non fosse chiaro, quindi non tenerti dentro nulla chiedi pure :D Abbiamo anche aperto un gruppo Discord proprio per fugare eventuali dubbi sulle puntate, chiacchierare, risolvere problemi etc... e puoi trovarlo proprio qui se vuoi far parte dei CodeBrothers -> discord.com/invite/bhA8TTQgGh PS: Ci farebbe un sacco piacere se potessi commentare anche i prossimi video così da dirci cosa magari poteva essere migliorato e cosa magari andava già bene,ì. Questo era un video abbastanza vecchiotto e abbiamo fatto un po' di strada nel frattempo. Magari facci sapere anche dal punto di vista dello sviluppo della puntata, editing, musica, ogni cosa che possa elevare la qualità del canale, grazie e speriamo di risentirci! 🐬
@tristanodeimorti444
@tristanodeimorti444 8 месяцев назад
@@CodeBrothers Ciao, grazie mille per la risposta approfondita e immediata. Cerco di essere sintetico: apprezzo moltissimo la volontà di fare esempi presi dalla vita reale (quello di Marcellino e Optimus Prime per esempio per me è stato chiarissimo), però certe volte secondo me incasinano un po' la visione invece di mettere chiarezza. Dicevo che dai alcune cose per scontate perché, almeno personalmente (sono sempre uno alle primissime armi, ribadisco) giungi a conclusioni che vorrebbero essere autoevidenti ma non lo sono - sempre per un principiante. I casi sarebbero tanti, non potrei menzionarli tutti (non solo in questo video). Ho apprezzato moltissimo il fatto di fare un'introduzione teorica, e infatti ho deciso di guardare questo tutorial proprio per questo: ma secondo me si poteva andare ulteriormente a monte, semplificando ulteriormente i concetti. Ad esempio: quando fai gli esempi inventando (realisticamente) il codice, io che mi trovo a non avere ancora chiara la sintassi di Java mi trovo molto, molto confuso. Anche se non sono linguaggi di programmazione - pur essendo codici di alto livello - ho seguito alcuni tutorial (e sto per seguire un corso lungo 12 mesi) su HTML e CSS i cui concetti chiave mi sono risultati chiari fin da subito, pur non avendo MAI studiato questo genere di cose. Qui su Java invece ho difficoltà letteralmente a capire TUTTO e a immaginare come potrebbero servirmi determinate cose in fase di programmazione!
@CodeBrothers
@CodeBrothers 8 месяцев назад
​@@tristanodeimorti444 Grazie per la spiegazione Tristano 🤝 PREMESSA: HTML e CSS, come dici infatti non sono nemmeno linguaggi e paragonarli a Java è un po' così così..capiamo cosa intendi dire però è un po' confrontare mele e arance... Anche se studiassi Python probabilmente diresti CHEFFIGATA! Però poi passi a Java e ti esploderebbe un po' tutto xD In caso facci sapere semmai studierai anche quello Tornando a noi: stiamo pensando a una soluzione ma mi sa che da questa cosa non se ne può uscire (se hai delle proposte sono ben accette!) e ci sarà sempre, purtroppo, qualcuno un po' scontento e ti spiego perchè: in quanto canale di divulgazione e spiegazione dobbiamo metterci prima di tutto nei panni della maggioranza poiché c'è necessità di trovare lavoro prima di tutto..e passare l'università e cose di questo tipo. Già da qui puoi capire che accontentare qualunque persona non è fattibile per due fratelli che dedicano al canale soltanto ogni sera dopo lavoro.. Noi cerchiamo di fare una via di mezzo, vorremmo aiutare veramente CHIUNQUE voglia avvicinarsi a questo mondo, e per questo siamo partiti dalle basi totali sacrificando le visualizzazioni, il tempo, una eventuale possibilità di guadagno e molto altro ancora perchè siamo spinti dalla voglia di rendere questa materia accessibile a chiunque, cosa che noi non abbiamo potuto avere. Avremmo potuto cominciare da Spring che è il VERO argomento del canale e invece dopo anni ancora non l'abbiamo toccato. Una spiegazione degli argomenti non dando niente per scontato richiederebbe una quantità di tempo veramente molto ma molto elevata e i video oltre che a durare circa un'oretta, andrebbero avanti ancora più lentamente poiché bisognerebbe pensare sempre a quante cose si danno per assunte o meno e fare altre puntate introduttive a molte cose. Se qualcuno vuole imparare può sermpre aiutarsi con qualche altra risorsa online mentre segue i nostri video, così come facevamo noi prima di CodeBrothers ^_^ Per ora stiamo pubblicando da 3 anni e non abbiamo nemmeno finito le basi di Java...se dovessimo rallentare ancora non riusciremmo mai ad arrivare ad argomenti complessi che sono utilizzati nella vita di tutti i giorni dai lavoratori in difficoltà, dagli universitari anche o da altri autodidatti. Miracoli non ne possiamo fare, ma questo è il nostro meglio...per ora! Per tutto il resto c'è Mastercard 😎 o ci sono le lezioni private, i commenti, il gruppo Discord e tante altre cose che mettiamo a disposizione con il nostro lavoro di 8 ore al giorno, gli impegni quotidiani e quant'altro. Se qualcosa non ti è chiaro chiedi pure e ti sarà risposto, se hai bisogno di approfondimenti sentiamoci pure in privato per dare un bel BOOST alla tua formazione, facci sapere nei prossimi video cosa ne pensi, a presto!
@tristanodeimorti444
@tristanodeimorti444 8 месяцев назад
@@CodeBrothers Capisco bene il problema e infatti complimentoni per l'impegno. L'unica cosa che mi viene in mente di suggerire è di fare una serie di video (cosa che ovviamente, date le premesse specificate, è impensabile) sulle basi della programmazione, in modo da non fare arrivare almeno un po' preparato chi non ne sa completamente nulla come me. Ovviamente sto integrando con documenti e altri video trovati su internet, ma i contenuti sono spesso davvero ostici - perché l'informatica, letteralmente scienza dell'astrazione, serve per risolvere problemi reali ma utilizza concetti e diciture lontane dalla realtà. A me personalmente piace molto quando si analizza punto per punto facendo analogie con la realtà (vedi l'esempio di Marcellino e Optimus Prime). Grazie ancora per le risposte comunque
@giuliapedezzi3461
@giuliapedezzi3461 2 года назад
ma babyDoggo eredita anche il metodo sleep() di Animals?
@CodeBrothers
@CodeBrothers 2 года назад
Ciao Giulia! E complimenti per l'orario! Java alle 23.00 è solo per i veri duri 😄 Comunque hai detto proprio bene, BabyDoggo (ricorda la lettera maiuscola perchè è una classe) eredita anche il metodo sleep() di Animal, è proprio questa la figata dell'ereditarietà Un saluto!
@Squeezed03
@Squeezed03 Год назад
ciao, ho un dubbio: ma quindi (circa min 15.00), nel metodo talk andrò a creare un if o uno switch per assegnare ad ogni tipo di animale il suo verso? perchè è ok che creo an e in ogni caso, che sia doggo, ape o gatto fa il verso, però sarà un verso generico e non specifico per il gatto
@CodeBrothers
@CodeBrothers Год назад
Ciao Squeezed! Spero di aver capito bene la tua domanda, in caso sennò richiedimi pure :) Non serve nessuno switch o if. Il punto del discorso è che ogni Pulcino,Pappagallo,Tricheco quando verrà definito, avrà un suo metodo talk(); e questo sarà un override di quello della classe implementata Animale 😉
@Squeezed03
@Squeezed03 Год назад
​@@CodeBrothers grazie mille, ho riprovato a fare l'esercizio e funziona, il concetto ora mi è molto più chiaro :)
@CodeBrothers
@CodeBrothers Год назад
@@Squeezed03 Grandee che l'hai rifatto! Riprovare nel proprio IDE è fondamentale 🙌
@vincenzoliguori3352
@vincenzoliguori3352 Год назад
a 23:54 mi è uscito un: "Ma è il Sindaco di Lignano!" con la voce di Stegosandro 🤣
@CodeBrothers
@CodeBrothers Год назад
Hahahahah grande Vincenzo!! Finalmente qualcuno che lo riconosce 🤣🤣
@valeriogoffredo5115
@valeriogoffredo5115 Год назад
Sto seguendo i tuoi video per imparare java, però la playlist è un po' confusa, posso seguire direttamente questa playlist "Corso Java in Italiano COMPLETO 2021/2022: Spiegazioni APPROFONDITE su ogni singolo argomento" in ordine come stanno i video teoria+esercizi?
@CodeBrothers
@CodeBrothers Год назад
Ciao Valerio! Hai ragione purtroppo l'ordinamento della playlist viene modificato da RU-vid non sappiamo per quale motivo anche se clicchiamo di ordinarla in modo cronologico. Gli argomenti comunque sono tutti sempre ravvicinati e non sono sbagliati di troppo, seguila pure e in contemporanea guarda quella sugli esercizi ✨ per qualunque dubbio scrivi pure o entra nel nostro canale Discord dove tutti potremo magari aiutarti su eventuali dubbi ☀️ A presto!
@valeriogoffredo5115
@valeriogoffredo5115 Год назад
Va bene, grazie per la risposta!, allora farò così.
@CodeBrothers
@CodeBrothers Год назад
@@valeriogoffredo5115 Di niente, buon coding ^_^
@francescorossi1988
@francescorossi1988 2 года назад
ciao, una domanda, all'incirca sul minuto 16:00 se scrivo Animal an = new Doggo per esempio, sto creando un oggetto di tipo doggo che prende però solo i metodi di animal? perché non conviene creare direttamente con il tipo doggo?
@CodeBrothers
@CodeBrothers 2 года назад
Ciao Francesco e grazie per la domanda! 😄 Come giustamente dici, il nostro "doggo" ha solo i metodi di "Animal" visto che sta in quel contenitore. Ma allora che senso ha? Vediamo di fare del nostro meglio per spiegartelo subito: 😎 In questo caso specifico il nostro "Interrogatore" ha bisogno di chiedere a ogni animale di parlare. Ogni animale avrà bisogno di avere assolutamente il metodo "talk" che sta dentro il corpo di "convinciBestia" e quindi dovresti intanto accertarti che tutti lo implementino in qualche maniera se non vuoi usare l'ereditarietà, ma c'è di più infatti ecco che arriva il TWIST! Se non uso l'ereditarietà starei creando del "tight-coupling" mentre noi abbiamo bisogno di "loose-coupling". Cosa significa in soldoni? Che vogliamo meno legami possibili tra i nostri oggetti e quanta più libertà. Ecco che assegnando a tutti un contenitore "Animal" posso quindi passare come input al mio metodo "convinciBestia" un QUALUNQUE tipo di animale perchè tanto sappiamo con certezza che avrà quel metodo "talk" che ci serve. Se invece usassimo, come giustamente ti chiedi, "Doggo doggo = new Doggo();" e simili, dovremmo avere TANTI metodi overloadati TANTI QUANTI sono i nostri animali (immagina se ne avessimo 150! 😬). Quindi dovresti creare un metodo per "Doggo" che prende in input "Doggo", un metodo per "Ape" che prende in input "Ape" e così via. Questo sarebbe un "tight-coupling" e in questo caso lo dobbiamo proprio evitare anche perchè sarebbe una cattiva pratica e un bad design. Spero ti sia più chiaro, facci sapere cosa ne pensi, ciao!! 🙌
@francescorossi1988
@francescorossi1988 2 года назад
@@CodeBrothers grazie per la risposta, penso di aver capito, è che sto seguendo un corso java e la parte dell'ereditarità mi sta facendo dannare e sto solo all'inizio :)
@CodeBrothers
@CodeBrothers 2 года назад
@@francescorossi1988 grandeee ci fa un sacco piacere! Scrivi pure sotto ai video se hai dubbi che ti rispondiamo 😄 In generale tra l'altro sappi che questa regola vale anche in molti altri casi! Per esempio se crei una Hashmap assegnala a una Map. Se crei un arraylist assegnalo a una List o in certi casi addirittura a una Collection. Nel 90% dei casi non è bene usare l'implementazione come Tipo. Ps: per curiosità quale corso di Java segui? 😎
@francescorossi1988
@francescorossi1988 2 года назад
@@CodeBrothers seguo il corso di istituto volta, ancora non so cos'è un hasmap o arraylist, ma tornerò qui se serve, grazie :)
@CodeBrothers
@CodeBrothers 2 года назад
@@francescorossi1988 Ottimo corso l'ho sentito più volte! Certo se magari hai dubbi sbircia pure il canale, stiamo cercando di trattare ogni argomento possibile per fare un corso completo in tutti gli aspetti ☺️ Magari dillo anche i tuoi colleghi così riusciamo a creare pian piano una piccola community di programmatori italiani. A presto e buon coding!
Далее
지민 (Jimin) 'Who' Official MV
03:28
Просмотров 13 млн
КРЫЛЬЯ - ЗЕНИТ: все голы
01:00
Просмотров 94 тыс.
지민 (Jimin) 'Who' Official MV
03:28
Просмотров 13 млн