Ciao.
Questo è determinato a noodle.
E bentornato.
Non diamo un'occhiata a qualcosa chiamato Metodo o quale caricamento.
A volte ha senso mantenere più versioni dello stesso metodo all'interno della stessa classe e per più versioni
intendiamo che i metodi avranno lo stesso nome ma prenderebbero dati di input
diversi che è solo i parametri del metodo differirebbero su questa funzionalità a cui si fa riferimento poiché il sovraccarico
del metodo in alcuni scenari che forniscono metodi sovraccaricati potrebbe essere un requisito importante del software.
Mentre in alcuni altri scenari possono semplicemente essere utili ai clienti del cliente come
metodo nel metodo sovietico di Walker che sovraccarica più metodi all'interno della stessa classe hanno lo stesso nome ma
hanno parametri diversi, quindi per ordinare su un metodo è necessario modificare l'elenco dei parametri e la modifica dell'elenco dei
parametri implicherebbe che il numero dei parametri dei tipi di parametro sia entrambi diversi sarebbe
diverso cambiando solo il tipo restituito non funziona sull'istanza del libro non sono metodi statici possono essere sovraccaricati e qui ci
sono alcuni esempi validi di sovraccarico del metodo in cui il i metodi hanno lo stesso nome
ma elenchi di parametri diversi.
Si noti che nel secondo e terzo esempio l'ordine dei tipi di parametri del metodo è cambiato e questo è
abbastanza buono da renderlo un esempio di caricamento dell'ordine di metodo valido nel secondo esempio.
B come è seguita la macchina, mentre nel terzo abbiamo seguito la macchina.
Nessun quarto esempio è interessante e devi tenerlo a mente.
Ha abbreviato come tipo di parametro mentre il primo esempio lo ha come tipo di parametro che è entrambi tipi di dati
interi ma i due metodi si qualificano ancora come esempi validi di sovraccarico del metodo, quindi il numero di parametri
è lo stesso.
È solo che il tipo di parametro è cambiato ma sono comunque tipi di parametri di metodo compatibili.
Tuttavia si qualificherebbe come un esempio valido, quindi sarebbe valido fino a quando i parametri
non saranno esattamente identici.
No diamo un'occhiata ad alcune istruzioni di invocazione del metodo per questo esempio particolare.
Ora, se questo è un metodo nell'istruzione location, invocherebbe il secondo un metodo caricato come primo
argomento.
E mentre in secondo luogo questo può solo se abbiamo questo, questo invocherebbe il primo metodo.
E questo perché Thomson è un intellettuale e anche il primo metodo accetta un previsto.
Quindi anche il quarto metodo ha sparato come tipo di dati e Posen può essere assegnato a uno corto
ma comunque veloce, poiché è una corrispondenza esatta.
Quindi il compilatore prova a trovare un metodo con parametri con lo stesso identico elemento di dati ma se hai qualcosa del
genere in cui la variabile B è un byte e B è l'argomento e l'invocazione del metodo, in questo caso
l'ultimo metodo che è stato sparato come il tipo di parametro del metodo verrebbe richiamato.
In questo caso il compilatore dovrebbe prima provare a trovare un metodo con lo stesso parametro che esiste se
esiste un metodo del profilo di aggiornamento con byte come tipo di parametro e poiché non è presente, vedrebbe se
esiste un metodo con il tipo di dati successivo più grande quale sarebbe l'ultimo metodo.
Quindi, poiché non esiste una corrispondenza esatta, il compilatore sta scegliendo un metodo che ha un diritto
compatibile, ma a quel tipo di dati comparabile dovrebbe essere più specifico, anche se sia la prima che l'ultima
versione di come siano compatibili i tipi di dati compatibili, il compilatore sceglie l'ultimo più specifico di questo è che
il prossimo tipo di dati più grande dopo byte non è che sto dicendo che il compilatore sceglie quale metodo deve essere invocato.
E questo perché durante il processo di completamento il compilatore nel campo dei byte sul metodo che deve essere
invocato in fase di esecuzione da JVM e questo processo di compilazione che seleziona il metodo da invocare
e successivamente JVM che utilizza tali informazioni in fase di esecuzione si chiama metodo vincolante e che
è qualcosa di cui parleremo più avanti in una sezione diversa in quanto comporta più discussioni non dato che la variabile
b qui è inizializzata con un valore più piccolo per cinquanta anziché migliaia e
questo perché migliaia non si adattano a byte strani.
Ora diamo un'occhiata anche a esempi di sovraccarico non validi.
Diciamo che abbiamo questa definizione di metodo ora se aggiungessimo questo nuovo metodo all'interno della stessa classe non sarebbe un
ordine di metodo valido.
E questo perché solo il tipo restituito è diverso.
Quindi questo è illegale sotto compilatore segnalerebbe che abbiamo un metodo duplicato.
Va bene.
Quindi avremo un errore di compilazione.
Ed ecco un evidente esempio non valido.
La semplice modifica del solo nome del parametro non funzionerà qui.
Il nome del parametro è IDI.
Bene, il primo metodo ha avuto l'aggiunta neutrale di un metodo statico con la stessa firma del
metodo non funzionerà.
Questo è il primo metodo in questo caso è un metodo di istanza.
Sebbene si tratti di un metodo statico, in tutti gli esempi viene visualizzato un errore del compilatore che dice che
un metodo duplicato viene aggiunto alla validità dei metodi sovraccarichi.
L'unico requisito come elenco di parametri deve essere diverso sul nome del metodo deve essere inviato.
Quindi questo è un metodo che sovraccarica.
Ora andiamo avanti e facciamo un veloce fuori di esso.
Ok, eccoci nella classe demo di base e in una delle lezioni precedenti abbiamo scritto questo metodo
chiamato go.
E questo era quando si dimostrava il meccanismo di passaggio per valore per i riferimenti agli oggetti.
Quindi andiamo avanti e usiamo questo metodo anche in questa demo.
Quindi andiamo avanti e ordiniamo questo metodo.
Quindi qui il tipo di parametro è end array.
Scriviamo altri due metodi.
Uno prenderà un int come tipo di parametro del metodo mentre l'altro uno shock.
Quindi lasciami cambiare anche questo e fammi chiamare I.
E lascia che cambi questo in Shahed, quindi fa l'esempio simile che abbiamo visto nella diapositiva.
Lasciami chiamare e fammi copiare qui.
Bene, quindi sono stati aggiunti due metodi nuovi o caricati.
Quindi ora abbiamo tre metodi e tre metodi tutti caricati.
Quindi qui stiamo già lavorando a questo particolare il primo metodo qui usando NRT.
Ora diciamo che vanno a migliaia.
Abbiamo visto questo nella diapositiva lì il nome del metodo era profilo di aggiornamento.
Ma eccolo qui.
E definiamo anche questa variabile chiamata B che è disattivata per byte su diciamo andiamo via B.
Quindi in questo caso sarebbe il primo metodo che viene invocato qui.
Il secondo metodo go viene invocato perché Tauzin è un intellettuale e il compilatore
sceglierebbe questo sul terzo è byte signore.
Ma non passa non c'è.
Quindi prenderà l'ultimo metodo che è il più specifico.
Va bene.
È un tipo compatibile e ha il tipo di dati successivo più grande.
Quindi andiamo avanti, compiliamo ed eseguiamo
bene.
Ecco qui.
Quindi, quando abbiamo invocato per la prima volta, ha invocato il metodo che ha l'array come tipo di parametro.
Poi quando abbiamo superato Tauzin ha invocato il secondo campo da golf e io per l'ultimo che ha
invocato ci ha sparato.
Quindi è tutto.
Vorrei solo andare avanti e digitare tutti questi metodi e provarlo e provare anche gli esempi non validi
che abbiamo visto in questa luce.
OK.
Ora lascia che ti mostri anche un paio di esempi nella libreria Java stessa.
Quindi questa è la classe del flusso di stampa e la classe del flusso di stampa come ciò che viene utilizzato quando invochiamo la stampa punto
o punto del sistema nella stampa e quindi come parte della stampa del flusso di stampa.
E lascia che ti mostri la stampa e i metodi diversi, come puoi vedere ci sono diversi
genitori e metodi su questi sono tutti metodi sovraccarichi.
Quindi, se invochi print e quindi con la macchina come argomento, questo metodo viene invocato se passi
un doppio, quindi viene invocato.
OK.
E se si passa una stringa che viene invocata.
Ecco dove il flusso di stampa su un'altra classe qui viene chiamato come array che
vedremo nella sezione framework delle collezioni.
Quindi anche qui ha molti metodi e qui puoi
vedere un sacco di metodi di ordinamento che sono tutti sovraccarichi.
Quindi questo prende un galleggiante Harry e questo prende il Rotary insieme ad altre due estremità.
Questo prende una voce.
Quindi questo metodo è responsabile dell'ordinamento degli elementi dell'array, sia in ordine crescente che in
un certo ordine.
Quindi tutti questi sono anche metodi sovraccarichi e sono necessari per i programmi di quattro ore.
E così i progettisti hanno esposto tutti questi metodi.
Questo è ciò che è la libreria Java e questo è il metodo che sovraccarica.
Grazie.
E ci vediamo nella prossima lezione.