<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://kata.coderdojo.it/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="it">
		<id>https://kata.coderdojo.it/wiki/index.php?action=history&amp;feed=atom&amp;title=Utente%3AGiovanniberti</id>
		<title>Utente:Giovanniberti - Cronologia</title>
		<link rel="self" type="application/atom+xml" href="https://kata.coderdojo.it/wiki/index.php?action=history&amp;feed=atom&amp;title=Utente%3AGiovanniberti"/>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Utente:Giovanniberti&amp;action=history"/>
		<updated>2026-04-08T04:00:58Z</updated>
		<subtitle>Cronologia della pagina su questo sito</subtitle>
		<generator>MediaWiki 1.23.2</generator>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Utente:Giovanniberti&amp;diff=246&amp;oldid=prev</id>
		<title>Giovanniberti il 18:45, 4 nov 2014</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Utente:Giovanniberti&amp;diff=246&amp;oldid=prev"/>
				<updated>2014-11-04T18:45:00Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Versione meno recente&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Versione delle 18:45, 4 nov 2014&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riga 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riga 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;= ## TODO:&amp;amp;nbsp; =&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1. Ereditarietà tra classi&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2. Semplificazione lessico&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Che cos'è la programmazione a oggetti =&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Che cos'è la programmazione a oggetti =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riga 66:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Riga 74:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Come per le proprietà, possiamo chiamare i metodi con&amp;amp;nbsp;&amp;lt;span style=&amp;quot;font-family:courier new,courier,monospace;&amp;quot;&amp;gt;istanza.metodo();&amp;amp;nbsp;&amp;lt;span style=&amp;quot;font-family:arial,helvetica,sans-serif;&amp;quot;&amp;gt;e in maniera simile a come chiamereste una normale funzione.&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Come per le proprietà, possiamo chiamare i metodi con&amp;amp;nbsp;&amp;lt;span style=&amp;quot;font-family:courier new,courier,monospace;&amp;quot;&amp;gt;istanza.metodo();&amp;amp;nbsp;&amp;lt;span style=&amp;quot;font-family:arial,helvetica,sans-serif;&amp;quot;&amp;gt;e in maniera simile a come chiamereste una normale funzione.&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;div style=&amp;quot;background:#eee;border:1px solid #ccc;padding:5px 10px;&amp;quot;&amp;gt;function Lampada(colore) {&amp;lt;br/&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; this.colore = colore;&amp;lt;br/&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; this.acceso = false;&amp;lt;br/&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; this.accendi = function() {&amp;lt;br/&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; if(lamp.acceso == false) {&amp;lt;br/&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; lamp.acceso = true;&amp;lt;br/&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; }&amp;lt;br/&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; }&amp;lt;br/&amp;gt;}&amp;lt;br/&amp;gt;var lamp = new Lampada(&amp;quot;blu&amp;quot;);&amp;lt;br/&amp;gt;var colore = this.colore;&amp;lt;br/&amp;gt;lamp.accendi();&amp;lt;br/&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;div style=&amp;quot;background:#eee;border:1px solid #ccc;padding:5px 10px;&amp;quot;&amp;gt;function Lampada(colore) {&amp;lt;br/&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; this.colore = colore;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;http://kata.coderdojo.it/wiki/index.php?title=Utente:Giovanniberti&lt;/ins&gt;&amp;lt;br/&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; this.acceso = false;&amp;lt;br/&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; this.accendi = function() {&amp;lt;br/&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; if(lamp.acceso == false) {&amp;lt;br/&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; lamp.acceso = true;&amp;lt;br/&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; }&amp;lt;br/&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; }&amp;lt;br/&amp;gt;}&amp;lt;br/&amp;gt;var lamp = new Lampada(&amp;quot;blu&amp;quot;);&amp;lt;br/&amp;gt;var colore = this.colore;&amp;lt;br/&amp;gt;lamp.accendi();&amp;lt;br/&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;amp;nbsp;In questo caso abbiamo assegnato ad una proprietà (&amp;lt;span style=&amp;quot;font-family:courier new,courier,monospace;&amp;quot;&amp;gt;accendi&amp;lt;/span&amp;gt;) dell'oggetto Lampada una funzione: questa funzione è un metodo.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;amp;nbsp;In questo caso abbiamo assegnato ad una proprietà (&amp;lt;span style=&amp;quot;font-family:courier new,courier,monospace;&amp;quot;&amp;gt;accendi&amp;lt;/span&amp;gt;) dell'oggetto Lampada una funzione: questa funzione è un metodo.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Giovanniberti</name></author>	</entry>

	<entry>
		<id>https://kata.coderdojo.it/wiki/index.php?title=Utente:Giovanniberti&amp;diff=245&amp;oldid=prev</id>
		<title>Giovanniberti: Programmazione a oggetti</title>
		<link rel="alternate" type="text/html" href="https://kata.coderdojo.it/wiki/index.php?title=Utente:Giovanniberti&amp;diff=245&amp;oldid=prev"/>
				<updated>2014-11-04T18:36:19Z</updated>
		
		<summary type="html">&lt;p&gt;Programmazione a oggetti&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nuova pagina&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Che cos'è la programmazione a oggetti =&lt;br /&gt;
