Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Slides:



Advertisements
Presentazioni simili
Hardware e Software Hardware costituito dai componenti materiali, tangibili del computer: tastiera, video, mouse, scheda madre, scheda video, stampante,
Advertisements

Unità di apprendimento 6 Dal problema al programma.
Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica FONDAMENTI DI INFORMATICA Domenico Talia
CORSO elementare su DATABASE Applicativo utilizzato OpenOffice 3.0.
Progettare e programmare PROF.SENAREGA. Progettazione nella scuola  Processo mirato a definire e descrivere le finalità e le caratteristiche o modalità.
1 Elementi DI INFORMATICA Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica Linguaggio C A.A. 2011/2012
Presentazione della piattaforma e - learning MOODLE a cura di Davide Afretti Bologna, 24 aprile 2013.
CONTROLLO DELLA CONCORRENZA
La progettazione concettuale
La chimica della vita Ogni organismo vivente è una macchina sofisticata, risultato di un complesso insieme di reazioni chimiche. La costruzione e il funzionamento.
Ereditarietà Uno dei principi della programmazione orientata agli oggetti (OOP) è il riuso Le classi dovrebbero essere progettate come componenti riutilizzabili.
© 2007 SEI-Società Editrice Internazionale, Apogeo
Come scrivere una relazione
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning
LA PROGRAMMAZIONE: Algoritmi e programmi
Pensiero Computazionale
Coding unplugged e con il PC nella scuola primaria
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Rappresentazione dell’ Informazione Informazione e Comunicazione
prof.ssa Elisabetta Bazzetta
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning
Rielaborato da Atzeni et al., Basi di dati, Mc-Graw Hill
La rappresentazione delle informazioni
Il Sistema Operativo Programmazione Concorrente
Dal problema al processo risolutivo
CRITTOGRAFIA Per crittografia si intende la protezione delle informazioni mediante l'utilizzo di codici e cifre. La crittografia è un componente fondamentale.
Controlli Automatici - A.A. 2003/2004
Raccolta ed Analisi dei Requisiti nella Progettazione
Algoritmi e soluzioni di problemi
DIRIGERE L’INNOVAZIONE
IL CONCETTO DI ALGORITMO
Dal problema al processo risolutivo
Il Binding Nicolò Sordoni.
Basi di Dati: Introduzione
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
UML Creato da: Enrico Tarantino Alessandro Vilucchi Roberta Barcella.
Tipo di dato: array Un array è un tipo di dato usato per memorizzare una collezione di variabili dello stesso tipo. Per memorizzare una collezione di 7.
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Programmazione ad Oggetti per la Fisica
analizzatore di protocollo
Corso di Ingegneria del Web A A Domenico Rosaci 1
MODULO 1 – Computer essentials
Gli schemi concettuali
Caratteristiche e funzioni della scheda Arduino
OBJECT ORIENTED DATABASE
Statistica Scienza che studia i fenomeni collettivi.
Programmare.
Programmazione e Laboratorio di Programmazione
Progettazione concettuale
Programmazione e Laboratorio di Programmazione
La modellazione concettuale
Sistemi informativi statistici
Ricorsione 16/01/2019 package.
Definizione di linguaggio di programmazione
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
OpenLayers Client di mappe “non solo” WMS
Concorrenza e parallelismo
Parti interne del computer
Il Diagramma di Flusso Docente: Maria Savina Rossi Alunne:
Dalle prove INVALSI alla didattica
Unità D2 Dal problema all’algoritmo
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
UML Diagramma statico di una classe
Programmazione e Laboratorio di Programmazione
Linguaggio di Modellazione Unificato
Array e Stringhe Linguaggio C.
Unità D1 L’informatica e il problem solving
Algoritmi.
Transcript della presentazione:

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 04 Programmi e Oggetti Software Alfonso Miola Ottobre 2012 http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Programmi e Oggetti Software Contenuti Cosa è un programma Cosa significa programmare Il punto di vista del programmatore Il punto di vista dell’utente Paradigmi di programmazione La programmazione ad oggetti Oggetti software – Esempi L’oggetto System.out L’oggetto Math Gli oggetti String http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Programmi e Oggetti Software Prerequisiti Questo capitolo presuppone la conoscenza degli argomenti già trattati nelle precedenti lezioni di questo corso e riportati nelle rispettive dispense, con particolare riferimento al capitolo 1 del libro di testo http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Programmi e Oggetti Software Che cosa è un programma Un programma (o applicazione) è usato da un utente per risolvere un problema con l’ausilio di un calcolatore Un programma mostra a un utente, attraverso la sua interfaccia, la rappresentazione, nel calcolatore, di una porzione di mondo reale fatto di oggetti la porzione di mondo rappresentata da un programma è la realtà di interesse del programma un programma rappresenta nel calcolatore gli oggetti di una certa realtà di interesse, intesi e quindi rappresentati come dati e operazioni http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Il punto di vista dell’utente Un utente è interessato ad usare un programma (applicazione) per risolvere un problema facendo eseguire un insieme di operazioni a un calcolatore ciascuna operazione costituisce uno strumento per l’utente del programma l’esecuzione di ciascuna operazione corrisponde allo svolgimento di una sequenza di azioni da parte del calcolatore l’effetto finale dell’esecuzione delle operazioni porta al raggiungimento di un risultato che costituisce per l’utente la soluzione del problema http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Il calcolatore per un utente Quindi un utente che utilizza un programma (applicazione) vede il calcolatore come una macchina dedicata alla soluzione del problema da risolvere l’utente non deve necessariamente conoscere le problematiche della programmazione così come per poter guidare un’auto non bisogna essere necessariamente un ingegnere meccanico l’utente interagisce con l’applicazione attraverso la sua interfaccia l’interfaccia consente all’utente di usare i dati e le operazioni disponibili nell’applicazione http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Che cosa è la programmazione scrittura (sintesi) di programmi controllo — un calcolatore fa quello che gli viene detto di fare concretezza — un calcolatore per eseguire un compito ha bisogno di istruzioni dettagliate insegnamento — un calcolatore impara a eseguire nuove operazioni quando e solo se gli viene detto come vanno realizzate modellazione — un programma rappresenta nel calcolatore una porzione di mondo, la realtà di interesse astrazione — il programmatore deve identificare le caratteristiche essenziali della realtà di interesse da modellare, evitando di descrivere dettagli inutili http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Il punto di vista del programmatore Per un programmatore, un programma è un insieme di frasi (istruzioni) che descrivono una certa realtà di interesse in un linguaggio di programmazione Le istruzioni di un programma servono a descrivere il modo con cui devono essere rappresentati i dati della realtà di interesse del programma e le azioni che devono essere svolte da parte del calcolatore quando un utente chiede l’esecuzione di una certa operazione http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Il calcolatore per un programmatore Un programmatore è normalmente interessato solo agli strati più esterni dell’architettura di un calcolatore (secondo lo schema a cipolla) Gli strati più interni riguardano altre figure dell’informatica programmi applicativi strumenti di programmazione sistema operativo hardware http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Paradigmi di programmazione Esistono diversi approcci alla programmazione, chiamati paradigmi di programmazione nel paradigma di programmazione imperativa, un programma specifica le azioni che devono essere eseguite in sequenza per calcolare i risultati a partire dai dati nel paradigma di programmazione funzionale, un programma è la definizione di una funzione, parametrica rispetto ai dati, che calcola i risultati nel paradigma di programmazione logica, un programma è la descrizione delle proprietà che devono essere verificate dai risultati sulla base delle proprietà verificate dai dati http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Programmazione orientata agli oggetti Il paradigma di programmazione orientata agli oggetti è basato sul seguente punto di vista il mondo reale è fatto di oggetti dato che un programma è la rappresentazione nel calcolatore di una certa realtà di interesse, allora anche il programma è composto da oggetti opportunamente rappresentati, chiamati oggetti software un programma modella una realtà di interesse come una collezione di oggetti software che cooperano http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Oggetti e oggetti software Ciascun oggetto della realtà è: identificabile con un nome ha caratteristiche (proprietà) ben precise svolge funzioni specifiche ed esegue operazioni Un oggetto software non è quindi altro che una adeguata rappresentazione virtuale, nel calcolatore, di un oggetto della realtà, sia esso concreto oppure astratto http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Programmi e Oggetti Software Un oggetto software ha: un nome — che permette di referenziarlo con una identificazione univoca uno stato — un insieme di proprietà che lo caratterizzano un comportamento — un insieme di operazioni che sa eseguire si può richiedere a un oggetto software di eseguire una operazione mediante l’invio di un messaggio l’uso di un oggetto software è descritto dalla sua interfaccia che specifica le operazioni che sa eseguire con le relative modalità di utilizzo http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Programmi e Oggetti Software Un oggetto software è quindi un vero e proprio esecutore specializzato che: risolve specifici problemi può essere riusato ogni volta che serve può richiedere ad altri oggetti di svolgere funzioni di supporto per completare i propri scopi può essere composto con altri oggetti software per cooperare alla soluzione di problemi più complessi http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Programmi orientati agli oggetti La programmazione nel paradigma orientato agli oggetti consiste nella: identificazione delle tipologie di oggetti software necessari per la soluzione di un dato problema definizione del loro rispettivo progetto Un programma coordina le funzioni dei diversi oggetti coinvolti, per raggiungere il suo scopo finale L’esecuzione di un programma è quindi la cooperazione di più oggetti, ciascuno specializzato a risolvere un sottoproblema del problema posto http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Programmi e Oggetti Software Un oggetto reale Nel mondo reale esiste un oggetto concreto denominato “televisore”, nome che permette di far riferimento all’oggetto, ovvero, di referenziare l’oggetto Il televisore ha un suo stato è acceso o spento è sintonizzato su un certo canale ha un certo livello di volume Il televisore ha un suo comportamento sa eseguire alcune operazioni sa accendersi o spegnersi sa cambiare canale sa alzare o abbassare il volume http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Programmi e Oggetti Software Un altro oggetto reale Nel mondo reale esiste anche un’altro oggetto denominato “studente”, nome che permette di far riferimento all’oggetto, ovvero, di referenziare l’oggetto Lo studente ha un suo stato i suoi dati anagrafici il corso di laurea e l’anno a cui è iscritto il proprio piano di studi gli esami superati Lo studente ha un suo comportamento sa eseguire alcune operazioni sa iscriversi a un corso di laurea sa cambiare piano di studi sa superare un esame http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Programmi e Oggetti Software Operazioni e messaggi Si può ad esempio chiedere al televisore di eseguire una delle operazioni previste premendo un tasto del telecomando il telecomando invia al televisore la richiesta di esecuzione dell’operazione sotto forma di segnale elettromagnetico nella terminologia della programmazione orientata agli oggetti, come già detto, la richiesta dell’esecuzione di una operazione viene fatta mediante l’invio di un messaggio a un oggetto http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Programmi e Oggetti Software Interfaccia e uso Come già detto l’interfaccia di un oggetto è la descrizione dell’insieme delle operazioni che l’oggetto sa eseguire L’interfaccia di un oggetto è quindi una sorta di “manuale d’uso” dell’oggetto: l’elenco delle operazioni possibili, cioè ammissibili e quindi permesse la forma sintattica dei messaggi da inviare per richiedere una determinata operazione, cioè come formulare la richiesta Il significato dell’operazione, la semantica, cioè cosa si ottiene dall’esecuzione dell’operazione http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Programmi e Oggetti Software Proprietà e stato Come già detto in ogni istante, un oggetto è in un certo stato, descritto da un insieme di proprietà Ciascuna proprietà è caratterizzata da un nome, dal valore corrente e dall’insieme dei valori ammessi L’effetto di una operazione può consistere nel cambiamento dello stato (cioè del valore delle proprietà) dell’oggetto che la esegue http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Programmi e Oggetti Software Progettazione . . . La progettazione di un oggetto è la definizione delle caratteristiche dell’oggetto e dei dettagli per la sua realizzazione vengono definite le proprietà che determinano lo stato dell’oggetto viene definita l’interfaccia, cioè come l’oggetto potrà essere usato dall’utente viene definita ciascuna delle operazioni previste dall’interfaccia http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Programmi e Oggetti Software . . . Progettazione Ad esempio nell’ambito di un sistema di gestione delle carriere degli studenti, nella progettazione di un oggetto “studente” il progettista stabilisce come l’oggetto potrà essere usato dall’utente, cioè come, ad esempio, inserire o modificare informazioni relative all’oggetto Ad esempio nella progettazione di un televisore il progettista stabilisce come l’oggetto potrà essere usato dall’utente il progettista definisce lo schema elettrico del televisore http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Programmi e Oggetti Software Progettazione e riuso Nella progettazione di un oggetto si considera l’esistenza di altri oggetti già disponibili il cui riuso può essere funzionale allo scopo ad esempio, nella progettazione di un televisore si procede all’assemblaggio di oggetti (componenti elettronici) standard, disponibili sul mercato, che vengono usati conoscendone l’interfaccia componenti elettronici progettati in precedenza che vengono riusati senza modifiche componenti elettronici progettati appositamente Quali sono gli oggetti che sono possibili componenti di un oggetto studente nella progettazione di un sistema di segreteria studenti ? http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Progettazione di oggetti software Un oggetto software è progettato e realizzato da un programmatore la progettazione e realizzazione di componenti software è chiamata implementazione Il progetto di un oggetto software è chiamato classe i linguaggi per la definizione di classi sono i linguaggi di programmazione orientati agli oggetti http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Costruzione di oggetti software In genere la costruzione fisica di oggetti concreti viene fatta da una fabbrica ad esempio la fabbrica costruisce televisori sulla base del progetto del televisore La costruzione di oggetti software viene fatta da un calcolatore il calcolatore costruisce gli oggetti software a partire dalla classe che è il loro progetto il calcolatore viene usato come una macchina virtuale che sa costruire degli oggetti software, mediante l’esecuzione di istruzioni di appositi linguaggi di programmazione orientati agli oggetti, come ad esempio Java gli oggetti software esistono solo nei calcolatori, cioè esistono solo in modo virtuale http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Descrizione di oggetti software Gli oggetti software, che esistono solo virtualmente, vengono in genere descritti mediante un formalismo grafico (il linguaggio UML acronimo di Unified Modeling Language) Anche la cooperazione tra oggetti software viene descritta utilizzando il linguaggio UML va sottolineato che il linguaggio UML non è un linguaggio di programmazione UML è quindi solo un linguaggio per la descrizione di oggetti e classi http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

