1
00:00:02,150 --> 00:00:03,000
Ciao.

2
00:00:03,050 --> 00:00:08,330
Questo non voleva non guardare semplicemente un'altra caratteristica importante di una classe chiamata

3
00:00:09,020 --> 00:00:14,230
costruttore, che è legata alla costruzione di oggetti e all'inizializzazione di nidificazione.

4
00:00:14,470 --> 00:00:22,160
Viene alla corte che balli quando crei un oggetto e viene principalmente utilizzato per

5
00:00:22,190 --> 00:00:28,340
inizializzare lo stato dell'oggetto che inizializza le variabili di istanza dell'oggetto.

6
00:00:28,400 --> 00:00:32,930
Ancora una volta considera questo esempio familiare che crea il suo oggetto studente.

7
00:00:33,290 --> 00:00:35,910
E sappiamo che questa affermazione ha tre parti in essa.

8
00:00:36,090 --> 00:00:44,380
E ognuno di loro nella parte anteriore del DBM, diamo un'occhiata a queste tre parti, ancora una volta gli studenti del fusspot

9
00:00:44,380 --> 00:00:54,270
fanno in modo che GBM guardi lo spazio per la variabile di riferimento, quindi il nuovo studente del parco dice a JVM di guardare lo spazio per

10
00:00:54,440 --> 00:00:57,010
un nuovo oggetto studente nella memoria.

11
00:00:58,570 --> 00:01:06,840
Infine l'operatore di assegnazione assegna l'indirizzo dell'oggetto studente con la variabile S e despoticamente o il

12
00:01:06,840 --> 00:01:12,260
frammento nel secondo passo è in realtà un'invocazione del costruttore.

13
00:01:12,280 --> 00:01:18,790
Il secondo passo crea innanzitutto un oggetto nella memoria, quindi richiama il costruttore per inizializzare lo

14
00:01:18,790 --> 00:01:22,440
stato dell'oggetto e quindi restituisce l'indirizzo dell'oggetto creato.

15
00:01:24,460 --> 00:01:26,830
Unhorsed non ha un ductless costruttore.

16
00:01:26,830 --> 00:01:30,900
Deve avere lo stesso nome della classe sulla sintassi wise.

17
00:01:30,940 --> 00:01:33,600
Sembra molto simile a un metodo come metodo.

18
00:01:33,640 --> 00:01:36,180
Può facoltativamente avere parametri.

19
00:01:36,460 --> 00:01:39,810
Tuttavia la differenza principale è che non ha ragione.

20
00:01:41,320 --> 00:01:43,970
Come metodo, anche un costruttore può averlo.

21
00:01:44,060 --> 00:01:52,210
Il barometro dei blocchi qui è una definizione di classe di esempio che il costruttore può vedere come il

22
00:01:52,210 --> 00:01:56,690
costruttore abbia lo stesso nome della classe che inizializza.

23
00:01:56,860 --> 00:02:01,350
È necessario un nuovo valore che viene passato come argomento al costruttore.

24
00:02:02,260 --> 00:02:07,370
Quindi in pratica lo stato dell'oggetto viene inizializzato nel costruttore.

25
00:02:07,540 --> 00:02:13,460
Ed ecco un'invocazione che crea un oggetto studente inizializzato con un valore ID di

26
00:02:15,590 --> 00:02:22,660
chiusura e Nunda sa se non si fornisce un costruttore nella nostra classe, quindi al completamento il

27
00:02:22,660 --> 00:02:30,120
compilatore lo inserisce automaticamente come costruttore predefinito e il costruttore predefinito non ha alcun barometro da allora non

28
00:02:30,120 --> 00:02:31,710
ha alcun parametro

29
00:02:31,710 --> 00:02:37,150
Il costruttore predefinito viene anche definito costruttore di archi Enno.

30
00:02:37,160 --> 00:02:41,780
Si noti che ciò avverrebbe solo se la definizione della classe non include un costruttore.

31
00:02:41,990 --> 00:02:48,230
Se la classe include un costruttore, il compilatore non inserirà un costruttore innocuo, questo sarà il

32
00:02:48,230 --> 00:02:52,760
pezzo anche se il constrictor incluso ha uno o più parametri.

33
00:02:54,650 --> 00:03:00,510
Ed ecco un esempio con la definizione della classe non ha quel costruttore.