&lt;br /&gt;
Esistono centinaia di linguaggi di programmazione, ma i più famosi come C++, Java e Python hanno una cosa in comune: si dicono&amp;amp;nbsp;''object orientated (orientati agli oggetti)''.&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
In altre parole, si dicono che sono linguaggi di&amp;amp;nbsp;'''programmazione ad oggetti.'''&lt;br /&gt;
&lt;br /&gt;
L'obiettivo di questo tutorial è spiegare i concetti fondamentali di questo modo di programmare.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Che cos'è un oggetto ==&lt;br /&gt;
&lt;br /&gt;
Pensate ad un oggetto nel mondo reale. Una palla, un orologio, una lampada... Decidete voi. Prendiamo ad esempio una lampada: la mia può essere arancione, la tua blu; la mia a LED, la tua a incadescenza; la mia con il colore metallizzato e la tua no. Questi due &amp;quot;oggetti&amp;quot;, però, hanno delle cose in comune che li contraddistinguono come &amp;quot;lampade&amp;quot;: servono entrambi a illuminare e solitamente si mettono sopra una scrivania.&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
In un linguaggio ad oggetti questi due oggetti si dicono&amp;amp;nbsp;''istanze&amp;amp;nbsp;''della classe lampada'''.&amp;amp;nbsp;'''&lt;br /&gt;
&lt;br /&gt;
Ok, calmi tutti! Pensiamo innanzittutto ad una classe come ad uno stampino o a un'idea di un oggetto: di per sè non è reale, è solo un qualcosa che descrive un qualcos'altro di reale.&lt;br /&gt;
&lt;br /&gt;
Ritornando all'esempio di prima, entrambi sappiamo cos'è una lampada, ma se ci chiedono &amp;quot;dimmi la definizione di lampada&amp;quot; o &amp;quot;pensa all'idea di lampada&amp;quot; (''ok lo ammetto, solo un pazzo furioso vi farebbe questa domanda)''&amp;amp;nbsp;entrambi penseremo alla stessa cosa. Quella è esattamente la&amp;amp;nbsp;''classe &amp;quot;''lampada&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
E cos'è un'''istanza''? Un'istanza puo' essere descritta come una rappresentazione reale di una classe: la mia lampada e la tua lampada sono&amp;amp;nbsp;''istanze&amp;amp;nbsp;''della classe/idea di lampada.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family:courier new,courier,monospace;&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; +------------------+ &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;&amp;lt;br/&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;+----+ Lampada (classe) +-----+ &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;&amp;lt;br/&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;| &amp;amp;nbsp; &amp;amp;nbsp;+------------------+ &amp;amp;nbsp; &amp;amp;nbsp; | &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;&amp;lt;br/&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;| &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; | &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;&amp;lt;br/&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;| &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; | &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;&amp;lt;br/&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;| &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; | &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;&amp;lt;br/&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;v &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; v &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;&amp;lt;br/&amp;gt;+------------+----------+ &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; +--------------------------+&amp;lt;br/&amp;gt;| Mia lampada (istanza) | &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; | &amp;amp;nbsp;Tua lampada (istanza) &amp;amp;nbsp; |&amp;lt;br/&amp;gt;+-----------------------+ &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; +--------------------------+&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se ci pensate bene sotto queste definizioni qualunque oggetto del mondo reale è in realtà un'istanza di un'idea, che corrisponderebbe alla classe.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ok, ma... a che serve? ==&lt;br /&gt;
&lt;br /&gt;
Per diradare la nebbia che di sicuro si è accumulata dopo questa spiegazione, proverò a scrivere qualche riga di Javascript per far vedere che cos'è un oggetto (non vi preoccupate se non capite tutto subito, vi sarà chiaro poi.&amp;amp;nbsp;&amp;amp;lt;ref&amp;amp;gt;O, per citare Matrix: «Cerco solo di dirti che quando sarai pronto, non ne avrai bisogno.»&amp;amp;lt;/ref&amp;amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Ecco un esempio:&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;border:1px solid #ccc;padding:5px 10px;&amp;quot;&amp;gt;function Lampada() {&amp;lt;br/&amp;gt;}&amp;lt;br/&amp;gt;var lamp = new Lampada();&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;Come potete vedere, usiamo la funzione Lampada() per creare un nuovo oggetto. &amp;lt;span style=&amp;quot;font-family:courier new,courier,monospace;&amp;quot;&amp;gt;lamp &amp;lt;/span&amp;gt;&amp;lt;font face=&amp;quot;arial, helvetica, sans-serif&amp;quot;&amp;gt;in questo caso è un'''istanza''&amp;amp;nbsp;dell'oggetto &amp;lt;span style=&amp;quot;font-family:courier new,courier,monospace;&amp;quot;&amp;gt;Lampada.&amp;lt;/span&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Avrete notato però che non ho chiamato la funzione normalmente, ci ho messo di fronte infatti la parolina&amp;amp;nbsp;&amp;lt;span style=&amp;quot;font-family:courier new,courier,monospace;&amp;quot;&amp;gt;new&amp;lt;/span&amp;gt;&amp;lt;font face=&amp;quot;arial, helvetica, sans-serif&amp;quot;&amp;gt;: questa parola serve a creare una nuova istanza a partire da una funzione, chiamata&amp;amp;nbsp;''constructor''&amp;amp;nbsp;(letteralmente: costruttore). Questa funzione serve appunto a &amp;quot;costruire&amp;quot; l'istanza dell'oggetto: per tornare all'esempio di prima il constructor della vostra lampada è il&amp;amp;nbsp;''procedimento&amp;amp;nbsp;''con cui la lampada è stata costruita, ed è stato eseguito a partire dall'''idea&amp;amp;nbsp;''di lampada. Di conseguenza ogni classe ha un suo constructor, a seconda di cosa deve fare la classe.&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;font face=&amp;quot;arial, helvetica, sans-serif&amp;quot;&amp;gt;Un esempio più complesso&amp;lt;/font&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font face=&amp;quot;arial, helvetica, sans-serif&amp;quot;&amp;gt;Ora come ora però, questa lampada non ha nulla di che. Come abbiamo detto prima, le lampade possono essere di colori diversi, oppure accese o spente, possono avere un design diverso...&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font face=&amp;quot;arial, helvetica, sans-serif&amp;quot;&amp;gt;Queste sono&amp;amp;nbsp;''proprietà&amp;amp;nbsp;''della lampada le quali, una volta costruita, difficilmente cambieranno. Solitamente proprietà simili si mettono nel constructor come&amp;amp;nbsp;''argomenti.''&amp;lt;/font&amp;gt; Vediamo ora un esempio più complicato, dove scegliamo il colore della lampada nel constructor:&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;border:1px solid #ccc;padding:5px 10px;&amp;quot;&amp;gt;function Lampada(colore) {&amp;lt;br/&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;this.colore = colore;&amp;lt;br/&amp;gt;}&amp;lt;br/&amp;gt;var lamp = new Lampada(&amp;quot;blu&amp;quot;);&amp;lt;/div&amp;gt;&lt;br /&gt;
Hey, che cos'è questo?&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
La prima riga dovrebbe essere abbastanza chiara: alla funzione Lampada adesso viene passato l'argomento colore. É la riga sotto invece che è più interessante:&lt;br /&gt;
&lt;br /&gt;
che cos'è&amp;amp;nbsp;&amp;lt;span style=&amp;quot;font-family:comic sans ms,cursive;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-family:courier new,courier,monospace;&amp;quot;&amp;gt;this&amp;lt;span style=&amp;quot;font-family:arial,helvetica,sans-serif;&amp;quot;&amp;gt;?&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font face=&amp;quot;courier new, courier, monospace&amp;quot;&amp;gt;this&amp;amp;nbsp;&amp;lt;/font&amp;gt;&amp;lt;font face=&amp;quot;arial, helvetica, sans-serif&amp;quot;&amp;gt;è una parolina che corrisponde all'istanza dell'oggetto che stiamo costruendo. Questo vuol dire che, due righe dopo, quando costruiamo &amp;lt;/font&amp;gt;&amp;lt;font face=&amp;quot;courier new, courier, monospace&amp;quot;&amp;gt;lamp&amp;amp;nbsp;&amp;lt;/font&amp;gt;&amp;lt;span style=&amp;quot;font-family: arial, helvetica, sans-serif;&amp;quot;&amp;gt;con &amp;lt;/span&amp;gt;&amp;lt;font face=&amp;quot;courier new, courier, monospace&amp;quot;&amp;gt;new Lampada(&amp;quot;blu&amp;quot;)&amp;amp;nbsp;&amp;lt;span style=&amp;quot;font-family:arial,helvetica,sans-serif;&amp;quot;&amp;gt;la proprietà&amp;amp;nbsp;''colore''&amp;amp;nbsp;di lamp sarà ''blu''.&amp;lt;/span&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;font face=&amp;quot;courier new, courier, monospace&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-family:arial,helvetica,sans-serif;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;font-family:courier new,courier,monospace;&amp;quot;&amp;gt;this&amp;amp;nbsp;&amp;lt;span style=&amp;quot;font-family:arial,helvetica,sans-serif;&amp;quot;&amp;gt;però deve sempre avere un oggetto a cui riferirsi. Non possiamo perciò fare:&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;border:1px solid #ccc;padding:5px 10px;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; background-color: rgb(238, 238, 238);&amp;quot;&amp;gt;function Lampada(colore) {&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; background-color: rgb(238, 238, 238);&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;this.colore = colore;&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; background-color: rgb(238, 238, 238);&amp;quot;&amp;gt;}&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; background-color: rgb(238, 238, 238);&amp;quot;&amp;gt;var lamp = new Lampada(&amp;quot;blu&amp;quot;);&amp;lt;br/&amp;gt;var colore_lampada = this.colore;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Come facciamo quindi a ottenere la proprietà &amp;lt;span style=&amp;quot;font-family:courier new,courier,monospace;&amp;quot;&amp;gt;colore&amp;lt;/span&amp;gt; di &amp;lt;span style=&amp;quot;font-family:courier new,courier,monospace;&amp;quot;&amp;gt;lamp&amp;lt;/span&amp;gt;? Basta anteporre alla proprietà che vogliamo ottenere il nome dell'istanza seguito da un punto, così:&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;border:1px solid #ccc;padding:5px 10px;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; background-color: rgb(238, 238, 238);&amp;quot;&amp;gt;function Lampada(colore) {&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; background-color: rgb(238, 238, 238);&amp;quot;&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;this.colore = colore;&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; background-color: rgb(238, 238, 238);&amp;quot;&amp;gt;}&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; background-color: rgb(238, 238, 238);&amp;quot;&amp;gt;var lamp = new Lampada(&amp;quot;blu&amp;quot;);&amp;lt;br/&amp;gt;var colore_lampada = lamp.colore;&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
== &amp;amp;nbsp;Metodi ==&lt;br /&gt;
&lt;br /&gt;
La principale interazione che abbiamo con una lampada è una: accenderla o spegnerla, a seconda che sia rispettivamente già spenta o accesa. Potremmo anche noi quindi modificare l'esempio precedente per accendere o spegnere la lampada!&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;border:1px solid #ccc;padding:5px 10px;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;line-height: 20.7999992370605px; background-color: rgb(238, 238, 238);&amp;quot;&amp;gt;function Lampada(colore) {&amp;lt;br/&amp;gt;this.colore = colore;&amp;lt;br/&amp;gt;this.acceso = false;&amp;lt;br/&amp;gt;}&amp;lt;br/&amp;gt;var lamp = new Lampada(&amp;quot;blu&amp;quot;);&amp;lt;br/&amp;gt;var colore = this.colore;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;function accendi(lamp) {&amp;lt;br/&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;if(lamp.acceso == false)&amp;lt;br/&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;lamp.acceso = true;&amp;lt;br/&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;}&amp;lt;br/&amp;gt;}&amp;lt;br/&amp;gt;accendi(lamp);&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Adesso immaginate un secondo un'altra funzione,&amp;amp;nbsp;&amp;lt;span style=&amp;quot;font-family:courier new,courier,monospace;&amp;quot;&amp;gt;svita()&amp;lt;span style=&amp;quot;font-family:arial,helvetica,sans-serif;&amp;quot;&amp;gt;, che ci permette di svitare la lampadina di una lampada. Immaginate che questa funzione si applichi ad una lampada e che prenda un grosso numero di argomenti, ad esempio&amp;amp;nbsp;&amp;lt;span style=&amp;quot;font-family:courier new,courier,monospace;&amp;quot;&amp;gt;svita(lamp, lampadina, tipo, forza, verso)&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Javascript qui ci viene in aiuto permettendoci di dichiarare la funzione come&amp;amp;nbsp;''metodo''. Un metodo non è altro che una funzione che è interna ad un oggetto.&lt;br /&gt;
&lt;br /&gt;
Come per le proprietà, possiamo chiamare i metodi con&amp;amp;nbsp;&amp;lt;span style=&amp;quot;font-family:courier new,courier,monospace;&amp;quot;&amp;gt;istanza.metodo();&amp;amp;nbsp;&amp;lt;span style=&amp;quot;font-family:arial,helvetica,sans-serif;&amp;quot;&amp;gt;e in maniera simile a come chiamereste una normale funzione.&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background:#eee;border:1px solid #ccc;padding:5px 10px;&amp;quot;&amp;gt;function Lampada(colore) {&amp;lt;br/&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; this.colore = colore;&amp;lt;br/&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; this.acceso = false;&amp;lt;br/&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; this.accendi = function() {&amp;lt;br/&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; if(lamp.acceso == false) {&amp;lt;br/&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; lamp.acceso = true;&amp;lt;br/&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; }&amp;lt;br/&amp;gt;&amp;amp;nbsp; &amp;amp;nbsp; }&amp;lt;br/&amp;gt;}&amp;lt;br/&amp;gt;var lamp = new Lampada(&amp;quot;blu&amp;quot;);&amp;lt;br/&amp;gt;var colore = this.colore;&amp;lt;br/&amp;gt;lamp.accendi();&amp;lt;br/&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;In questo caso abbiamo assegnato ad una proprietà (&amp;lt;span style=&amp;quot;font-family:courier new,courier,monospace;&amp;quot;&amp;gt;accendi&amp;lt;/span&amp;gt;) dell'oggetto Lampada una funzione: questa funzione è un metodo.&lt;/div&gt;</summary>
		<author><name>Giovanniberti</name></author>	</entry>

	</feed>