Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Introduzione alla Programmazione Orientata agli Oggetti in Java: Le Classi e i Metodi, Slide di Informatica

Le basi della programmazione orientata agli oggetti in Java, con un focus su come le classi raggruppano funzionalità e come i metodi realizzino il comportamento. Viene inoltre introdotto il concetto del metodo main e della sua importanza per l'esecuzione di un programma Java.

Tipologia: Slide

2022/2023

Caricato il 15/10/2022

cborgogno
cborgogno 🇮🇹

4

(2)

4 documenti

1 / 44

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Classi
Le istruzioni sono raggruppate per ottenere
una medesima funzionalità (metodo). Le
diverse funzionalità (metodi) relative a un
oggetto sono raggruppate nella classe.
La classe assegna un nome comune a dati e
metodi che essa riunisce. Tali dati e metodi
sono detti membri della classe.
Ogni cosa scritta in Java dev’essere membro
di qualche classe: non è possibile dichiarare
“variabili globali”, “funzioni”, “procedure”.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c

Anteprima parziale del testo

Scarica Introduzione alla Programmazione Orientata agli Oggetti in Java: Le Classi e i Metodi e più Slide in PDF di Informatica solo su Docsity!

Classi

 Le istruzioni sono raggruppate per ottenere una medesima funzionalità (metodo). Le diverse funzionalità (metodi) relative a un oggetto sono raggruppate nella classe.

 La classe assegna un nome comune a dati e metodi che essa riunisce. Tali dati e metodi sono detti membri della classe.

 Ogni cosa scritta in Java dev’essere membro di qualche classe: non è possibile dichiarare “variabili globali”, “funzioni”, “procedure”.

Definizione di una classe

 campi: descrivono i dati disponibili

 costruttori: permettono che ogni oggetto sia correttamente inizializzato quando è creato

 metodi: realizzano il comportamento

class MyClass { //dichiarazioni dei campi //dichiarazioni dei costruttori //dichiarazioni dei metodi }

parola riservata

Campi e metodi

 Invece i metodi, che sono gli stessi per tutti gli oggetti della stessa classe, sono però invocati su oggetti specifici (eccetto, come vedremo, i metodi statici).  Utile per la portabilità, ma talvolta sconveniente.

 Tuttavia, gli oggetti possono anche creare altri oggetti e sfruttarne i metodi.

 Questo è proprio quanto viene fatto quando un programma viene eseguito. Si parte da un unico oggetto, il quale crea a seguire gli altri.

Il metodo main

 In Java non è possibile scrivere codice al di fuori di una classe.

 Quando scriveremo il codice di un programma scriveremo classi.

 La soluzione di un problema si ottiene facendo interagire oggetti costruiti come istanze di classi.

 Serve però un punto di partenza. Da dove cominciano le interazioni?

Il metodo main

System.out.println(“Hello”);

class PrimoProgrammino { public static void main(String[] args) { System.out.println(“Hello”); } }

 Questo testo va salvato in una classe chiamata PrimoProgrammino.java

Descrizione e commenti

class PrimoProgrammino { / una classe di esempio banale per illustrare l’uso del main / // campi della classe // costruttori della classe // metodi della classe public static void main(String[] args) { System.out.println(“Hello”); } }

 È bene scrivere commenti, ad esempio per spiegare cosa fa la classe o strutturare il codice

commenti

Il metodo main

 La compilazione genererà nella medesima directory il file PrimoProgrammino.class che contiene il bytecode.

 Questo può essere eseguito dalla JVM

java PrimoProgrammino (stavolta si omette .class)

 Riassumendo:

 editing di PrimoProgrammino.javajavac PrimoProgrammino.javajava PrimoProgrammino

(o si fa insieme con un IDE)

Il metodo main

 Il metodo main deve essere public e static e avere come tipo di ritorno void.

 Significato più generale che per il solo main:

public significa che è accedibile da tutti. È l’opposto di private , che significa che vi può accedere solo quella classe.

static significa che è un metodo che non viene usato per un oggetto, ma per una classe (quindi è più generale)

Tipi di dato

 È necessario che i metodi della classe Math

siano statici perchè devono poter operare su numeri, ad es.: radiceDue = Math.sqrt(2);

 In Java, i numeri non sono oggetti.

 Tipi di dato numerico:  int (intero)  double (virgola mobile doppia precisione)  poi float, long, short, byte, char, boolean

 Sono tutti (e soli) tipi di dato primitivo

Tipi di dato

 Java prevede due casi di tipi, nettamente distinti tra loro:  Tipi primitivi (predefiniti dal linguaggio)  Tipi riferimento  sono: classi , interfacce, array  sono virtualmente infiniti, definiti dal programmatore

 L’esistenza del tipo riferimento/classe rende possibile ad esempio avere un valore di ritorno di un metodo che è un oggetto.

Espressioni vs. Istruzioni

 Un’espressione non è un’unità di calcolo completa, in quanto non ha effetto (non produce cambiamenti di valori in variabili).

 Un’istruzione è invece un’unità eseguibile completa, terminata dal carattere “;”  può essere un assegnamento, una valutazione, una chiamata ad oggetto, o combinazioni di essi

Tipi di dato

 Il concetto di variabile è un’astrazione del concetto di locazione di memoria.

 In realtà tutte le variabili sono sequenze di bit della memoria. Tuttavia, in base ai tipi, possono essere interpretate in modo diverso.

 La nozione di tipo consente di astrarre rispetto all’effettiva memorizzazione dei dati.  Ovvero: in realtà ci sono solo i dati, ma l’interfaccia col programma avviene con i tipi.

Tipi di dato

 Nota: mentre il tipo di un’espressione è determinabile dal compilatore, il suo valore viene calcolato solo durante l’esecuzione del programma.

 Semantica statica (i tipi) vs. dinamica (i valori, perché sono noti solo durante l’esecuzione).

 Il controllo di correttezza semantica dei tipi è importante, ma non esaustivo.

Tipi primitivi vs. riferimento

 Differenza principale:

 Una variabile di tipo primitivo è già pronta a contenere un valore. Una di tipo riferimento contiene invece solo il riferimento all’oggetto.

int xy;

MyClass ab;

non mette in memoria un oggetto di tipo MyClass ma una variabile di 4 byte per referenziarlo

mette in memoria un intero (4 byte) (^34 9 )

xy

ab

MyClass