Recupero debito quarto anno Primo incontro

Slides:



Advertisements
Presentazioni simili
Programmazione ad oggetti
Advertisements

Classi ed Oggetti in JAVA
Scomposizione funzionale
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità B1 Le basi della programmazione a oggetti.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità A1 Introduzione a Java.
Oggetti Java.
Costruttori e Distruttori
Informatica Recupero debito quarto anno Terzo incontro.
Evoluzione dei linguaggi di programmazione
Recupero debito quarto anno Primo incontro Esercizi
PHP.
I linguaggi di programmazione
Programmazione object oriented in C++
Differenze nei vari linguaggi di Elisa Trifirò e Barbara Tacchino
1 Semantica Operazionale di un frammento di Java: lo stato.
Fondamenti di Informatica
1 Programmazione ad oggetti in Java E.Mumolo, DEEI
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Introduzione a JAVA Anno Accademico 2009/2010.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica (Programmazione)
Introduzione al linguaggio Java
Derivazione tra classi
La Riflessione computazione Elisa Ferrando. Cos è la Riflessione La Riflessione Sistema riflessivo Sistema computazionale.
Programmazione Corso di laurea in Informatica
Oggetti e dati primitivi Programmazione Corso di laurea in Informatica.
Approfondimento delle classi
Unità Didattica 2 I Linguaggi di Programmazione
Primi Elementi di Programmazione in C++
Le classi Definizione di classe Attributi e metodi di una classe Costruttori e distruttori Private e public Funzioni friend Il puntatore this.
Sistemi Operativi GESTIONE DEI PROCESSI.
Progettazione di una base di dati
Java base IV: Java e la programmazione O.O.
Programmazione in Java
Elementi di programmazione ad oggetti a. a. 2009/2010 Corso di Laurea Magistrale in Ingegneria Elettronica Docente: Mauro Mazzieri, Dipartimento di Ingegneria.
Componenti fondamentali di un programma Java
Java Contardi Carlo A.S. 2008/09.
Lezione 1 Linguaggi di programmazione – Algoritmi –Istruzioni
I Metodi in Java Il termine "metodo" è sinonimo di "azione". Quindi, affinché un programma esegua qualche istruzione, deve contenere metodi.
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Implementazione di un linguaggio ad alto livello (con riferimento a Java)
Enumerazioni e Classi 1. Enumerazioni Permettono di definire nuovi tipi che consistono in un insieme di valori costanti (ognuno con un nome) – Migliorano.
Fondamenti di Programmazione Prof.ssa Elisa Tiezzi
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
I metodi F. Bombi Campi e metodi Abbiamo visto che una classe può contenere – Campi – Metodi stato I campi sono utilizzati per memorizzare.
I nomi in Java F. Bombi 18 novembre novembre 2003.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
Le variabili in Java Nella programmazione tradizionale, una variabile è una porzione di memoria in cui è immagazzinato un certo tipo di dato. Per esempio.
Programmazione a oggetti
JAVA Per iniziare. Verificare installazione javac –version java –version Cercare i files e sistemare eventualmente il path.
Programmazione ad oggetti
Lezione 1 Panoramica sui paradigmi di programmazione
la traduzione dei programmi
Ereditarieta’. Contenuti Introduciamo un meccanismo fondamentale di Java: l’ereditarieta’ Permette di estendere classi gia’ definite (ovvero di definire.
1 Osservazioni Generali Struttura di programma Gerarchia di classi: overloading, overriding, e dispatching Analisi ed esecuzione Modificabilità e condivisione.
Ugo de'Liguoro - Informatica 2 a.a. 03/04 Lez. 7 Tipi di dato e strutture dati Specifica e realizzazione di strutture informative come classi.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
Programmazione Attività di progettazione ed implementazione di programmi I programmi permettono di realizzare funzioni complesse su un hardware in grado.
1 Macchine astratte, linguaggi, interpretazione, compilazione.
Progettare una classe 21 Febbraio La classe BankAccount Vogliamo realizzare una classe i cui oggetti sono dei semplici conti bancari. * Identifichiamo.
Classi ed Oggetti in Java (Cenni). Richiami Cenni sull’ Implementazione, Macchine Astratte, Compilatore, Interprete Ruolo delle Classi in Java Oggetti.
Il software Claudia Raibulet
Fondamenti di informatica T-A Esercitazione 3 : Classi, metodi, visibilità, metodi statici AA 2012/2013 Tutor : Domenico Di Carlo.
Programmazione orientata agli Oggetti Introduzione a Java.
Introduzione all’Ereditarietà Pietro Palladino. Richiami UML Classe: descrizione di un insieme di oggetti software con caratteristiche simili Definisce.
Introduzione alle Classi e agli Oggetti in Java 1.
Transcript della presentazione:

Recupero debito quarto anno Primo incontro Informatica Recupero debito quarto anno Primo incontro

Obiettivi dell’incontro Conoscere la differenza fra linguaggi compilati e linguaggi interpretati Conoscere le basi della programmazione ad oggetti: Definizione di classi (attributi e metodi) Definizione e istanziazione di oggetti Interazione con gli oggetti Dimostrare la conoscenza di un linguaggio di programmazione ad alto livello: o Tipi di dato o Operatori o Dati strutturati o Input/Output o Strutture di controllo o Procedure/funzioni/metodi Saper utilizzare un linguaggio di programmazione per rendere operativi i concetti legati alla programmazione ad oggetti

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. I linguaggi di programmazione si dividono in due tipologie: linguaggi compilati linguaggi interpretati La differenza è il modo in cui il linguaggio ad alto livello viene tradotto in istruzioni in codice macchina

Linguaggi compilati 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 Esempi di linguaggi compilati sono C e C++.

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

Confronto 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. I linguaggi interpretati offrono come vantaggio la rapidità di sviluppo. Un programma interpretato è eseguibile immediatamente per essere provato dal programmatore.

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 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) 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)