34
00:03:00,540 --> 00:03:07,200
Quindi, quando decompilatore di questa classe il compilatore lo inserisce, distrugge il costruttore nel bytecode Java.

35
00:03:08,880 --> 00:03:16,010
Il che significa che possiamo creare un oggetto invocando il costruttore di Norks e questo esempio

36
00:03:16,170 --> 00:03:23,070
mostra che se viene fornito almeno un costruttore, il compilatore non inserirà un costruttore predefinito.

37
00:03:23,120 --> 00:03:30,190
Quindi qui possiamo invocare il costruttore ma non possiamo creare un oggetto richiamando il costruttore di Norks.

38
00:03:30,650 --> 00:03:36,190
OK ci darebbe un compilatore e se vogliamo farlo allora dovresti aggiungere

39
00:03:36,470 --> 00:03:37,860
manualmente il costruttore.

40
00:03:37,880 --> 00:03:45,640
Quindi in pratica il compilatore non ne inserirà uno per il prossimo concetto o sovraccarico, proprio come i

41
00:03:45,910 --> 00:03:49,250
costruttori di metodi possono anche essere caricati.

42
00:03:49,270 --> 00:03:55,330
In effetti solo avere più di un costruttore nella stessa classe implica che siano già sovraccaricati.

43
00:03:55,630 --> 00:04:03,140
E questo perché i costruttori possono avere un solo nome, che è il costruttore della classe, e hanno

44
00:04:03,140 --> 00:04:06,630
le stesse regole di overload dei metodi.

45
00:04:06,710 --> 00:04:13,250
Quello è un elenco di parametri che deve essere diverso con i metodi che devono essere visti anche i nomi dei metodi.

46
00:04:13,580 --> 00:04:18,230
E questo non sarebbe un problema con i costruttori perché i costruttori avranno

47
00:04:18,320 --> 00:04:21,170
lo stesso nome del nome della classe.

48
00:04:21,240 --> 00:04:27,570
Gli oggetti possono essere creati usando uno qualsiasi dei costruttori sovraccaricati.

49
00:04:27,580 --> 00:04:29,140
Ecco la cosa principale.

50
00:04:29,290 --> 00:04:32,820
La domanda è perché abbiamo bisogno di costruttori sovraccarichi.

51
00:04:34,030 --> 00:04:38,880
E una buona ragione è creare oggetti con capacità diverse.

52
00:04:40,720 --> 00:04:44,460
Vediamo un esempio su questo come dalla stessa libreria Java.

53
00:04:44,770 --> 00:04:49,900
Questo è da una classe chiamata Less file output stream che discuteremo più avanti

54
00:04:49,900 --> 00:04:55,950
nel capitolo dell'output input, ma questa classe è utile per scrivere grandi file di dati sul disco.

55
00:04:56,440 --> 00:05:01,720
Quindi se hai dei dati devi scrivere i dati su un particolare file sul disco, allora puoi

56
00:05:01,720 --> 00:05:02,750
usare questa classe.

57
00:05:03,210 --> 00:05:08,810
E come puoi vedere questa classe ha questi cinque costruttori e consideriamo solo i

58
00:05:08,890 --> 00:05:10,910
primi due costruttori sovraccaricati.

59
00:05:11,320 --> 00:05:16,050
Quindi abbiamo una multa su vogliamo semplicemente un nuovo contenuto con un file.

60
00:05:16,240 --> 00:05:22,990
Quindi possiamo lavorare sul primo costruttore passando il nome del file per il primo parametro e

61
00:05:22,990 --> 00:05:28,900
passandolo attraverso il secondo append del parametro che indica che vogliamo aggiungere dati.

62
00:05:29,000 --> 00:05:35,150
Ma se vogliamo sovrascrivere il contenuto del file esistente, invece di invocare il primo

63
00:05:35,390 --> 00:05:41,950
costruttore e passare un valore falso, possiamo semplicemente invocare il secondo costruttore che, per impostazione

64
00:05:41,960 --> 00:05:43,750
predefinita, sostituisce per trovare.

65
00:05:43,840 --> 00:05:50,470
Quindi creiamo un oggetto del flusso di output del file usando il costruttore se vogliamo fare obiezioni per aggiungere contenuto

66
00:05:50,490 --> 00:05:51,330
al roofline.