L’oggetto software System.out Lo schermo del calcolatore è un oggetto che viene rappresentato nei programmi da un oggetto software un oggetto software che modella lo schermo del calcolatore è System.out e può essere così descritto Ciascun oggetto software è caratterizzato da un nome (nell’esempio System.out) le operazioni identificate da un nome (nell’esempio println) eventualmente con dei parametri (nell’esempio frase) per i quali è definito un tipo (nell’esempio String) println(String frase) System.out http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Invio di un messaggio a System.out Per far visualizzare a System.out una frase, ad esempio la frase Ciao a tutti, è necessario inviargli il seguente messaggio println("Ciao a tutti") Infatti System.out si aspetta di ricevere messaggi per eseguire l’operazione println con una stringa di caratteri come parametro println("Ciao a tutti") System.out println(String frase) http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Programmi e Oggetti Software Utenti e uso di oggetti L’esempio ha mostrato l’uso di un oggetto software l’uso di un oggetto software è descritto dalla sua interfaccia si concretizza mediante l’invio di messaggi per l’utente di un oggetto software è sufficiente conoscere l’interfaccia dell’oggetto software l’utente di un oggetto software può ignorare come l’oggetto software sia fatto internamente http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Programmi e Oggetti Software Cosa è una Classe Una classe è il progetto di un oggetto software definizione del progetto completo dell’oggetto software definizione del progetto dello stato e del comportamento dell’oggetto software (ovvero della sua interfaccia) definizione dell’interfaccia dell’oggetto software definizione della modalità d’uso con la definizione delle operazioni che l’oggetto software deve poter eseguire La definizione della classe per un oggetto software è scritta dal programmatore usando come formalismo un linguaggio di programmazione (orientato agli oggetti) http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Costruzione di oggetti software Prima di poter utilizzare un oggetto software, è necessario costruirlo a partire dalla classe che ne definisce il progetto la costruzione di oggetti software viene svolta dal calcolatore, usato come macchina virtuale in grado di eseguire programmi scritti nel linguaggio di programmazione scelto esistono due modalità di costruzione di oggetti costruzione statica e costruzione dinamica tutti gli oggetti costruiti hanno uno stato e un comportamento che sono quelli definiti nella classe che ne rappresenta il progetto Si dice che gli oggetti costruiti appartengono alla classe che li definisce http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Modalità di costruzione statica Nella modalità di costruzione statica di oggetti software una classe è il progetto di un singolo oggetto software la definizione della classe corrisponde essenzialmente anche alla costruzione dell’oggetto software dalla classe l’aver definito una classe rende disponibile un oggetto software che ha le caratteristiche definite dalla classe la definizione della classe è anche la costruzione dell’unico oggetto che le appartiene la costruzione è quindi implicita e l’oggetto esiste già al momento della definizione della classe http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Modalità di costruzione dinamica Nella modalità di costruzione dinamica di oggetti software la classe è il progetto di un insieme di oggetti software dello stesso tipo questi oggetti appartengono tutti alla stessa classe, essi sono istanze della classe la costruzione di un oggetto software a partire dalla classe deve essere solitamente richiesta in modo esplicito vengono costruiti uno alla volta al momento in cui se ne fa richiesta, cioè quando se ne ha bisogno al momento della definizione della classe infatti non viene costruito nessun oggetto di quel certo tipo è possibile costruire, successivamente, tanti oggetti software di quel tipo ogni volta che serve questi oggetti sono fra di loro indipendenti http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Programmi e Oggetti Software Un oggetto software è chiamato oggetto classe se è l’oggetto software costruito automaticamente con modalità statica a partire dalla definizione di una classe oggetto istanza se è un oggetto software creato con modalità dinamica da una classe Nota bene: si parla genericamente (e più semplicemente) di oggetti quando la distinzione tra oggetto classe e oggetto istanza non è necessaria oppure è chiara dal contesto http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Componenti di una classe . . . Una classe è quindi il progetto di una tipologia di uno o più oggetti Poiché un oggetto consiste di stato e comportamento, in corrispondenza, la definizione di una classe deve comprendere la definizione di lo stato - definito attraverso la dichiarazione di variabili che rappresentano le proprietà dell’oggetto il comportamento - definito attraverso la definizione di metodi che implementano le operazioni dell’oggetto http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