OOP La programmazione orientata agli oggetti (Object Oriented Programming) ha l’obiettivo 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.

Oggetti e classi Per popolare il dominio applicativo utilizzato dall’applicazione è 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.

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) Nella programmazione orientata agli oggetti, è quindi possibile sia utilizzare tipi di dato esistenti, sia definirne di nuovi tramite le classi

Diagramma delle classi

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 sull’oggetto di quel tipo

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

Gli oggetti 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) Ogni classe può creare più oggetti, ognuno dei quali pur essendo dello stesso tipo è distinto dagli altri Un oggetto è l’istanza di una classe

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 I metodi della classe CD servono per impostare e recuperare i valori degli attributi

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

Stato di un oggetto L’insieme dei valori degli attributi di un oggetto è chiamato stato dell’oggetto e generalmente può variare in funzione del tempo

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

Istanziare un oggetto Java 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 l’istruzione new Esempio: Bicchiere calice; calice = new Bicchiere(); Oppure: Bicchiere calice = new Bicchiere();

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

Attributi di classe 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. public class Gatto { public static int numeroDiGatti = 0; public Gatto() { numeroDiGatti ++; } 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 è: <NomeClasse>.<NomeAttributo> per esempio System.out.print(Gatto.numeroDiGatti);

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

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 è anche chiamato semplicemente metodo.

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

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

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

Equazione: diagramma di classe

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

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. 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; } public float somma(float addendo1, float addendo2) { L’overloading consente di sovraccaricare il metodo con più di un significato.

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

Modificatori public: consente a qualunque classe o oggetto di qualsiasi tipo di avere accesso all’attributo o al metodo a cui è applicato. protected: consente l’accesso 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 l’accesso 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 all’attributo o al metodo.

Interazione tra oggetti Per comunicare, gli oggetti possono utilizzare i metodi, scambiandosi messaggi l’uno con l’altro. Quando un oggetto invoca un metodo di un altro, quest’ultimo reagisce eseguendo il metodo opportuno. L’invocazione 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 messaggio ha la seguente sintassi: <NomeOggetto>.<nomeMetodo>(<paramteri>)