67
00:05:51,760 --> 00:05:56,300
OK, questa è la capacità che otteniamo invocando il primo costruttore.

68
00:05:56,710 --> 00:06:00,560
Altrimenti chiave e l'oggetto che utilizza il secondo costruttore.

69
00:06:00,610 --> 00:06:05,940
Quindi è una combinazione di capacità e convenienza.

70
00:06:05,990 --> 00:06:13,070
Ecco un altro esempio qui su come il processo utente con tre nomi ID nome e salario.

71
00:06:13,120 --> 00:06:15,100
E abbiamo anche due costruttori.

72
00:06:15,110 --> 00:06:21,270
Il primo costruttore inizializza il nome IAB mentre il secondo inizializza tutte e tre le cose.

73
00:06:22,310 --> 00:06:28,600
Non auto abbiamo due tipi di utenti: uno studente e un istruttore su entrambi hanno schermi

74
00:06:28,600 --> 00:06:29,920
di registrazione diversi.

75
00:06:30,070 --> 00:06:35,130
Supponiamo che lo schermo di registrazione degli studenti non richieda informazioni sul salario.

76
00:06:35,480 --> 00:06:41,160
Quale schermata di registrazione dello spogliarellista richiede informazioni sullo stipendio.

77
00:06:41,170 --> 00:06:47,930
Ora sento che uno studente di nome Giovanni si registra, quindi possiamo creare un oggetto utente invocando

78
00:06:47,930 --> 00:06:56,000
il primo costruttore in questo modo. Analogamente se supponiamo che un istruttore chiamato D2 registri, possiamo invocare il secondo costruttore,

79
00:06:56,000 --> 00:07:02,570
dato che l'istruttore fornisce anche informazioni a Sandri. non è un ottimo esempio, ma è possibile

80
00:07:02,990 --> 00:07:09,500
incontrare scenari simili nel mondo reale in cui è possibile utilizzare la stessa classe per creare

81
00:07:09,560 --> 00:07:11,300
diversi tipi di oggetti.

82
00:07:12,440 --> 00:07:19,070
Ora una cosa che possiamo vedere qui è che entrambi i costrittori come dichiarazioni identiche per inizializzare

83
00:07:19,130 --> 00:07:20,760
l'idea che nome.

84
00:07:20,820 --> 00:07:27,600
Quindi abbiamo qui un codice duplicato e dovremmo sforzarci di evitare sempre il codice duplicato un'istanza dopo

85
00:07:27,930 --> 00:07:31,940
se decidiamo di rimuovere tutti i caratteri speciali in.

86
00:07:32,150 --> 00:07:38,450
Quindi dobbiamo farlo in entrambi i costruttori e se ci dimentichiamo di farlo in uno dei costruttori, allora

87
00:07:38,840 --> 00:07:41,030
potrebbe portare ad alcuni dati cattivi.

88
00:07:41,970 --> 00:07:48,960
Quindi una cosa che possiamo fare è inizializzare ID e main solo nel costruttore

89
00:07:49,020 --> 00:07:56,970
e nel primo costruttore dal secondo costruttore per inizializzare solo quelli senza trofei, ecco come possiamo farlo.

90
00:07:56,970 --> 00:08:02,940
Usiamo qualcosa chiamato come questa dichiarazione di invocazione e comporta l'uso della parola chiave.

91
00:08:02,940 --> 00:08:10,890
Questo è seguito da qualsiasi argomento richiesto dal costruttore sovraccaricato, quindi passiamo semplicemente l'id utente sul nome

92
00:08:10,980 --> 00:08:14,160
utente come argomenti al primo costruttore.

93
00:08:15,220 --> 00:08:17,870
Lo stipendio è inizializzato come è stato fatto in precedenza.

94
00:08:18,670 --> 00:08:24,560
Quindi non si usa il nome del costruttore stesso per invocare il costruttore sovraccarico, ma deve essere

95
00:08:24,550 --> 00:08:26,980
questo speciale nella dichiarazione di missione.

96
00:08:28,960 --> 00:08:32,890
Ora questa dichiarazione di immigrazione deve essere il primo movimento nel costruttore.

97
00:08:32,950 --> 00:08:41,020
Altrimenti otteniamo un compilatore e anche tu puoi come solo uno fa nell'istruzione location, ma next constructor non possiamo

