tag:blogger.com,1999:blog-3347961433721498182024-03-14T06:21:20.039+01:00Metodologie di Programmazione@SapienzaBlog e sito Web del corso di Metodologie di Programmazione (Corso di Laurea in Informatica, canale M-Z)Roberto Naviglihttp://www.blogger.com/profile/18059430850765364569noreply@blogger.comBlogger364125tag:blogger.com,1999:blog-334796143372149818.post-36693237293541602212021-06-02T07:15:00.004+02:002021-06-02T07:17:01.803+02:00Lezione del 28/05/2021: altri design pattern + chisura del corso!<p>I <b><span style="color: #073763;">pattern Command/Callback, Decorator</span></b>. Esercizi sui pattern. Riassunto dei design pattern. Consigli per il futuro. <b style="color: #990000;">Conclusione del corso!</b><br />
<br />
</p><div class="separator" style="clear: both; text-align: center;">
<img border="0" height="313" src="https://1.bp.blogspot.com/-C9vlySMdXss/T9Ck2OLN0II/AAAAAAAAAB8/m9ZG-ZUBI2I/s640/dragonball.png" width="600" /></div>Roberto Naviglihttp://www.blogger.com/profile/18059430850765364569noreply@blogger.com0tag:blogger.com,1999:blog-334796143372149818.post-76510504756569873232021-06-02T07:14:00.003+02:002021-06-02T07:15:13.479+02:00Lezione del 25/05/2021 (3 ore): i primi design pattern<p> I primi design pattern:<b> strategy</b>, <b>factory, observer, builder </b>e <b>singoletto</b>.<br />
<br />
</p><div class="separator" style="clear: both; text-align: center;">
<a href="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/db1601e0-5f67-4d76-a6d1-3d5e5f2ca2d7/Image/8ce6f018d79aa4042f668d9d1562bd90/module_system_in_jdk_9.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="334" data-original-width="500" height="266" src="https://cdn.app.compendium.com/uploads/user/e7c690e8-6ff9-102a-ac6d-e4aebca50425/db1601e0-5f67-4d76-a6d1-3d5e5f2ca2d7/Image/8ce6f018d79aa4042f668d9d1562bd90/module_system_in_jdk_9.png" width="400" /></a></div>Roberto Naviglihttp://www.blogger.com/profile/18059430850765364569noreply@blogger.com0tag:blogger.com,1999:blog-334796143372149818.post-82101812979369840902021-05-21T14:27:00.002+02:002021-05-21T14:28:38.915+02:00Lezione del 21/05/2021 (2.5 ore): introduzione a input/output; reflection; moduli in Java.<p><b style="color: #073763;">Input & output:</b> gli oggetti<b style="color: #073763;"> System.out</b> e<b style="color: #073763;"> System.in</b>. <b style="color: #073763;">InputStream</b>, <b style="color: #073763;">PrintStream</b> e la classe <b><span style="color: #073763;">Scanner.</span></b> <b style="color: #073763;">File di testo</b> e file <b style="color: #073763;">binari</b>. Gli <b style="color: #073763;">stream</b>. Gerarchie di classi <b style="color: #073763;">stream</b>. Leggere e scrivere un file di testo: la classe <b style="color: #073763;">java.io.File</b>. <b><span style="color: #073763;">BufferedReader/FileReader, BufferedWriter/FileWriter</span></b>. Leggere e scrivere un file di testo formattato: le classi <b style="color: #073763;">Formatter </b>e <b style="color: #073763;">Scanner</b>. Il package <b><span style="color: #073763;">java.nio</span></b>: <span style="color: #073763;"><b>Path, Paths e Files</b></span>. <b style="color: #073763;">Serializzare </b>e <b style="color: #073763;">deserializzare </b>un oggetto. L'interfaccia <b style="color: #073763;">Serializable </b>e il <b style="color: #073763;">serialVersionUID</b>. La parola chiave <span style="color: #073763;"><b>transient</b></span>. La <b>reflection</b>, la classe <b>Class</b>, istanziare e ispezionare una classe a tempo di esecuzione. </p><p><span data-offset-key="cj8p6-0-0"><span data-text="true">I moduli in Java. Moduli senza nome. Moduli automatici.<br /></span></span></p>
<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<div class="separator" style="clear: both; text-align: center;">
<img border="0" height="276" src="https://2.bp.blogspot.com/-By73ll9hl14/T6uWNyFldUI/AAAAAAAAAAo/0R459FLO22A/s400/c64.png" width="400" /></div>
</div><p><span data-offset-key="cj8p6-0-0"><span data-text="true"> </span></span></p>Roberto Naviglihttp://www.blogger.com/profile/18059430850765364569noreply@blogger.com0tag:blogger.com,1999:blog-334796143372149818.post-6760437413135871172021-05-20T07:56:00.005+02:002021-05-21T14:27:27.467+02:00Lab del 19/05/2021 (1 ora + domande): presentazione del progetto<p> Presentazione del progetto: un'avventura testuale (e, per gruppi di 2 studenti, grafica).</p><p> <span id="docs-internal-guid-400f667b-7fff-9ad8-5585-d6d852c0a47c" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;"><span style="border: none; display: inline-block; height: 324px; overflow: hidden; width: 602px;"><img height="324" src="https://lh5.googleusercontent.com/a8BSJgUt7ulSbua3veDluXHFPNzqR6_vj6pqDK3FlNhQdtQ9NwurQDB4nwRZBZhD80lDgnshQb8CV8TM0hPkthxr3Md1rZITKfGFekVHVoKbKfhgGFSb4-G0LQ2O4rWDUpY4_gDs" style="margin-left: 0px; margin-top: 0px;" width="602" /></span></span></p><p><span id="docs-internal-guid-50d767e8-7fff-cdbf-c646-7f5040a89d22" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;"><span style="border: none; display: inline-block; height: 329px; overflow: hidden; width: 602px;"><img height="399.78484848484857" src="https://lh6.googleusercontent.com/D2w61nRt2nSdA-o9QfNg57oTh3nTj_dZSO-9-dJzLKdlnwohTq4QL8PWrHMmsczMQsJT0Fp8iGZlMX2MQk-q0mV3U86SP9MPG2oq2UeR3BzsuqvE5C9-ANi54KVtXcPEcwZ4_3_f" style="margin-left: 0px; margin-top: -22.930303030303033px;" width="602" /></span></span> <br /></p><p><span id="docs-internal-guid-400f667b-7fff-9ad8-5585-d6d852c0a47c" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap; white-space: pre;"><span style="border: none; display: inline-block; height: 324px; overflow: hidden; width: 602px;"><br /></span></span></p>Roberto Naviglihttp://www.blogger.com/profile/18059430850765364569noreply@blogger.com0tag:blogger.com,1999:blog-334796143372149818.post-22284264133525562302021-05-14T11:18:00.006+02:002021-05-14T11:20:01.507+02:00Lezione del 14/05/2021 (1 ora): ancora sui generici (2/2)<p><b style="color: #073763;">Sicurezza</b><b style="color: #073763;"> dei generici</b> a tempo di compilazione: confronto con gli array. <b style="color: #073763;">Jolly</b> come tipi generici. Esempio: <b style="color: #073763;">metodo generico di somma</b>. <b style="color: #073763;">Cancellazione del tipo </b>(<b>type erasure</b>). Esempio: <b style="color: #073763;">cancellazione del tipo nella classe Coppia</b> e <b style="color: #073763;">nel metodo getMassimo</b>. Esercizio: <b style="color: #073763;">cancellazione del tipo nella classe Pila</b>. </p>Roberto Naviglihttp://www.blogger.com/profile/18059430850765364569noreply@blogger.com0tag:blogger.com,1999:blog-334796143372149818.post-31097275102461133682021-05-14T11:18:00.000+02:002021-05-14T11:18:00.012+02:00Lab del 12/05/2021 (3 ore): esercizi sugli stream<p> Esercizi sugli stream<br /></p>Roberto Naviglihttp://www.blogger.com/profile/18059430850765364569noreply@blogger.com0tag:blogger.com,1999:blog-334796143372149818.post-85538478155393122432021-05-14T11:16:00.005+02:002021-05-14T11:19:29.239+02:00Lezione dell'11/05/2021 (3 ore): introduzione ai generici (1/2)<p><b style="color: #073763;">Tipi generici</b>. Definire e utilizzare una<b style="color: #073763;"> classe generica</b>. Specificare <b style="color: #073763;">più tipi generici</b>. <span style="color: #0c343d;"><b>Estendere </b></span>le classi generiche. Esercizio: inverti lista generica. <b style="color: #073763;">Generici e collezioni</b>: interfacce generiche prototipiche. Definire un <b style="color: #073763;">metodo generico</b>. Calcolare il massimo di una collezione di elementi di tipo generico. <br /></p><div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://2.bp.blogspot.com/-snHH5QGn7GU/Vx-ncgqjltI/AAAAAAAABds/et7lbgVdHcQt6zrNob_hiIBUdE8ScZpXwCLcB/s1600/tazzaT.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="376" src="https://2.bp.blogspot.com/-snHH5QGn7GU/Vx-ncgqjltI/AAAAAAAABds/et7lbgVdHcQt6zrNob_hiIBUdE8ScZpXwCLcB/s400/tazzaT.png" width="400" /></a></div>
</div>Roberto Naviglihttp://www.blogger.com/profile/18059430850765364569noreply@blogger.com0tag:blogger.com,1999:blog-334796143372149818.post-14325157038725841672021-05-10T15:44:00.004+02:002021-05-15T07:51:39.527+02:00Lezione del 07/05/2021 (2 ore): ancora sugli stream<p><span style="color: #073763;"><b>Collectors:</b> <b>counting, maxBy/minBy,
summingInt, averagingInt, joining, toList, toSet. </b></span><b style="color: #073763;">toCollection, mapping, groupingBy, partioningBy. </b><b style="color: #073763;">Operazioni su IntStream, DoubleStream, LongStream </b>e passaggio da uno stream all'altro.<br />
<br />
</p><div class="separator" style="clear: both; text-align: center;">
<a href="https://3.bp.blogspot.com/-pgrCczNt3IU/WRMgLHiA7uI/AAAAAAAACAE/56NfYNP_gZAAwOWhCJ1e1LsoNYOMrE8zQCLcB/s1600/2179051.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="276" src="https://3.bp.blogspot.com/-pgrCczNt3IU/WRMgLHiA7uI/AAAAAAAACAE/56NfYNP_gZAAwOWhCJ1e1LsoNYOMrE8zQCLcB/s400/2179051.jpg" width="400" /></a></div>Roberto Naviglihttp://www.blogger.com/profile/18059430850765364569noreply@blogger.com0tag:blogger.com,1999:blog-334796143372149818.post-81039378169162379832021-05-06T15:50:00.004+02:002021-05-15T07:52:07.126+02:00Lab del 05/05/2021 (1 ora + esercizi e domande): esercizi sugli stream<p>Esercizi sugli stream. <br /></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-7mPh7Cyze1s/YJP0AM0kHnI/AAAAAAAADto/uesSKCt86LAO5-JFgpMs5EsQu0vXoqTDQCNcBGAsYHQ/s1024/java8streams.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="339" data-original-width="1024" height="133" src="https://1.bp.blogspot.com/-7mPh7Cyze1s/YJP0AM0kHnI/AAAAAAAADto/uesSKCt86LAO5-JFgpMs5EsQu0vXoqTDQCNcBGAsYHQ/w400-h133/java8streams.png" width="400" /></a></div><br />Roberto Naviglihttp://www.blogger.com/profile/18059430850765364569noreply@blogger.com0tag:blogger.com,1999:blog-334796143372149818.post-73501572829686695122021-05-06T15:45:00.001+02:002021-05-06T15:45:07.427+02:00Lezione del 04/05/2021 (2 ore): eccezioni e stream<p>Ancora sulle eccezioni. <br /></p><p>La classe <b><span style="color: #073763;">Optional</span>. </b>Gli <b><span style="color: #073763;">stream</span></b>: definizione; caratteristiche; operazioni intermedie e terminali. Metodi principali dell'interfaccia java.util.stream.<span style="color: #073763;"><b>Stream</b></span>.
Comportamento "pigro" (lazy) degli stream. Operazioni senza stato e con
stato. Stream ottimizzati per i tipi primitivi: <span style="color: #073763;"><b>IntStream, DoubleStream
e LongStream</b></span>. Come ottenere uno stream: da elenco di valori, da una
Collection, da un array, da un file. Il <span style="color: #073763;"><b>pattern Builder</b></span>, la sua importanza nel paradigma orientato agli oggetti e il suo uso negli stream mediante operazioni <b>intermedie </b>e <b>terminali</b>. <span style="color: #073763;"><b>Operazioni intermedie e terminali</b></span> degli stream.<br /></p><div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<br />
<div style="text-align: center;">
<img src="https://lh3.googleusercontent.com/-3uE3oAKIEBs/WRDHCFSZLRI/AAAAAAAAB_c/0__AWW26yyoAVk-hoWc3LnnZrJeA1nsbQCEw/h117/images.jpg" width="500" />
</div>
</div>Roberto Naviglihttp://www.blogger.com/profile/18059430850765364569noreply@blogger.com0tag:blogger.com,1999:blog-334796143372149818.post-78202231688108299662021-04-30T12:12:00.004+02:002021-04-30T12:14:25.390+02:00Lezione del 30/04/2021 (2 ore): ancora sulle strutture dati; introduzione alle eccezioni<div dir="ltr" style="text-align: left;" trbidi="on">
Ancora sulle strutture dati. <b style="color: #073763;">Eccezioni</b>. Casi tipici nella programmazione Java. Eccezioni <b style="color: #073763;">notevoli</b>.<b> </b>Perché non restituire un valore d'errore. <b><span style="color: #073763;">Vantaggi e svantaggi</span> </b>delle eccezioni. Cosa gestire e cosa <b style="color: #073763;">non </b>gestire con le eccezioni. Il blocco <b style="color: #073763;">try-catch-finally</b>. La <b style="color: #073763;">politica catch-or-declare</b>: gestire o ignorare le eccezioni. Creare eccezioni personalizzate. Le parole chiave <b style="color: #073763;">throw</b><span style="color: #073763;"> </span>e <b style="color: #073763;">throws</b>.
<br />
<div class="separator" style="clear: both; text-align: center;">
<img border="0" src="https://cdn.crunchify.com/wp-content/uploads/2013/07/Null-Pointer-Exception-Crunchify.jpg" width="300" /></div>
</div>
Roberto Naviglihttp://www.blogger.com/profile/18059430850765364569noreply@blogger.com0tag:blogger.com,1999:blog-334796143372149818.post-65230658485449887662021-04-30T12:11:00.003+02:002021-04-30T12:12:14.204+02:00Lab del 28/04/2021 (2 ore + domande ed esercizi): esercizi sulla ricorsione; svolgimento dell'homework 1<p>Esercizi sulla ricorsione; svolgimento dell'homework 1.</p><p> </p><p> </p>
<div class="separator" style="clear: both; text-align: center;">
<img border="0" src="https://4.bp.blogspot.com/-nVnY0MH4BSo/WQH-v5WxYYI/AAAAAAAAB9U/KD2BRkWa0LQapbANMeET1g_QX26tujINQCLcB/s400/tumblr_m9mnfd0ACZ1qhrkxko1_400.gif" width="500" /></div>
</div>
Roberto Naviglihttp://www.blogger.com/profile/18059430850765364569noreply@blogger.com0tag:blogger.com,1999:blog-334796143372149818.post-24124117301429893252021-04-27T13:25:00.005+02:002021-04-27T13:25:43.026+02:00Lezione del 27/04/2021 (3 ore): la ricorsione in Java<p> La <span style="color: #073763;"><b>ricorsione</b>. <b>Pensare</b></span> ricorsivamente. Esempio: il <b><span style="color: #073763;">fattoriale</span></b>. Funzionamento della ricorsione: <b style="color: #073763;">record di attivazione</b> e <b style="color: #073763;">stack</b>. Non prevedere un caso base: la <b style="color: #073763;">ricorsione infinita</b>. Esempi: <b style="color: #073763;">riconoscimento di una stringa palindroma, concatenazione ricorsiva di stringhe, ricerca binaria ricorsiva</b>. Utilizzo di metodi di comodo mediante l'<b style="color: #073763;">overloading</b>. <b style="color: #073763;">Strutture dati ricorsive</b>. <span style="color: black;">Esempio: </span><b style="color: #073763;">visualizzare il contenuto di una cartella in forma gerarchica</b>. Esercizio: <b style="color: #073763;">cercare file in una cartella</b>, <b style="color: #073763;">somma ricorsiva di numeri</b>. La <b style="color: #073763;">successione di Fibonacci</b>, efficienza e problematiche dell'implementazione ricorsiva. Esercizio: <b style="color: #073763;">permutazioni di una stringa</b>. <br />
<br />
</p><div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-_gStCRS-WnA/TiseCwE_2CI/AAAAAAAAQ7w/rqhLNs6N0rY/s1600/rs41287%252C1196789087%252Cescher_hands.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="http://4.bp.blogspot.com/-_gStCRS-WnA/TiseCwE_2CI/AAAAAAAAQ7w/rqhLNs6N0rY/s200/rs41287%252C1196789087%252Cescher_hands.jpg" /></a></div>Roberto Naviglihttp://www.blogger.com/profile/18059430850765364569noreply@blogger.com0tag:blogger.com,1999:blog-334796143372149818.post-49827069288349858742021-04-23T16:47:00.006+02:002021-04-23T16:47:55.466+02:00Lezione del 23/04/2021 (2 ore): riferimenti a metodi, interfaccia Comparator e suoi metodi<p>Espressioni lambda per specificare il Comparator. <b>Riferimenti a metodi</b>:
statici, d'istanza con riferimento, d'istanza con classe. Ordinamento
di una collection in Java 8 vs. Java 7. Metodi di default e statici
dell'interfaccia <b>Comparator</b>. Interfacce funzionali standard: <b>Predicate, Function, Supplier, Consumer</b>.<b> </b><br />
</p><div class="separator" style="clear: both; text-align: center;">
<a href="https://3.bp.blogspot.com/-nAq7cJUdlas/Wuws1i4doKI/AAAAAAAACco/33XN7owerjEOA28RlG7WQj-1YSFGTrVhwCLcBGAs/s1600/media.petsblog.it_c_cod_codagatto.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="403" data-original-width="586" height="275" src="https://3.bp.blogspot.com/-nAq7cJUdlas/Wuws1i4doKI/AAAAAAAACco/33XN7owerjEOA28RlG7WQj-1YSFGTrVhwCLcBGAs/s400/media.petsblog.it_c_cod_codagatto.jpg" width="400" /></a></div>Roberto Naviglihttp://www.blogger.com/profile/18059430850765364569noreply@blogger.com0tag:blogger.com,1999:blog-334796143372149818.post-82567655857869619442021-04-20T11:45:00.004+02:002021-04-20T11:59:57.204+02:00Lezione del 20/04/2021 (3 ore): le collection<p> <span style="color: #073763;"><span style="color: black;">Le </span><b><span style="color: #073763;">Collection</span></b>. Gerarchia delle interfacce di tipo Collection: <b><span style="color: #073763;">Iterable</span>, <span style="color: #073763;">Collection</span>, <span style="color: #073763;">List</span>, <span style="color: #073763;">Set</span>, <span style="color: #073763;">SortedSet</span>, <span style="color: #073763;">Queue</span></b>. Tre modi per iterare su una collezione. L'interfaccia <b><span style="color: #073763;">Iterator</span></b>. Collezioni fondamentali: <b><span style="color: #073763;">ArrayList</span>, <span style="color: #073763;">LinkedList</span>, <span style="color: #073763;">HashSet</span>, <span style="color: #073763;">TreeSet</span>, <span style="color: #073763;">HashMap</span>, <span style="color: #073763;">LinkedHashMap</span>, <span style="color: #073763;">TreeMap</span></b>. Metodi di ogni collezione. <b><span style="color: #073763;">ListIterator </span></b>e il metodo <b><span style="color: #073763;">listIterator</span></b>. </span></p><p><span style="color: #073763;"></span></p><div class="separator" style="clear: both; text-align: center;"><span style="color: #073763;"><a href="https://www.appuntisoftware.it/wp-content/uploads/2016/09/java-collection-framework-hierarchy.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="450" data-original-width="800" height="226" src="https://www.appuntisoftware.it/wp-content/uploads/2016/09/java-collection-framework-hierarchy.jpg" width="400" /></a></span></div><span style="color: #073763;"><br /> </span><br />
<p></p>Roberto Naviglihttp://www.blogger.com/profile/18059430850765364569noreply@blogger.com0tag:blogger.com,1999:blog-334796143372149818.post-31518839513483785492021-04-17T08:01:00.007+02:002021-04-17T08:01:59.042+02:00Lezione del 16/04/2021 (2 ore): interfacce funzionali, funzioni lambda<p><span style="color: #073763;"><b>Classi annidate </b>e <b>interne. </b>Operatore <b>this </b>nelle classi interne. <b>Intefacce funzionali. Funzioni lambda. </b></span><span style="color: #073763;">Collezioni fondamentali: <b><span style="color: #073763;">ArrayList</span>, <span style="color: #073763;">LinkedList</span>, <span style="color: #073763;">HashSet</span>, <span style="color: #073763;">TreeSet</span>, <span style="color: #073763;">LinkedHashSet</span></b>. </span><br />
<br />
<span style="color: #073763;"><a href="https://4.bp.blogspot.com/-QZvaETh8BRE/V1HScMWso1I/AAAAAAAAJdA/Ba_1dRAz0Aca3KcaCiCdijWJVDr90bBGwCK4B/s1600/lambda%2Bexpression.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://4.bp.blogspot.com/-QZvaETh8BRE/V1HScMWso1I/AAAAAAAAJdA/Ba_1dRAz0Aca3KcaCiCdijWJVDr90bBGwCK4B/s640/lambda%2Bexpression.png" width="550" /></a> </span></p>Roberto Naviglihttp://www.blogger.com/profile/18059430850765364569noreply@blogger.com0tag:blogger.com,1999:blog-334796143372149818.post-79355056903002874522021-04-17T07:58:00.002+02:002021-04-17T08:00:20.120+02:00Lezione del 13/04/2021 (3 ore): interfacce, il problema del diamante, comparabilità, classi interne<p><b>Ereditarietà multipla</b>. Il <b>problema del diamante</b>. <b>Interfacce notevoli </b>(<b>Comparable</b>, <b>Comparator</b>, <b>Cloneable</b>, <b>Serializable</b>); ordinamento tramite confronto interno (Comparable) ed esterno (Comparator). Liste linkate. <b>List.of</b>. Liste immutabili vs. liste mutabili.<br />
<br />
</p><div class="separator" style="clear: both; text-align: center;">
<a href="https://i.stack.imgur.com/IVOJL.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="265" data-original-width="300" src="https://i.stack.imgur.com/IVOJL.png" /></a></div>Roberto Naviglihttp://www.blogger.com/profile/18059430850765364569noreply@blogger.com0tag:blogger.com,1999:blog-334796143372149818.post-91329332620621648442021-04-17T07:54:00.004+02:002021-04-17T07:56:09.727+02:00Lezione del 09/04/2021 (2.5 ore): esercizi sull'iterabilità<p> Esercizi sull'iterabilità.<br /></p>Roberto Naviglihttp://www.blogger.com/profile/18059430850765364569noreply@blogger.com0tag:blogger.com,1999:blog-334796143372149818.post-29601468260491402122021-03-31T18:59:00.004+02:002021-03-31T20:33:02.724+02:00Lab del 31/03/2021 (2 ore + domande): JUnit, esercizi sul polimorfismo<p>Introduzione a <b>JUnit</b>. Esercizi sul polimorfismo: <b>Successioni</b>, <b>EssereVivente</b>.</p><p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://miro.medium.com/max/982/1*AiTBjfsoj3emarTpaeNgKQ.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="244" data-original-width="800" height="122" src="https://miro.medium.com/max/982/1*AiTBjfsoj3emarTpaeNgKQ.png" width="400" /></a></div><br /> <br /><p></p><p><br /></p>Roberto Naviglihttp://www.blogger.com/profile/18059430850765364569noreply@blogger.com0tag:blogger.com,1999:blog-334796143372149818.post-67115086890711573302021-03-31T18:58:00.006+02:002021-03-31T20:31:30.297+02:00Lezione del 30/03/2021 (8-11, 3.5 ore): la classe Object, le liste e le interfacce<p> La classe <b>Object</b>. Liste con <b>ArrayList</b> e l'interfaccia <b>List</b>. Le interfacce in Java. </p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://javatutorial.net/wp-content/uploads/2017/07/java-interfaces.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="500" data-original-width="700" height="286" src="https://javatutorial.net/wp-content/uploads/2017/07/java-interfaces.jpg" width="400" /></a></div><br /><p><br /></p>Roberto Naviglihttp://www.blogger.com/profile/18059430850765364569noreply@blogger.com0tag:blogger.com,1999:blog-334796143372149818.post-72974437104757868322021-03-31T18:57:00.006+02:002021-03-31T20:28:06.388+02:00Lezione del 26/03/2021 (2 ore, 8-10): Esercizio: Espressioni matematiche<p>L'esercizio "espressioni matematiche". Uso dell'ereditarietà, del polimorfismo e degli enum, heap & stack.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://i.stack.imgur.com/EfI8B.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="369" data-original-width="800" src="https://i.stack.imgur.com/EfI8B.png" /></a></div><br /><p><br /></p>Roberto Naviglihttp://www.blogger.com/profile/18059430850765364569noreply@blogger.com0tag:blogger.com,1999:blog-334796143372149818.post-55656187033842194252021-03-24T17:55:00.004+01:002021-03-31T18:57:08.584+02:00Lab del 24/03/2021 (1 ora + domande): esercizi<p> Esercizi sull'ereditarietà: Animali, ListaOrdinataDiInteri, ContoBancario. </p><p><a href="https://1.bp.blogspot.com/proxy/Zd69YDlpZddhkzLHAzbUKrw1q-sMUZUWyK58VxaQb_i8wwJp88usRs3VE8Pbe1tCfQzx0BkSbzA5Wq9i6eCxY30975PBJHx06t_LcQy0pB7mFTkw=s512" style="margin-left: 1em; margin-right: 1em;"></a></p><div class="separator" style="clear: both; text-align: center;"><a href="https://images.twinkl.co.uk/tw1n/image/private/t_630_eco/image_repo/da/53/nz-t-t-289782-farm-animals-and-sounds-english-te-reo-maori-matching-cards-te-reo_ver_1.webp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="315" data-original-width="630" src="https://images.twinkl.co.uk/tw1n/image/private/t_630_eco/image_repo/da/53/nz-t-t-289782-farm-animals-and-sounds-english-te-reo-maori-matching-cards-te-reo_ver_1.webp" /></a></div><br /> <br /><p></p><br /><p><br /></p>Roberto Naviglihttp://www.blogger.com/profile/18059430850765364569noreply@blogger.com0tag:blogger.com,1999:blog-334796143372149818.post-16197912277740771322021-03-24T17:45:00.005+01:002021-03-24T17:45:59.653+01:00Lezione del 23/03/2021 (3 ore, 8-11): polimorfismo<p><b style="color: #073763;">Polimorfismo</b>: definizione, esempi e casistiche. Esempi: la classe <b style="color: #073763;">Impiegato</b>, <b style="color: #073763;">ImpiegatoStipendiato</b> e<b><span style="color: #073763;"> ImpiegatoACottimo</span></b>. La parola chiave<b><span style="color: #073763;"> super</span></b> per accedere a metodi e campi della superclasse. L'operatore <b style="color: #073763;">instanceof</b>. <b style="color: #073763;">Downcasting</b> e <b style="color: #073763;">upcasting</b>: differenze ed effetti sull'interfaccia pubblica. La classe universale <b style="color: #073763;">Object</b> e i suoi metodi principali: <b>clone, equals, getClass, hashCode, toString</b>. <br /></p><div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<img border="0" src="https://3.bp.blogspot.com/-Y2ZXdaHJVM4/WNjk3b1hFfI/AAAAAAAAB4U/7MhmfAIudp8_pGm6KXHvBbJUidkPV1m_QCLcB/s320/Z4850033-Genetic_polymorphism_in_banded_snails_Cepaea_-SPL.jpg" width="500" /></div>
</div>Roberto Naviglihttp://www.blogger.com/profile/18059430850765364569noreply@blogger.com0tag:blogger.com,1999:blog-334796143372149818.post-37335068774343808832021-03-19T15:28:00.002+01:002021-03-24T17:29:57.436+01:00Lezione del 19/03/2021 (2 ore, 8-10): ereditarietà<div dir="ltr" style="text-align: left;" trbidi="on">
Una lezione molto <b>molto</b> importante sull'<b style="color: #073763;">ereditarietà</b>: abbiamo introdotto il concetto di <b style="color: #073763;">ereditarietà</b>, di <b style="color: #073763;">classi</b> e <b style="color: #073763;">metodi</b> <b style="color: #073763;">astratti</b>, parole chiave <b><span style="color: #073763;">this</span> </b>e<b style="color: #073763;"> super</b> nei costruttori. Funzionamento dei costruttori nella gerarchia di ereditarietà. Differenza tra <b>overriding </b>e <b>overloading</b>. <span style="color: #073763;"><b>Visibilità </b></span>di campi e metodi: pubblica, privata, protetta e di package. <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<img border="0" height="401" src="https://4.bp.blogspot.com/-cPS_y4ifZT8/T3x2bvyy5sI/AAAAAAAAAAg/3dXSNsspbFM/s640/code162.png" width="600" /></div>
</div>
Roberto Naviglihttp://www.blogger.com/profile/18059430850765364569noreply@blogger.com0tag:blogger.com,1999:blog-334796143372149818.post-39946575931784352372021-03-18T09:57:00.002+01:002021-03-18T09:58:41.737+01:00Lab del 17/03/2021 (2.5 ore + domande): esercizi su array ed enumerazioniEsercizi: ListaDiInteri, da stringhe a numeri, da numeri a stringhe, Mazzo di Carte.
<div class="separator" style="clear: both;"><a href="https://1.bp.blogspot.com/-pZgptWipF-Q/YFMWCZk43rI/AAAAAAAADm0/T4kwTX_QIjsYHHa6bc22-cSNqHHydlQLQCNcBGAsYHQ/s1280/maxresdefault.jpg" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" width="320" data-original-height="720" data-original-width="1280" src="https://1.bp.blogspot.com/-pZgptWipF-Q/YFMWCZk43rI/AAAAAAAADm0/T4kwTX_QIjsYHHa6bc22-cSNqHHydlQLQCNcBGAsYHQ/s320/maxresdefault.jpg"/></a></div>Roberto Naviglihttp://www.blogger.com/profile/18059430850765364569noreply@blogger.com0