La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Informatica Recupero debito quarto anno Primo incontro.

Presentazioni simili


Presentazione sul tema: "Informatica Recupero debito quarto anno Primo incontro."— Transcript della presentazione:

1 Informatica Recupero debito quarto anno Primo incontro

2 Obiettivi dellincontro Conoscere la differenza fra linguaggi compilati e linguaggi interpretati Conoscere la differenza fra linguaggi compilati e linguaggi interpretati Conoscere le basi della programmazione ad oggetti: Conoscere le basi della programmazione ad oggetti: Definizione di classi (attributi e metodi) Definizione di classi (attributi e metodi) Definizione e istanziazione di oggetti Definizione e istanziazione di oggetti Interazione con gli oggetti Interazione con gli oggetti Dimostrare la conoscenza di un linguaggio di programmazione ad alto livello: Dimostrare la conoscenza di un linguaggio di programmazione ad alto livello: oTipi di dato oTipi di dato oOperatori oOperatori oDati strutturati oDati strutturati oInput/Output oInput/Output oStrutture di controllo oStrutture di controllo oProcedure/funzioni/metodi oProcedure/funzioni/metodi Saper utilizzare un linguaggio di programmazione per rendere operativi i concetti legati alla programmazione ad oggetti Saper utilizzare un linguaggio di programmazione per rendere operativi i concetti legati alla programmazione ad oggetti

3 Linguaggi compilati e linguaggi interpretati Nei programmi scritti con linguaggi di programmazione ad alto livello ogni istruzione si traduce in un insieme spesso corposo di istruzioni a livello macchina. Nei programmi scritti con linguaggi di programmazione ad alto livello ogni istruzione si traduce in un insieme spesso corposo di istruzioni a livello macchina. I linguaggi di programmazione si dividono in due tipologie: I linguaggi di programmazione si dividono in due tipologie: linguaggi compilati linguaggi compilati linguaggi interpretati linguaggi interpretati La differenza è il modo in cui il linguaggio ad alto livello viene tradotto in istruzioni in codice macchina La differenza è il modo in cui il linguaggio ad alto livello viene tradotto in istruzioni in codice macchina

4 Linguaggi compilati Il compilatore è un software che traduce il codice sorgente in codice macchina e lo memorizza in un file (codice oggetto) Il compilatore è un software che traduce il codice sorgente in codice macchina e lo memorizza in un file (codice oggetto) Un programma eseguibile contiene istruzioni in codice macchina specifiche di un processore Un programma eseguibile contiene istruzioni in codice macchina specifiche di un processore Esempi di linguaggi compilati sono C e C++. Esempi di linguaggi compilati sono C e C++.

5 Linguaggi interpretati Il programma viene eseguito direttamente da un software (interprete) che esegue le istruzioni in codice macchina necessarie per le funzionalità richieste. Il programma viene eseguito direttamente da un software (interprete) che esegue le istruzioni in codice macchina necessarie per le funzionalità richieste. Linterprete simula il funzionamento di un processore. Linterprete simula il funzionamento di un processore. Esempi di linguaggi interpretati:Visual Basic, Perl Esempi di linguaggi interpretati:Visual Basic, Perl

6 Confronto I linguaggi interpretati sono generalmente più lenti dei linguaggi compilati I linguaggi interpretati sono generalmente più lenti dei linguaggi compilati Uno stesso programma realizzato mediante un linguaggio compilato produce in genere migliori performance rispetto a quando è eseguito con un interprete. Uno stesso programma realizzato mediante un linguaggio compilato produce in genere migliori performance rispetto a quando è eseguito con un interprete. I linguaggi interpretati offrono come vantaggio la rapidità di sviluppo. I linguaggi interpretati offrono come vantaggio la rapidità di sviluppo. Un programma interpretato è eseguibile immediatamente per essere provato dal programmatore. Un programma interpretato è eseguibile immediatamente per essere provato dal programmatore.