. . . Componenti di una classe Nella modalità di costruzione statica si parla di variabili di classe blocchi di inizializzazione statica necessari all’assegnazione dei valori iniziali delle proprietà dell’unico oggetto della classe metodi di classe Nella modalità di costruzione dinamica si parla di variabili di istanza metodi di istanza costruttori – metodi speciali, che hanno lo stesso nome della classe, per richiedere al calcolatore, quando servono, la costruzione di oggetti istanza http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Programmi e Oggetti Software La classe Math La classe Math segue la modalità di costruzione statica Math è un oggetto che per sua natura è unico Math è un oggetto classe le proprietà di Math sono alcune costanti notevoli E = 2.71... PI = 3.14... double sqrt(double n) double pow(double b, double e) double log(double n) double random() ... «oggetto classe» Math static E : double static PI : double static double sqrt(double n) static double pow(double b, double e) static double log(double n) static double random() ... Math http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Programmi e Oggetti Software La classe String La classe String segue la modalità di costruzione dinamica un oggetto String rappresenta una stringa ogni stringa è un oggetto istanza della classe String gli oggetti String sanno eseguire operazioni utili per la loro gestione facenti parte dell’interfaccia della classe gli oggetti String vengono costruiti con il costruttore denominato String come la classe "calcolatore" : String calcolatore . . . le operazioni . . . http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Riepilogo della dispensa Cosa è un programma Cosa significa programmare Cosa è la programmazione ad oggetti Cosa sono gli oggetti software Cosa è una classe Costruzione statica e dinamica di classi Esempi di oggetti software e di classi Le successive diapositive sintetizzano quanto visto http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Programmi e Oggetti Software Che cosa è un programma Un programma (o applicazione) è usato da un utente per risolvere un problema con l’ausilio di un calcolatore Un programma mostra a un utente, attraverso la sua interfaccia, la rappresentazione, nel calcolatore, di una porzione di mondo reale fatto di oggetti http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Programmazione orientata agli oggetti Il paradigma di programmazione orientata agli oggetti è basato sul seguente punto di vista il mondo reale è fatto di oggetti dato che un programma è la rappresentazione nel calcolatore di una certa realtà di interesse, allora anche il programma è composto da oggetti opportunamente rappresentati, chiamati oggetti software un programma modella una realtà di interesse come una collezione di oggetti software che cooperano http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Programmi orientati agli oggetti La programmazione nel paradigma orientato agli oggetti consiste nella: identificazione delle tipologie di oggetti software necessari per la soluzione di un dato problema definizione del loro rispettivo progetto Un programma coordina le funzioni dei diversi oggetti coinvolti, per raggiungere il suo scopo finale L’esecuzione di un programma è quindi la cooperazione di più oggetti, ciascuno specializzato a risolvere un sottoproblema del problema posto http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Oggetti e oggetti software Ciascun oggetto della realtà è: identificabile con un nome ha caratteristiche (proprietà) ben precise svolge funzioni specifiche ed esegue operazioni Un oggetto software non è quindi altro che una adeguata rappresentazione virtuale, nel calcolatore, di un oggetto della realtà, sia esso concreto oppure astratto http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Programmi e Oggetti Software Un oggetto software ha: un nome — che permette di referenziarlo con una identificazione univoca uno stato — un insieme di proprietà che lo caratterizzano un comportamento — un insieme di operazioni che sa eseguire si può richiedere a un oggetto software di eseguire una operazione mediante l’invio di un messaggio l’uso di un oggetto software è descritto dalla sua interfaccia che specifica le operazioni che sa eseguire con le relative modalità di utilizzo http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Programmi e Oggetti Software Un oggetto software è quindi un vero e proprio esecutore specializzato che: risolve specifici problemi può essere riusato ogni volta che serve può richiedere ad altri oggetti di svolgere funzioni di supporto per completare i propri scopi può essere composto con altri oggetti software per cooperare alla soluzione di problemi più complessi http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Programmi e Oggetti Software Cosa è una Classe Una classe è il progetto di un oggetto software definizione del progetto completo dell’oggetto software definizione del progetto dello stato e del comportamento dell’oggetto software (ovvero della sua interfaccia) definizione dell’interfaccia dell’oggetto software definizione della modalità d’uso con la definizione delle operazioni che l’oggetto software deve poter eseguire http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Costruzione di oggetti software Prima di poter utilizzare un oggetto software, è necessario costruirlo a partire dalla classe che ne definisce il progetto la costruzione di oggetti software viene svolta dal calcolatore, usato come macchina virtuale in grado di eseguire programmi scritti nel linguaggio di programmazione scelto esistono due modalità di costruzione di oggetti costruzione statica e costruzione dinamica tutti gli oggetti costruiti hanno uno stato e un comportamento che sono quelli definiti nella classe che ne rappresenta il progetto si dice che gli oggetti costruiti appartengono alla classe che li definisce http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Modalità di costruzione statica Nella modalità di costruzione statica di oggetti software una classe è il progetto di un singolo oggetto software la definizione della classe corrisponde essenzialmente anche alla costruzione dell’oggetto software dalla classe l’aver definito una classe rende disponibile un oggetto software che ha le caratteristiche definite dalla classe la definizione della classe è anche la costruzione dell’unico oggetto che le appartiene la costruzione è quindi implicita e l’oggetto esiste già al momento della definizione della classe http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Modalità di costruzione dinamica Nella modalità di costruzione dinamica di oggetti software la classe è il progetto di un insieme di oggetti software dello stesso tipo questi oggetti appartengono tutti alla stessa classe, essi sono istanze della classe la costruzione di un oggetto software a partire dalla classe deve essere solitamente richiesta in modo esplicito vengono costruiti uno alla volta al momento in cui se ne fa richiesta, cioè quando se ne ha bisogno al momento della definizione della classe infatti non viene costruito nessun oggetto di quel certo tipo è possibile costruire, successivamente, tanti oggetti software di quel tipo ogni volta che serve questi oggetti sono fra di loro indipendenti http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