98
00:08:43,280 --> 00:08:49,450
usare una variabile di istanza come argomento in un this e faremo un'istruzione Kishan.

99
00:08:49,450 --> 00:08:55,550
E la ragione di ciò è che una variabile di istanza non verrebbe inizializzata in questo particolare punto.

100
00:08:55,650 --> 00:09:01,840
E quindi passare una variabile senza inizializzazione potrebbe portare ad errori.

101
00:09:01,920 --> 00:09:07,680
E infine un costruttore non può di per sé usare questa dichiarazione di invocazione.

102
00:09:07,680 --> 00:09:13,680
E se provassimo a fare questo avremmo un errore del compilatore e se fosse permesso, avremmo finito

103
00:09:13,680 --> 00:09:15,460
con un loop infinito.

104
00:09:15,930 --> 00:09:21,550
C'è un costruttore che invocherà continuamente se stesso in un ciclo senza fine.

105
00:09:22,510 --> 00:09:27,930
Presto li rispolvereremo in una demo che faremo.

106
00:09:28,020 --> 00:09:34,410
E qui c'è un esempio di una dichiarazione di missione ricorsiva in cui entrambi i costruttori stanno

107
00:09:34,410 --> 00:09:42,870
cercando di invocare se stessi e questo non è valido e questo è un altro esempio di azione ricorsiva dell'operaio di costruzione a

108
00:09:42,880 --> 00:09:44,820
differenza dell'esempio precedente qui.

109
00:09:44,830 --> 00:09:53,270
Metti i costruttori a camminare l'un l'altro e questo anche i costruttori nonsense del compilatore Shaurya non hanno il

110
00:09:53,270 --> 00:09:55,930
tipo di ritorno nella dichiarazione.

111
00:09:56,070 --> 00:09:58,270
Non possono restituire alcun valore.

112
00:09:58,950 --> 00:10:05,880
Tuttavia possono avere una dichiarazione scritta senza alcuna espressione scritta parola chiave seguita

113
00:10:05,880 --> 00:10:10,240
da un punto e virgola qui come esempio.

114
00:10:10,450 --> 00:10:16,420
Qui il controllo ritorna con una dichiarazione scritta sul codice sottostante la dichiarazione scritta è irraggiungibile e

115
00:10:17,050 --> 00:10:18,770
quindi non è executer.

116
00:10:19,330 --> 00:10:23,540
Ma penso che in pratica sarebbe piuttosto raro scrivere una tale affermazione scritta.

117
00:10:24,640 --> 00:10:29,670
Ricorda che puoi anche avere una tale affermazione scritta nelle parole che sono state cancellate.

118
00:10:29,720 --> 00:10:32,670
LLOYD Quindi questo è tutto.

119
00:10:32,670 --> 00:10:34,740
E questa è un'introduzione al costruttore.

120
00:10:34,800 --> 00:10:42,710
Quindi il cancro viene utilizzato fondamentalmente nel contesto della creazione di un oggetto ed è quasi sempre utilizzato per inizializzare

121
00:10:42,710 --> 00:10:43,900
lo stato dell'oggetto.

122
00:10:44,940 --> 00:10:50,280
Ricorda solo che ogni volta che stai pensando a un costruttore, significa che stai già pensando

123
00:10:50,280 --> 00:10:54,860
a un oggetto e che non abbiamo ancora finito con i costruttori.

124
00:10:54,970 --> 00:11:01,060
Li rivisiteremo di nuovo dopo aver trattato argomenti orientati agli oggetti come ereditarietà e polimorfismo.

125
00:11:01,910 --> 00:11:08,420
Ma ora facciamo una demo molto rapida del sovraccarico del costruttore.

126
00:11:08,440 --> 00:11:13,260
Ecco una classe utente che abbiamo visto in precedenza quando si parla di overloading del costruttore.

127
00:11:13,330 --> 00:11:15,820
E questo era uno degli esempi che abbiamo usato.

128
00:11:15,880 --> 00:11:17,680
È esattamente lo stesso codice.

129
00:11:17,740 --> 00:11:23,560
Quindi abbiamo la classe utente con il nome ID di tre visualizzazioni sullo stipendio e abbiamo i due costruttori sovraccaricati.

130
00:11:23,740 --> 00:11:29,480
Uno di questi sta inizializzando solo l'ID e intendo bene che il secondo sta inizializzando tutti gli ID precedenti