7 I nuovi linguaggi (compilati e interpretati) I linguaggi di programmazione più recenti (Java e i linguaggi della piattaforma.NET) sono sia compilato che interpretato I linguaggi di programmazione più recenti (Java e i linguaggi della piattaforma.NET) sono sia compilato che interpretato I file che contengono il codice sorgente di un programma sono compilati I file che contengono il codice sorgente di un programma sono compilati Il file compilato non contiene codice oggetto specifico di un determinato processore ma un di un processore virtuale (linguaggio intermedio) Il file compilato non contiene codice oggetto specifico di un determinato processore ma un di un processore virtuale (linguaggio intermedio) Per eseguire il programma compilato è necessario un interprete, che traduca il codice oggetto (del processore virtuale) in istruzioni del processore reale (Java Virtual Machine, Framework.NET) Per eseguire il programma compilato è necessario un interprete, che traduca il codice oggetto (del processore virtuale) in istruzioni del processore reale (Java Virtual Machine, Framework.NET)

8 OOP La programmazione orientata agli oggetti (Object Oriented Programming) ha lobiettivo di formalizzare gli oggetti del mondo reale e di costruire con questi un mondo virtuale. La programmazione orientata agli oggetti (Object Oriented Programming) ha lobiettivo di formalizzare gli oggetti del mondo reale e di costruire con questi un mondo virtuale. Questa parte di mondo che viene ricostruita in modo virtuale è detta dominio applicativo. Questa parte di mondo che viene ricostruita in modo virtuale è detta dominio applicativo.

9 Oggetti e classi Per popolare il dominio applicativo utilizzato dallapplicazione è necessario creare gli oggetti, e per fare questo è necessario definire le classi. Per popolare il dominio applicativo utilizzato dallapplicazione è necessario creare gli oggetti, e per fare questo è necessario definire le classi. Una classe è lo strumento con cui si identifica e si crea un oggetto. Una classe è lo strumento con cui si identifica e si crea un oggetto.

10 Classi e tipi di dato Una classe è a tutti gli effetti un tipo di dato (come gli interi e le stringhe e ogni altro tipo già definito) Una classe è a tutti gli effetti un tipo di dato (come gli interi e le stringhe e ogni altro tipo già definito) Nella programmazione orientata agli oggetti, è quindi possibile sia utilizzare tipi di dato esistenti, sia definirne di nuovi tramite le classi Nella programmazione orientata agli oggetti, è quindi possibile sia utilizzare tipi di dato esistenti, sia definirne di nuovi tramite le classi

11 Diagramma delle classi

12 Diagramma delle classi (UML) La prima sezione contiene il nome della classe, la seconda sezione definisce i suoi attributi, mentre più in basso sono definiti i metodi, le operazioni che si possono compiere sulloggetto di quel tipo