L’oggetto software System.out Lo schermo del calcolatore è un oggetto che viene rappresentato nei programmi da un oggetto software un oggetto software che modella lo schermo del calcolatore è System.out e può essere così descritto Ciascun oggetto software è caratterizzato da un nome (nell’esempio System.out) le operazioni identificate da un nome (nell’esempio println) eventualmente con dei parametri (nell’esempio frase) per i quali è definito un tipo (nell’esempio String) println(String frase) System.out http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Programmi e Oggetti Software La classe Math La classe Math segue la modalità di costruzione statica Math è un oggetto che per sua natura è unico Math è un oggetto classe le proprietà di Math sono alcune costanti notevoli E = 2.71... PI = 3.14... double sqrt(double n) double pow(double b, double e) double log(double n) double random() ... «oggetto classe» Math static E : double static PI : double static double sqrt(double n) static double pow(double b, double e) static double log(double n) static double random() ... Math http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Programmi e Oggetti Software La classe String La classe String segue la modalità di costruzione dinamica un oggetto String rappresenta una stringa ogni stringa è un oggetto istanza della classe String gli oggetti String sanno eseguire operazioni utili per la loro gestione facenti parte dell’interfaccia della classe gli oggetti String vengono costruiti con il costruttore denominato String come la classe "calcolatore" : String calcolatore . . . le operazioni . . . http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Riferimenti al libro di testo Per lo studio di questi argomenti si fa riferimento al libro di testo, e in particolare al capitolo 2 sugli oggetti software, tenendo conto che il paragrafo 2.3.3 – Un oggetto per la lettura da tastiera – lo vedremo in seguito e quindi per ora può essere saltato gli argomenti trattati nei seguenti paragrafi non faranno parte del programma d’esame e quindi devono essere omessi nello studio del capitolo 2.3.4 – Robot e labirinti 2.6.2 – Le classi Robot e Labirinto http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software