131
00:11:29,540 --> 00:11:31,130
e quelli sullo stipendio.

132
00:11:31,180 --> 00:11:36,670
E qui abbiamo il metodo principale e stiamo costruendo un'istanza off user e questo

133
00:11:36,670 --> 00:11:37,840
sarebbe istruttore.

134
00:11:37,840 --> 00:11:39,950
Quindi stiamo passando tutti e tre i valori qui.

135
00:11:39,970 --> 00:11:47,470
Stiamo invocando il secondo nome utente id costruttore dell'istruttore e lo stipendio su questo costruttore viene eseguito

136
00:11:47,590 --> 00:11:52,230
in Woking passare da un costruttore per inizializzare solo Id.

137
00:11:52,330 --> 00:11:57,550
OK, quindi stiamo usando che questa istruzione vocazionale sulla variabile finale viene inizializzata direttamente

138
00:11:57,550 --> 00:11:58,150
qui.

139
00:11:58,310 --> 00:11:58,820
OK.

140
00:11:59,170 --> 00:12:02,380
E stiamo semplicemente stampando il nome dall'istruttore.

141
00:12:02,520 --> 00:12:05,130
OK per il solo fatto che sta funzionando.

142
00:12:05,140 --> 00:12:08,210
Quindi questo è solo lo stesso esempio qui.

143
00:12:08,230 --> 00:12:08,550
OK.

144
00:12:08,590 --> 00:12:14,260
E testeremo principalmente tutte le altre cose riguardo a questa invocazione della missione.

145
00:12:14,260 --> 00:12:19,480
Ci sono alcune cose che potrebbero essere coinvolte e le testeremo su questa classe è stata

146
00:12:19,490 --> 00:12:23,140
scritta nella directory di base e la sua già compilata.

147
00:12:23,140 --> 00:12:25,460
Quindi lasciami andare avanti e gestirlo.

148
00:12:25,750 --> 00:12:28,270
Quindi, come puoi vedere, Princeton ha chiamato D2 qui.

149
00:12:28,300 --> 00:12:31,270
OK, questo è il modo in cui l'istruttore ha capito che siamo passati.

150
00:12:31,270 --> 00:12:37,760
Ora lascia andare avanti e abbiamo detto che questa affermazione deve essere l'intera affermazione.

151
00:12:37,780 --> 00:12:39,520
Quindi lascia che sia il secondo.

152
00:12:39,530 --> 00:12:41,170
Lasciami solo copiare qui.

153
00:12:42,510 --> 00:12:48,470
Ora dovremmo ottenere un compilatore con un ok chiamato.

154
00:12:48,490 --> 00:12:55,540
Questo deve essere falso dichiarazione e costruttore quindi Sonex quindi dovrebbe tornare.

155
00:12:56,000 --> 00:13:00,850
E abbiamo anche detto a Witan un costruttore che non possiamo trattenere più di uno.

156
00:13:00,860 --> 00:13:07,180
Questa affermazione in sede e avremo ancora una volta un undergrad errore di compilazione con lo stesso.

157
00:13:07,250 --> 00:13:10,220
Quindi basta chiamare questa deve essere la dichiarazione nel costruttore.

158
00:13:10,250 --> 00:13:13,540
In questo caso è la seconda linea 14.

159
00:13:13,560 --> 00:13:15,830
Qui sono il 14 luglio.

160
00:13:15,830 --> 00:13:19,520
Quindi questa è la riga 14, quindi possiamo farlo.

161
00:13:19,660 --> 00:13:21,300
Questa deve essere la dichiarazione completa.

162
00:13:21,580 --> 00:13:22,960
Questa è una cosa.

163
00:13:22,960 --> 00:13:28,690
Ora abbiamo anche detto che un costruttore non ha ragione nei suoi cittadini.

164
00:13:28,720 --> 00:13:31,040
Abbiamo ottenuto ricorsiva e posizione.

165
00:13:31,060 --> 00:13:36,090
Quindi diciamo solo lo stipendio dell'utente.

166
00:13:36,210 --> 00:13:39,730
Ora se facciamo questo concetto Gotcher sta cercando di invocare se stesso.

167
00:13:40,210 --> 00:13:42,740
E questo darà anche un errore del compilatore.

168
00:13:43,000 --> 00:13:46,800
Quindi dice chiaramente perché il costruttore non è possibile.

