Archivi mensili: Maggio 2023

LE CLASSI IN JAVA SECONDA PARTE

LE CLASSI IN JAVA GARBAGE COLLECTOR In questa lezione vedremo come viene gestita la memoria in Java. Nel precedente post abbiamo visto come la creazione di un’istanza provochi una allocazione dinamica della memoria. La memoria viene associata a una variabile che contiene un riferimento all’istanza creata. IL REFERENCE COUNT Dietro le quinte ogni oggetto ha associato un valore che si chiama Reference Count, che serve a contare quanti sono i riferimenti all’oggetto. Abbiamo visto che per via dell’assegnamento, alcuni oggetti rimangono orfani, cioè non hanno più riferimenti. [...]

Di |2023-05-01T19:03:41+00:00Maggio 1, 2023|0 Commenti

LE CLASSI IN JAVA TERZA PARTE

LE CLASSI IN JAVA VARIABILI E SCOPE Come già sappiamo, guardando l’immagine sotto riportata, x è un attributo di istanza della classe MyClass. In questa sezione parleremo di variabili e scope intendendo con scope l’ambito di visibilità delle variabili. x guardando la figura più in alto, è il primo tipo di variabili che possiamo andare a definire. E' una sorta di variabile globale (visibile in tutta la classe). Questo attributo è visibile all’interno del corpo di codice o body che rappresenta la classe. Lo scope per utilizzare una definizione più appropriata è rappresentato dal blocco di [...]

Di |2023-05-07T21:04:23+00:00Maggio 7, 2023|0 Commenti

LE CLASSI IN JAVA QUARTA PARTE

LE CLASSI IN JAVA IL COSTRUTTORE Un costruttore è un metodo particolare che serve a fabbricare istanze della propria classe. Questo metodo ha lo stesso nome della classe che vogliamo istanziare, ritorniamo all’esempio precedente. Istanziamo la classe senza utilizzare il metodo create, e senza inizializzare gli attributi di istanza. Come vedi gli attributi di istanza sono valorizzati ai valori di default, che per i tipi numerici sono degli zeri. Introduciamo il costruttore. Una particolarità del costruttore è quella di non avere un tipo di ritorno, inoltre solitamente ha dei parametri che [...]

Di |2023-05-16T03:06:12+00:00Maggio 16, 2023|0 Commenti

GLI ARRAY IN JAVA PRIMA PARTE

GLI ARRAY IN JAVA  INTRODUZIONE Gli Array ci consentono di rappresentare liste di valori a una o più dimensioni. Essi sono degli oggetti, e quindi seguono le normali regole dei reference type. L’immagine sotto riportata evidenzia la definizione generica di un Array monodimensionale. Se ad esempio dobbiamo elencare una lista di voti, si potrebbe dichiarare n variabili ognuna rappresentante un voto. Tuttavia questo procedimento è scomodo e ridondante. A tale scopo ci vengono incontro gli Array. Type specifica il tipo di elementi che saranno contenuti nell’Array. Tutti gli elementi devono essere dello stesso tipo. Segue poi [...]

Di |2023-05-18T02:07:19+00:00Maggio 18, 2023|0 Commenti

GLI ARRAY IN JAVA SECONDA PARTE

GLI ARRAY IN JAVA ARRAY REFERENCE E LENGTH Quando noi dichiariamo e inizializziamo un Array, come sappiamo stiamo usando un reference type. L'Array myArray contiene il reference che punta all’area di memoria dove è situato l’array.  Se adesso dichiariamo un secondo Array di tipo compatibile con il primo e lo inizializziamo con il primo Array, quello che otteniamo non è la copia dell’Array ma myArray2 contiene il valore del riferimento che punta alla stessa area di memoria di myArray. Se modifichiamo myArray2, cioè di fatto andando a sostituire un valore, cambia [...]

Di |2023-05-19T21:11:06+00:00Maggio 19, 2023|0 Commenti

LE STRINGHE IN JAVA

LA CLASSE STRING La classe String dopo i tipi primitivi è una delle classi più usate in assoluto. Si trova nel package java.lang, uno dei package predefiniti che non necessita di importazioni. Ammette la creazione di istanze anche con il formato literal, costituito su una coppia di doppi apici. Dato che String è un oggetto una stringa può essere creata anche con l’operatore new. La figura evidenzia tutti i modi per poter creare una istanza di tale classe. La seconda particolarità delle stringhe è che sono oggetti immutabili. Per capire questo concetto ritorniamo ai reference type. [...]

Di |2023-05-20T19:35:27+00:00Maggio 20, 2023|0 Commenti

EREDITARIETA’ IN JAVA PRIMA PARTE

EREDITARIETA’ IN JAVA INTRODUZIONE L’ereditarietà in Java sta alla base della OOP. È un pilastro della programmazione OOP che tutti i linguaggi orientati agli oggetti in qualche modo implementano. Si basa sulla generalizzazione che è una relazione tra classi e che consente di organizzare una serie di concetti in una gerarchia, dal quale le classi vengono disposte dalla più particolare alla più generale. L’ereditarietà costituisce di fatto questa relazione fra classi. Vediamo con una immagine come possiamo implementare la generalizzazione in Java. Si inizia con la keyword class dato che di fatto stiamo creando una classe, [...]

Di |2023-05-22T19:08:40+00:00Maggio 22, 2023|0 Commenti

EREDITARIETA’ IN JAVA SECONDA PARTE

L'EREDITARIETA' IN JAVA SUPER E I MEMBRI DELLE SUPERCLASSI super, oltre all’utilizzo che abbiamo visto nei costruttori, può essere usato anche per accedere ai membri di una superclasse da una sottoclasse. In questi esempi solo per fini dimostrativi useremo attributi non privati nelle classi. Ricorda gli attributi devono avere sempre il modificatore private in modo da essere accessibili solo all'interno della classe in cui sono dichiarati. Vediamo una nuova versione di AClass. LE CLASSI ACLASS E BCLASS Abbiamo reso di nuovo gli attributi non privati, tra poco capirai il perché. Vediamo la modifica alla sottoclasse. [...]

Di |2023-05-25T19:09:34+00:00Maggio 25, 2023|0 Commenti

EREDITARIETA’ IN JAVA TERZA PARTE

L'EREDITARIETA' IN JAVA OVERRIDE DEI METODI In questo post parleremo di uno degli argomenti più importanti che stanno alla base dell’ereditarietà in Java. Nelle lezioni precedenti abbiamo introdotto in concetto di overload, vediamo una figura. Sappiamo che possiamo definire metodi aventi lo stesso nome a patto che il numero e il tipo di parametri sia differente (diverse signature Overload). Vedremo adesso con l’ereditarietà cosa succede se dichiariamo nella sottoclasse un metodo avente stessa signature (Override). Vediamo la figura. Quello che abbiamo fatto si chiama Override dei metodi. [...]

Di |2023-05-27T20:46:56+00:00Maggio 27, 2023|0 Commenti

I RECORD IN JAVA

INTRODUZIONE AI RECORD I record sono un tipo speciale di classe e sono stati introdotti a partire dalla versione 16 del linguaggio. La parte speciale dei record è il loro state, cioè lo stato delle loro variabili di istanza, che è immutable-readable. Una volta creata l’istanza di un record lo stato diventa immutabile, cioè i valori che compongono le variabili di istanza sono leggibili ma non riscrivibili. Possiamo considerare un record un type che aggrega due o più valori, e che consente di muovere insieme questo aggregato di valori in una forma più leggera e meno verbosa rispetto alle [...]

Di |2023-05-30T22:30:21+00:00Maggio 30, 2023|0 Commenti
Torna in cima