13 Classi in Java [modificatore] class [nome della classe]{ [attributi] [metodi] } class MiaClasse { String mioAttributo; void mioMetodo() { }

14 Gli oggetti Gli oggetti sono le entità di un programma che interagiscono tra loro per raggiungere un obiettivo Gli oggetti sono le entità di un programma che interagiscono tra loro per raggiungere un obiettivo Gli oggetti vengono creati in fase di esecuzione ed ognuno di essi fa parte di una categoria (di una classe) Gli oggetti vengono creati in fase di esecuzione ed ognuno di essi fa parte di una categoria (di una classe) Ogni classe può creare più oggetti, ognuno dei quali pur essendo dello stesso tipo è distinto dagli altri Ogni classe può creare più oggetti, ognuno dei quali pur essendo dello stesso tipo è distinto dagli altri Un oggetto è listanza di una classe Un oggetto è listanza di una classe

15 Un esempio di classe Se vogliamo catalogare i cd musicali in nostro possesso, abbiamo bisogno di implementare un programma nel cui dominio applicativo è presente la classe CD Se vogliamo catalogare i cd musicali in nostro possesso, abbiamo bisogno di implementare un programma nel cui dominio applicativo è presente la classe CD I metodi della classe CD servono per impostare e recuperare i valori degli attributi I metodi della classe CD servono per impostare e recuperare i valori degli attributi

16 Diagramma degli oggetti I diagrammi che rappresentano gli oggetti (Object Diagram in UML) I diagrammi che rappresentano gli oggetti (Object Diagram in UML) mettono in luce i valori che assumono gli attributi mettono in luce i valori che assumono gli attributi

17 Stato di un oggetto Linsieme dei valori degli attributi di un oggetto è chiamato stato delloggetto e generalmente può variare in funzione del tempo Linsieme dei valori degli attributi di un oggetto è chiamato stato delloggetto e generalmente può variare in funzione del tempo

18 Creazione di un oggetto Per creare un oggetto si effettua unistanziazione di una classe. Per creare un oggetto si effettua unistanziazione di una classe. In questa fase viene riservato uno spazio di memoria per conservare i valori degli attributi delloggetto che si sta creando (per mantenere memorizzato da qualche parte lo stato delloggetto) In questa fase viene riservato uno spazio di memoria per conservare i valori degli attributi delloggetto che si sta creando (per mantenere memorizzato da qualche parte lo stato delloggetto)

19 Istanziare un oggetto Java A seconda del linguaggio utilizzato si impiegano diversi costrutti di programmazione per creare un oggetto A seconda del linguaggio utilizzato si impiegano diversi costrutti di programmazione per creare un oggetto In Java la creazione di un oggetto si effettua mediante listruzione new In Java la creazione di un oggetto si effettua mediante listruzione new Esempio: Bicchiere calice; calice = new Bicchiere(); Esempio: Bicchiere calice; calice = new Bicchiere(); Oppure: Bicchiere calice = new Bicchiere(); Oppure: Bicchiere calice = new Bicchiere();

20 Attributi (di istanza) Gli attributi di istanza sono quelli posseduti da un oggetto, chiamati anche più semplicemente attributi. Gli attributi di istanza sono quelli posseduti da un oggetto, chiamati anche più semplicemente attributi. Lattributo di un oggetto è una variabile che ne descrive una caratteristica o proprietà Lattributo di un oggetto è una variabile che ne descrive una caratteristica o proprietà

21 Attributi di classe Un attributo di classe è un attributo condiviso da tutte le istanze della classe, da tutti gli oggetti creati con essa. Un attributo di classe è un attributo condiviso da tutte le istanze della classe, da tutti gli oggetti creati con essa. In Java per dichiarare un attributo di classe si utilizza il modificatore static. In Java per dichiarare un attributo di classe si utilizza il modificatore static. public class Gatto { public static int numeroDiGatti = 0; public static int numeroDiGatti = 0; public Gatto() { public Gatto() { numeroDiGatti ++; numeroDiGatti ++; }} Ogni volta che viene creato un oggetto di tipo Gatto, il contatore numeroDiGatti è automaticamente incrementato di uno. Ogni volta che viene creato un oggetto di tipo Gatto, il contatore numeroDiGatti è automaticamente incrementato di uno. La sintassi per accedere ad un attributo di classe è:. per esempio System.out.print(Gatto.numeroDiGatti); La sintassi per accedere ad un attributo di classe è:. per esempio System.out.print(Gatto.numeroDiGatti);

22 Metodi (le azioni degli oggetti) Un metodo è unazione che loggetto può eseguire. Un metodo è unazione che loggetto può eseguire. In Java la dichiarazione di un metodo è composta da: In Java la dichiarazione di un metodo è composta da: Modificatore Modificatore Nome del metodo Nome del metodo Tipo di dato da ritornare Tipo di dato da ritornare Tipo e nome dei parametri di ingresso Tipo e nome dei parametri di ingresso Eventuali eccezioni sollevate Eventuali eccezioni sollevate Tutto questo è detto firma del metodo. Tutto questo è detto firma del metodo.

23 Metodi (di istanza) Un metodo di istanza è un metodo che, per essere utilizzato, ha bisogno della creazione di un oggetto della classe a cui appartiene su cui essere invocato. Un metodo di istanza è un metodo che, per essere utilizzato, ha bisogno della creazione di un oggetto della classe a cui appartiene su cui essere invocato. Un metodo di istanza è anche chiamato semplicemente metodo. Un metodo di istanza è anche chiamato semplicemente metodo.

24 Un esempio Si vuole realizzare una classe che permetta di gestire e risolvere equazioni di secondo grado Si vuole realizzare una classe che permetta di gestire e risolvere equazioni di secondo grado

25 Equazione: attributi In una equazione individuiamo tre attributi: a, b, c che rappresentano i coefficienti di x 2, di x ed il termine noto In una equazione individuiamo tre attributi: a, b, c che rappresentano i coefficienti di x 2, di x ed il termine noto Lequazione 3x 2 -2x+1=0 avrà come attributi i valori 3, -2 e 1 Lequazione 3x 2 -2x+1=0 avrà come attributi i valori 3, -2 e 1

26 Equazione: metodi Definiamo un insieme di metodi che ci permetta di: Definiamo un insieme di metodi che ci permetta di: Modificare i valori dei coefficienti Modificare i valori dei coefficienti Ottenere i valori dei coefficienti Ottenere i valori dei coefficienti Conoscere il tipo di equazione Conoscere il tipo di equazione Ottenere la prima soluzione Ottenere la prima soluzione Ottenere la seconda soluzione Ottenere la seconda soluzione

27 Equazione: diagramma di classe

28 Esercizio Implementare in Java o in C++ la classe Equazione Implementare in Java o in C++ la classe Equazione Istanziare due equazioni: Istanziare due equazioni: 5x 2 -3x+2=0 5x 2 -3x+2=0 2x 2 -4=0 2x 2 -4=0

29 Overloading In alcuni casi è utile avere un metodo che possa essere chiamato sia con parametri, sia senza, oppure con numero e tipo di parametri differenti. In alcuni casi è utile avere un metodo che possa essere chiamato sia con parametri, sia senza, oppure con numero e tipo di parametri differenti. Nel caso di due o più metodi con lo stesso nome ma con parametri differenti si parla di overloading Nel caso di due o più metodi con lo stesso nome ma con parametri differenti si parla di overloading public int somma(int addendo1, int addendo2) { return addendo1 + addendo2; return addendo1 + addendo2;} public float somma(float addendo1, float addendo2) { return addendo1 + addendo2; return addendo1 + addendo2;} Loverloading consente di sovraccaricare il metodo con più di un significato. Loverloading consente di sovraccaricare il metodo con più di un significato.

30 Metodo costruttore Il costruttore è un metodo particolare che viene invocato alla creazione delloggetto e che contiene tutte le istruzioni da eseguire per la sua inizializzazione. Il costruttore è un metodo particolare che viene invocato alla creazione delloggetto e che contiene tutte le istruzioni da eseguire per la sua inizializzazione.

31 Modificatori public: consente a qualunque classe o oggetto di qualsiasi tipo di avere accesso allattributo o al metodo a cui è applicato. public: consente a qualunque classe o oggetto di qualsiasi tipo di avere accesso allattributo o al metodo a cui è applicato. protected: consente laccesso solo alle classi e agli oggetti il cui tipo è una sottoclasse di quella in cui è utilizzato. Le sottoclassi saranno trattate in successive lezioni. protected: consente laccesso solo alle classi e agli oggetti il cui tipo è una sottoclasse di quella in cui è utilizzato. Le sottoclassi saranno trattate in successive lezioni. private: consente laccesso solo agli oggetti della classe stessa in cui è utilizzato. private: consente laccesso solo agli oggetti della classe stessa in cui è utilizzato. Visibilità di default: si applica senza anteporre alcun modificatore; consente a tutte le classi appartenenti allo stesso package di accedere allattributo o al metodo. Visibilità di default: si applica senza anteporre alcun modificatore; consente a tutte le classi appartenenti allo stesso package di accedere allattributo o al metodo.

32 Interazione tra oggetti Per comunicare, gli oggetti possono utilizzare i metodi, scambiandosi messaggi luno con laltro. Per comunicare, gli oggetti possono utilizzare i metodi, scambiandosi messaggi luno con laltro. Quando un oggetto invoca un metodo di un altro, questultimo reagisce eseguendo il metodo opportuno. Quando un oggetto invoca un metodo di un altro, questultimo reagisce eseguendo il metodo opportuno. Linvocazione dei metodi può richiedere parametri di input di qualsiasi tipo, compresi quindi oggetti del nostro dominio applicativo. Linvocazione dei metodi può richiedere parametri di input di qualsiasi tipo, compresi quindi oggetti del nostro dominio applicativo. Un oggetto potrà quindi essere in grado di passarne un altro attraverso un metodo, o addirittura potrà passare se stesso. Un oggetto potrà quindi essere in grado di passarne un altro attraverso un metodo, o addirittura potrà passare se stesso. Un messaggio ha la seguente sintassi: Un messaggio ha la seguente sintassi:.()


Scaricare ppt "Informatica Recupero debito quarto anno Primo incontro."

Presentazioni simili


Annunci Google