169
00:13:46,830 --> 00:13:47,370
OK.

170
00:13:47,370 --> 00:13:50,290
Dice che lo stiamo facendo e non dovremmo farlo.

171
00:13:50,310 --> 00:13:51,570
Quindi questo è un esempio.

172
00:13:51,590 --> 00:13:56,790
E il secondo esempio di ricorsiva e posizione era questo costrutto o invocando questo su

173
00:13:56,790 --> 00:13:57,900
questo invocando questo.

174
00:13:57,900 --> 00:14:00,340
Andiamo avanti e proviamo anche questo.

175
00:14:00,360 --> 00:14:05,270
Quindi diciamo che è apparso qui.

176
00:14:05,310 --> 00:14:09,110
Quindi questo è in questo su questo.

177
00:14:09,210 --> 00:14:20,020
Invocheremo il primo e dovrebbe darci una raccolta di lei come puoi vedere dice che lo stipendio degli utenti mi

178
00:14:20,020 --> 00:14:21,350
lascia passare.

179
00:14:21,430 --> 00:14:23,440
Non c'è uso o salario qui.

180
00:14:23,530 --> 00:14:28,720
Quindi Alexis passa zero OK.

181
00:14:28,740 --> 00:14:32,960
Quindi, ancora una volta, accedi al suk record di Struktur a Brooklyn.

182
00:14:33,090 --> 00:14:36,790
OK, fammi leggere tutto questo

183
00:14:36,880 --> 00:14:37,940
Quindi penso che sia buono.

184
00:14:37,950 --> 00:14:38,990
Tornare alla normalità.

185
00:14:39,150 --> 00:14:45,330
Ora un'altra cosa che abbiamo detto come non possiamo passare una variabile di istanza qui.

186
00:14:45,450 --> 00:14:52,170
Quindi diciamo in str. username diciamo che abbiamo un'altra variabile

187
00:14:52,180 --> 00:14:57,270
definiamola qui, chiamiamola una stringa best mean perché vogliamo solo testarla.

188
00:14:57,700 --> 00:15:04,470
OK, per non dire che vogliamo passare interviste o che vogliamo passare questo OK, abbiamo detto che non possiamo

189
00:15:04,560 --> 00:15:09,550
passare una variabile di istanza come argomento perché l'oggetto non è ancora inizializzato.

190
00:15:09,690 --> 00:15:11,510
Le variabili non sono ancora inizializzate.

191
00:15:11,850 --> 00:15:13,190
Quindi possiamo farlo.

192
00:15:13,200 --> 00:15:23,450
Quindi diamo il comando a questo in modo che non possa fare riferimento a quel nome prima che il costruttore supertype sia stato chiamato Can the super construct

193
00:15:23,670 --> 00:15:27,730
che è un argomento diverso di cui parleremo in seguito.

194
00:15:27,830 --> 00:15:33,440
Ma a questo puoi vedere che questo non può essere inizializzato e il supertipo è qualcosa relativo alla programmazione

195
00:15:33,440 --> 00:15:34,450
orientata agli oggetti.

196
00:15:34,490 --> 00:15:37,650
Quindi quando trattiamo quando arriviamo sapremo cosa fa.

197
00:15:37,940 --> 00:15:41,100
Ma almeno devi essere consapevole che non possiamo farlo.

198
00:15:41,300 --> 00:15:43,700
OK, quindi credo che sia tutto qui.

199
00:15:43,700 --> 00:15:48,950
Quelle erano le diverse istanze delle istanze invitate e basta.

200
00:15:48,980 --> 00:15:53,170
E quindi questa è solo un'intro da costruire.

201
00:15:53,280 --> 00:15:58,040
E in un paio di conferenze forse faremo anche una demo molto buona che

202
00:15:58,040 --> 00:16:03,860
includerà tutte le cose che abbiamo imparato durante la registrazione incluso il costruttore di Groote e anche un

203
00:16:03,860 --> 00:16:06,520
altro almeno un argomento correlato di costrittori.

204
00:16:06,920 --> 00:16:08,320
Quindi lo vedremo.

205
00:16:08,330 --> 00:16:09,910
Quindi questo è tutto per ora.

206
00:16:10,010 --> 00:16:10,680
Grazie.

207
00:16:10,730 --> 00:16:11,650
Sono felice di programmare.
