



Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Definizione di terminologie utilizzate in Java e nella Programmazione a oggetti
Tipologia: Appunti
1 / 5
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!




Polimorfismo: si riferisce in generale alla possibilità data ad una determinata espressione di assumere valori diversi in relazione ai tipi di dato a cui viene applicata. Signature: è il nome del metodo e l'elenco dei parametri (esempio: setMax (int, int) ). Metodo: Un metodo raggruppa un insieme di istruzioni assegnando loro un nome. L’insieme di istruzioni di un metodo può essere eseguito ogni volta che è necessario semplicemente riferendosi ad esso attraverso il nome. Nei linguaggi orientati a oggetti esistono due tipi di metodi: metodi di istanza e metodi di classe (o statici). Metodo (Altra definizione): Un metodo raggruppa una sequenza di istruzioni che realizzano una funzionalità del programma e assegna loro un nome. Ogni qualvolta è necessario eseguire quella funzionalità, è sufficiente richiamarla attraverso il nome. Un metodo è quindi una porzione di codice riusabile. Quando si usa un metodo, si dice che si invoca o chiama il metodo. Java ha due tipi di metodi: quelli che restituiscono un valore, e quelli che eseguono delle istruzioni ma non restituiscono alcun valore. Classi: Gli oggetti di un programma possono rappresentare oggetti del mondo reale (come automobili o case) oppure astrazioni (come colori, forme o parole). Una classe è la definizione di un tipo di oggetto. Un oggetto viene assegnato a variabili di tipo classe. Gli oggetti hanno associati dei dati e possono effettuare delle azioni. Queste azioni sono definite da metodi. Si possono creare, o meglio istanziare, più oggetti della stessa classe. Hiding: Information hiding letteralmente vuol dire nascondere le informazioni. In un programma, la possibilità dì nascondere alcune informazioni viene vista come una qualità del linguaggio che semplifica il lavoro dei programmatori e rende più comprensibile il codice sviluppato. Una variabile di istanza viene resa privata usando la parola chiave private al posto della parola chiave public. Le parole chiave public e private sono esempi di modificatori d’accesso o modificatori di visibilità. Incapsulation: L’incapsulamento consiste nel nascondere tutti i dettagli della definizione di una classe che non sono necessari per usare le istanze create da quella classe. L’incapsulamento è la chiave della programmazione orientata agli oggetti. Una qualsiasi classe è essenzialmente costituita da dati e metodi. La filosofia dell’incapsulamento è semplice. Essa si basa sull’accesso controllato ai dati mediante metodi che possono prevenirne l’usura e la non correttezza dei dati stessi. A livello di implementazione, ciò si traduce nel dichiarare privati i membri di una classe e quindi inaccessibili al di fuori della classe stessa (a tale scopo esiste il modificatore private). Allora, l’accesso ai dati, potrà essere fornito da un’interfaccia pubblica costituita da metodi dichiarati public, e quindi accessibili da altre classi. In questo modo, tali metodi potrebbero ad esempio permettere di realizzare controlli prima di confermare l’accesso ai dati privati. Perché variabili private? Tutte le variabili di istanza di una classe dovrebbero essere dichiarare come private. In questo modo si costringe un programmatore che debba usare la classe ad accedere alla variabile di istanza solo attraverso i metodi della classe. Questo permette alla classe di controllare tutte le attività di lettura e scrittura dei valori delle variabili di istanza. Overloading: Quando si assegna lo stesso nome a due o più metodi all’interno di una stessa classe si dice che si sta effettuando overloading del nome del metodo, letteralmente si sta “sovraccaricando” di significati il metodo. Per compiere questa operazione è necessario che le definizioni dei diversi metodi presentino differenze nell’elenco di parametri che ricevono. Se si effettua \overloading di un nome di metodo, cioè se
si assegna lo stesso nome a più definizioni di metodi di una stessa classe, Java distingue i metodi sulla base del numero di parametri che ricevono e dei tipi di parametri. Se un’invocazione di metodo corrisponde alla definizione di un metodo in termini di nome, tipo del primo argomento, tipo del secondo argomento e così via, allora Java esegue quel metodo. Overriding: Se una classe derivata definisce un metodo che ha lo stesso nome, gli stessi parametri (in termini di tipo, ordine e numero) e anche lo stesso tipo di ritorno di un metodo della classe base, il metodo della classe derivata ridefinisce il metodo presente nella classe base (overriding). Overloading vs overriding: Non si deve confondere overriding di un metodo con overloading di in metodo. Quando si effettua overriding della definizione di un metodo, la nuova definizione del metodo nella classe derivata ha lo stesso nome, lo stesso tipo di ritorno e gli stessi parametri in termini di tipo, ordine e numero. Se invece il metodo nella classe derivata avesse lo stesso nome e lo stesso tipo di ritorno, ma un numero differente di parametri o anche un solo parametro di un tipo differente dal metodo nella classe base, si sarebbe di fronte a un caso di overloading. In questa situazione, la classe derivata avrebbe entrambi i metodi. Polimorfismo: Il polimorfìsmo (polymorphism) permette di modificare la definizione dei metodi nella classe derivata e far sì che questi cambiamenti siano effettivi anche per il codice della classe base. Tutto ciò avviene in modo automatico in Java. Il termine polimorfismo fa riferimento alla capacità di assegnare più significati a uno stesso nome di metodo, sfruttando il meccanismo di binding dinamico. Quindi, polimorfismo e binding dinamico fanno riferimento al medesimo concetto. Binding dinamico : Il binding dinamico fa si che l’invocazione di un metodo venga associata alla sua definizione solamente a run-time, quindi nel momento in cui l’invocazione viene effettivamente eseguita. Quando Java non usa il binding dinamico? java non utilizza il binding dinamico per i metodi privati, i metodi final e i metodi statici. Nel caso dei metodi privati e final, l’assenza di binding dinamico non rappresenta un limite, perché comunque esso non sarebbe di alcuna utilità. Al contrario, l’assenza del binding dinamico per i metodi statici può essere significativa quando il metodo statico viene invocato utilizzando un oggetto chiamante (invece che mediante il nome della classe che lo definisce), cosa che avviene più spesso di quanto si pensi. Upcasting: Assegnare un oggetto di una classe derivata a una variabile del tipo della classe base (o una qualsiasi superclasse) è spesso chiamato upcast (letteralmente “conversione verso l’alto) perché è come fare la conversione dal tipo derivato al tipo della classe base e, normalmente, i diagrammi che mostrano la relazioni di ereditarietà riportano le classi base sopra le dassi derivate. Downcasting :La conversione da una classe base a una classe derivata (o da una superclasse a una sottoclasse) viene chiamata downcast (letteralmente “conversione verso il basso*).È una responsabilità del programmatore quella di utilizzare il downcast solamente nd casi in cui ha senso farlo. Il compilatore non fa alcun controllo per verificare che il downcast sh sensato. In ogni caso, se si usa il downcast in situazioni dove non ha senso, solitamente sarà prodotto un messaggio d’errore a run-time. Classe astratta: Una classe astratta è una classe che ha alcuni metodi non completamente definiti. Non è possibile creare nuovi oggetti utilizzando il costruttore di una classe astratta, ma è possibile utilizzare una
Altra definizione: Una collezione Java è una classe che contiene oggetti. Questo concetto è reso più preciso dall’interfaccia Collection
Keyword static: La keyword static in java viene usata per definire una proprietà di oggetti e metodi che sono condivisi da più istanze di una stessa classe. Ciò significa che questo tipo di proprietà non è riferita ad una istanza della classe, ma bensi alla classe stessa. Overriding: Se una classe derivata definisce un metodo che ha lo stesso nome, gli stessi parametri (in termini di tipo, ordine e numero) e anche lo stesso tipo di ritorno di un metodo della classe base, il metodo della classe derivata ridefinisce il metodo presente nella classe base (overriding). Keyword Private: La parola chiave private è un modificatore di accesso utilizzato per attributi, metodi e costruttori, rendendoli accessibili solo all'interno della classe dichiarata. Keyword Protected :La parola chiave protected è un modificatore di accesso utilizzato per attributi, metodi e costruttori, rendendoli accessibili nello stesso pacchetto e sottoclassi. Keyword Extends: In Java, la parola chiave extends viene utilizzata per indicare che una nuova classe è derivata dalla classe di base utilizzando l'ereditarietà. Costruttore: il Costruttore è un metodo speciale di una classe che viene invocato quando un nuovo oggetto viene istanziato attraverso la keyword new.
Ereditarietà : Meccanismo per definire una nuova classe (classe derivata) come specializzazione di un’altra (classe base). La classe base modella un concetto generico e la classe derivata modella un concetto più specifico Keyword abstract class : La parola chiave abstract viene utilizzata per ottenere l'astrazione in Java. Una classe astratta è una classe che ha alcuni metodi non completamente definiti. E’ possibile utilizzare una classe astratta come classe base per la definizione di classi derivate. Keyword public: La parola chiave public è un modificatore di accesso utilizzato per classi, attributi, metodi e costruttori, rendendoli accessibili da qualsiasi altra classe. Linguaggio tipato: Un linguaggio si dice tipato se il tipo di tutte le variabili e’ determinato a tempo di compilazione Interface : Un’interfaccia Java (Java interface) è un componente di un programma che contiene le intestazioni di un certo numero di metodi. Metodo ricorsivo: Un metodo si dice ricorsivo quando all'interno della propria definizione compare una chiamata direttamente al metodo stesso.