JavaRush /Java Blog /Random-IT /Interfaccia in Java
vinsler
Livello 35

Interfaccia in Java

Pubblicato nel gruppo Random-IT
Sono un cattivo narratore se non ho l’obiettivo di spiegare qualcosa di incomprensibile a qualcuno con una richiesta specifica, quindi capisco le cose semplici, e per prima cosa ne scriverò qui. Non seguo l'esempio didattico di JavaRush di porre prima una domanda e poi dirti come farlo. Sono un sostenitore del dire prima e poi chiedere, così come del dire, prima mostrare e poi spiegare.
Interfaccia in Java - 1
BS: Azioni == comportamento, prendili come sinonimi, le azioni vengono semplicemente intese più correttamente, è sempre qualcosa di attivo e il comportamento potrebbe non mostrare nulla.

interfaccia - interfaccia

Cos'è questo? Esempio di elenco di interfacce (con generici):
public interface Store<T, ID> {
    void add(T t);
    void update(T t, ID i);
    void delete(ID i);
    T findOne(ID i);
    List<T> findAll();
}
Interfaccia crud comune (da CRUD: Crea, Leggi, Aggiorna, Elimina). Non allarmarti, tutto è abbastanza semplice. Questa interfaccia significa che lavorare con molti database si basa sul seguente principio: è necessario aggiungere un record, aggiornare un record, eliminare e trovare tutti i record. Lo vedrai altre 100 volte e scriverai quasi la stessa interfaccia lo stesso numero di volte. È designato pubblico perché deve essere implementato dalla classe. Cosa significa essere implementati da una classe ? Tutto è molto semplice: deve descrivere tutte le modalità dell'interfaccia. L'esempio più semplice di implementazione in una classe:
void add (T t) {
	bookstore.add(t);
}
Invece di T t, verrà sostituito un certo generico. In poche parole, questo è il TIPO di una variabile, motivo per cui è spesso indicato come T = Tipo. Nel nostro esempio, diciamo che potrebbe essere così:
void add (Book book) {
	bookstore.add(book);
}
Naturalmente, al posto di Book book puoi sostituire qualsiasi variabile necessaria per la tua implementazione. Per capire, in teoria puoi immaginare che T = Object, e poiché in Java tutto è Object, puoi anche definire lì qualsiasi tua classe/variabile. L'unico problema sorgerà in seguito: eccezioni se la classe è zero, ecc. In parole povere, è una certa struttura del programma che definisce le relazioni tra gli oggetti dividendoli in determinate parti comportamentali. Lo scopo di un'interfaccia è definire la funzionalità per l'implementazione da parte di una classe. Cioè, una descrizione delle firme del metodo. All'interno dell'interfaccia ci sono i nomi dei metodi che restituiscono e immettono valori, e il gioco è fatto. Bene, puoi ancora designare alcune variabili lì, ma diventano immediatamente finale statico implicitamente pubblico ed è possibile accedervi da qualsiasi parte del programma. L'interfaccia descrive le azioni, e quindi queste stesse azioni sono contenute in essa, ad es. funzioni o metodi. Perché è necessario? Cosa semplifica o quali vantaggi offre? Semplificare la descrizione di azioni e comportamenti. Diciamo cosa fare, ma ogni classe implementa autonomamente come farlo. Risparmia tempo su progetti di grandi dimensioni. Le interfacce vengono create in situazioni in cui sappiamo di dover eseguire alcune attività, ma il modo in cui farlo può variare. L'interfaccia descrive i nomi delle azioni: questa è semplicemente la direzione di un'astrazione. Sebbene possano esserci anche interfacce senza metodi e campi, come marcatori come Cloneable, Remote, ecc. Prendiamo l'esempio di macchina preferito da tutti. L'interfaccia in essa contenuta descriverà le possibili azioni dell'auto, girando il volante o la direzione del movimento, l'aumento di velocità, la benzina rimanente, ecc. Cioè, le stesse azioni che può avere assolutamente qualsiasi macchina. In altre parole, scendiamo nella giungla del degrado fino al livello più basso di creazione della primissima macchina e con il nostro cervello capiamo come è stata creata e cosa aveva. Naturalmente lo descriviamo in astratto e solo per le azioni. Cosa aveva la prima macchina? C'era un volante? Era, il che significa che stava girando da qualche parte, la direzione del volante/movimento. C'erano le ruote? Sì, significa che stavo guidando a una certa velocità, un cambio di velocità. Questa è l'intera interfaccia. Ma in generale, vengono create interfacce per l'implementazione di determinate azioni. Quelli. scriviamo un programma per quelli più specifici di qualsiasi altra cosa tu possa pensare. Pertanto, le interfacce stesse conterranno metodi più chiari e specifici. Naturalmente saranno il più astratti possibile. Le interfacce possono essere ereditate l'una dall'altra come classi.
interface MyInterface extends NotMyinterface;
Le interfacce sono implementate in classi. Puoi implementare quante interfacce desideri. A differenza dell'ereditarietà, eredita da uno solo.
class NewClass extends OldClass implements MyInterface, NotMyinterface;
Quelli. abbiamo ideato alcune azioni, abbiamo dato loro nomi, dati di input, dati di ritorno, abbiamo scritto tutto questo nell'interfaccia, quindi abbiamo creato una classe e abbiamo aggiunto la nostra interfaccia a questa classe, ad es. implementato la nostra interfaccia in questa classe. Inoltre, tutti i metodi/funzioni descritti nell'interfaccia devono avere un'implementazione. Può essere fatto direttamente nell'interfaccia stessa aggiungendo la parola default prima del metodo e scrivendo l'implementazione direttamente nel metodo, come una classe. Ciò è diventato possibile con la versione 8 di Java. Può anche essere fatto in una classe che implementerà questa interfaccia. Bene, abbiamo scritto l'interfaccia, implementata nella classe, implementato l'implementazione nella classe, possiamo eseguirla e testarla. Puoi anche leggere nelle interfacce riguardo a:
  • Metodi statici.
  • Metodi privati. (ripetizione del codice)
  • Variabili/costanti.
  • Interfacce nidificate.
Ma è meglio farlo più tardi, ed è anche dannoso riempirsi troppo la testa. Domanda interessante: cos'è una Volvo? Classe o interfaccia?
line1: Volvo v = new VolvoV2();
line2: Volvo v = new VolvoV3();
Oltre alle interfacce, vale la pena continuare su Classi astratte e Classi. Magari più tardi, quando avrò ancora un paio d'ore libere. ))) PS: Ragazzi, chiedo tutte le critiche sotto il post o in PM, capisco perfettamente che ce l'hanno tutti))) e sono sempre interessato a sentirle, perché questo è un motivo per diventare un po' migliori e continuare ancora ad andare avanti. Detto questo, grazie mille a tutti e buona fortuna con la programmazione. )))
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION