Progettazione. Prima di andare avanti. Progettazione di un applicazione. Modellare

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Progettazione. Prima di andare avanti. Progettazione di un applicazione. Modellare"

Transcript

1 Progettazione Fasi di progettazione e implementazione di un applicazione Esempio semplice con una classe Principio di core, separazione del Front-end e Back-end Esercitazione: progettazione di più classi (Tris) Punto della situazione Esercizi Prima di andare avanti Abbiamo appreso i concetti fondamentali di classe/oggetto/metodo Sappiamo scrivere semplici applicazioni Conosciamo i meccanismi di base di funzionamento del linguaggio Java D ora in poi approfondiremo la programmazione intesa in senso classico, ma prima di andare avanti: Focalizziamo l attenzione sul processo di progettazione 1 2 Progettazione di un applicazione Finora abbiamo visto semplici applicazioni in cui erano definite, al più, una classe vera e una classe test e che usavano un certo numero di classi delle API In generale un applicazione è composta da più classi che cooperano per realizzare ciò per cui l applicazione è stata scritta Ma come si decide quali classi definire? Modellare L approccio moderno alla programmazione antepone alla scrittura del codice una importantissima fase di modellazione All inizio si osserva il dominio del discorso (termini tecnici, tipi di documenti, figure professionali, agenti/persone coinvolte,...) dell applicazione che si intende realizzare e l ambiente in cui essa andrà ad operare (azienda, ufficio del magazzino, banca, biblioteca,...) 3 4

2 Progettazione Lo studio del dominio dell applicazione ha lo scopo di dare al progettista i mezzi e le conoscenze per scrivere un modello accurato del dominio in questione Nell approccio attuale si hanno diversi strumenti per modellare i diversi aspetti di un dominio di applicazione (statico, funzionale, dinamico,...) Esistono linguaggi e formalismi creati appositamente per esprimere questi modelli Ingegneria del software L ingegneria del software è la branca dell informatica che si occupa di definire metodologie, modelli e tecniche atte alla realizzazione di un buon software Nel corso di ingegneria del software verranno approfonditi gli aspetti cruciali della modellazione e verranno studiati formalismi adeguati (es: UML Unified Modeling Language,...) 5 6 Per ora Entità In questo corso introduttivo alla programmazione introduciamo alcuni aspetti fondamentali Il concetto di classe è uno di questi Abbiamo introdotto intuitivamente il concetto di classe Nella modellazione di un dominio di applicazione le classi sono usate per modellare insiemi di entità 7 Una entità nel dominio dell applicazione rappresenta un oggetto, in senso lato, o un attore che può avere diversi attributi, essere in relazione con altre entità e compiere/essere_oggetto_di alcune operazioni A seconda del tipo di applicazione un entità può essere molto concreta, oppure molto astratta: tutto dipende da ciò che si vuole modellare Esempi: automobili, conti bancari, persone, studenti, fatture, libri, schedari, generatori di finestre, pulsanti, riunioni, appuntamenti, componenti di un elettrodomestico, funzioni matematiche, matrici, fiori,... 8

3 Entità Le entità individuate nel dominio di applicazione nella fase di progettazione diventano gli oggetti di una certa classe nell implementazione dell applicazione, in un linguaggio orientato agli oggetti La definizione di una classe corrisponde alla formalizzazione delle caratteristiche comuni a certe entità che si sono individuate Gli attributi di queste entità diventano le variabili istanza degli oggetti della classe (ogni entità ha un certo insieme di attributi i cui valori la caratterizzano) Operazioni Ogni entità, oltre a un insieme di attributi, può avere la capacità di compiere alcune operazioni o di effettuare dei calcoli e restituire dei risultati Queste caratteristiche sono modellate attraverso i metodi delle classi Nella modellazione a oggetti ogni tipo di operazione deve essere associata ad un certo tipo di entità, o a un insieme di entità 9 10 Relazioni Il progetto Le entità sono in genere in relazione le une con le altre Entità dello stesso tipo hanno in genere relazioni dello stesso tipo con altre entità Queste relazione vengono tradotte, nel modello, in relazioni fra classi Esempio: relazioni isa ( è un ) fra sottoclassi e superclassi (ereditarietà) per avere a disposizione diverse astrazioni delle stesse entità Esempio: relazioni use ( usa ) fra classi che cooperano per realizzare una certa operazione che coinvolge diverse entità Usiamo i concetti di classe, oggetto, metodo, variabile istanza che abbiamo visto per definire un modello del dominio dell applicazione che vogliamo scrivere La prima fase, quella di progettazione, si deve occupare di: Individuare le classi di entità che servono Definire l insieme di attributi da tenere in considerazione per le entità di ogni classe Definire le operazioni associate alle entità o alle classi 11 12

4 Il modello Quello che deve scaturire dalla progettazione è l interfaccia pubblica delle classi che comporranno l applicazione Le classi di identità sono le classi Gli attributi sono le variabili istanza Le operazioni sono i metodi da chiamare sugli oggetti o sulle classi (metodi statici che eseguono operazioni associate a tutta una classe più che a un singolo oggetto della classe) Implementazione Una volta individuata questa struttura dell applicazione non resta che iniziare la fase di implementazione: Scrittura dei metodi Definizione di classi private e/o uso di classi delle API necessarie all implementazione Gestione degli errori... Ma non si risolve sempre tutto con una sola passata!!! Dall implementazione alla progettazione Spesso, soprattutto per applicazioni di dimensione medio-grande, in fase di implementazione si possono scoprire errori di progettazione: entità non considerate, operazioni mal distribuite, attributi troppo scarni o troppo abbondanti,... In questo caso si deve ritornare indietro a modificare il modello e poi si ritorna ad implementare Questo può accadere più volte se la modellazione non è stata svolta in maniera accurata Accade naturalmente quando si vuole ampliare/modificare l applicazione Esempio Supponiamo che il nostro dominio del discorso sia quello delle automobili Possiamo immaginare diverse applicazioni in questo dominio: Gestione del parco auto di un concessionario Archivio della motorizzazione Programma di supporto ai meccanici per la riparazione Archivio di un associazione di appassionati di auto d epoca Documentazione e previsione dei consumi di carburante delle macchine di una comunità 15 16

5 Quali entità? È facile rendersi conto che ognuna di queste applicazioni coinvolge diverse entità, alcune in comune con le altre, altre caratteristiche di ognuna L entità automobile, comunque, dovrà essere individuata sicuramente in ognuna di esse Tuttavia ogni applicazione necessita di considerare attributi di diversa natura, a diversi livelli di dettaglio Attributi L archivio della motorizzazione focalizza l attenzione solo su alcune delle caratteristiche possibili di un automobile Il programma di assistenza per i meccanici avrà bisogno di una dettagliatissima descrizione tecnica di ogni automobile Il concessionario gestisce anche la storia di auto usate, i prezzi, le ordinazioni Altre entità Esercizio Oltre alle automobili le diverse applicazioni coinvolgono altre entità caratteristiche del loro contesto L associazione di appassionati di auto d'epoca gestirà ritrovi, soci, rassegne stampa,... Il programma di supporto per meccanici probabilmente avrà bisogno di apparecchiature, pezzi di ricambio, fasi di smontaggio, Immaginare altre possibili applicazioni Quali entità si potrebbero individuare? Con quali attributi? Che tipo di operazioni sono caratteristiche di ogni applicazione? Come possono essere associate alle varie entità? Servono delle entità tramite? In che relazione sono le varie entità? 19 20

6 Esempio: gestione dei consumi Supponiamo di voler scrivere un applicazione che gestisce i consumi di alcune automobili Dividiamo il lavoro in diverse fasi dalla progettazione all implementazione Per prima cosa dobbiamo individuare le entità che ci servono e definire quindi le classi Fase 1: definizione delle classi Sicuramente avremo una classe Car che rappresenta le automobili Per ognuna, visto l intento dell applicazione, ci serviranno pochi dati: giusto quelli per identificarla univocamente e sapere a chi appartiene Vista la semplicità dell applicazione sembrerebbe che non ci sia bisogno di considerare altre classi In ogni caso possiamo sempre aggiungerne Fase 1: definizione delle classi Abbiamo visto gli attributi, vediamo le operazioni Per ogni auto vorremmo essere in grado di eseguire le seguenti operazioni: Aggiungere del carburante Percorrere una certa distanza Conoscere quanto carburante è rimasto nel serbatoio Fase 2: Assegnamo i nomi ai metodi Definiamo i nomi ai metodi e facciamo degli esempi di applicazione ad un certo oggetto: Car myfiat = new Car(...); /* non sappiamo ancora che tipo di costruttori abbiamo */ myfiat.addgas(20); myfiat.drive(100); myfiat.getgas(); myfiat.getdescription(); 23 24

7 Fase 3: interfaccia pubblica Scriviamo la documentazione per l interfaccia pubblica: /** Un automobile può percorrere una certa distanza e consumare carburante */ public class Car { /** Aggiunge carburante al amount la quantità in litri */ public void addgas(double amount) { } Fase 3: interfaccia pubblica /** Percorre una distanza consumando distance distanza in km */ public void drive(double distance) {} /** Ispeziona la quantità di carburante rimasta nel serbatoio } Fase 3: interfaccia la quantità rimasta in litri */ public double getgas() { } /** Dà una descrizione dell una stringa di descrizione */ public String getdescription() {} Fase 4: variabili istanza Chiediamoci quali variabili istanza possono servire affinché ogni oggetto della classe Car possa autonomamente (cioè con il suo stato e con i parametri dei metodi) eseguire tutti i metodi che possono essere chiamati su di lui Innanzitutto, per la descrizione, inseriamo i dati minimi necessari all identificazione della macchina e del proprietario Inoltre dobbiamo sicuramente tener traccia del carburante presente nel serbatoio 27 28

8 Fase 4: variabili istanza Fase 4: variabili istanza private String owner; private String registrationnum; private double gas; Ma non basta! Infatti con queste informazioni non riusciamo a prevedere, dopo una certa distanza percorsa, quanto carburante sarà stato consumato Abbiamo bisogno di inserire nello stato l informazione decisiva: i km percorsi per litro private double efficiency; Questo numero ci permette di decrementare della giusta quantità il carburante presente nel serbatoio dopo una certa distanza percorsa Carburante consumato = distanza percorsa / efficiency Fase 5: identificare i costruttori Fase 5: identificare i costruttori A volte basta quello di default che mette tutte le variabili istanza ai valori di default Ma in molti casi è bene definire costruttori specifici In questo caso è necessario inizializzare ogni oggetto con i valori per il nome del proprietario, la targa e i km per litro Per il carburante possiamo considerare zero come plausibile valore iniziale visto che il carburante può essere inserito con il metodo apposito Tuttavia possiamo definire un altro costruttore che specifichi anche una quantità di carburante iniziale /** Costruisce un automobile con dati descrittivi e efficienza assegnati. Carburante iniziale = anowner nome del aregistrationnum numero di anefficiency km percorsi con un litro di carburante */ public Car(String anowner, String aregistrationnum, double anefficiency) { } 31 32

9 Fase 5: identificare i costruttori Fase 6: realizzare i metodi /** Costruisce un automobile con dati descrittivi, efficienza e carburante iniziale anowner nome del aregistrationnum numero di anefficiency km percorsi con un litro di initialgas litri di carburante iniziale */ public Car(String anowner, String aregistrationnum, double anefficiency, double initialgas) { } Farlo per esercizio. Cominciare dai più semplici. Se ci si accorge che ci sono problemi si può tornare in una delle fasi precedenti (soprattutto quelle iniziali) e cercare di risolverli Compilare tutto e correggere tutti gli errori di compilazione Fase 7: collaudare la classe Scrivere una classe test oppure Caricare la classe su Bluej ed eseguire i test Es: Car papercar = new Car( Paperino, 313, 20); papercar.addgas(20); papercar.drive(100); double gasleft = papercar.getgas(); System.out.println( Rimasti + gasleft + litri ); Esercitazione Modellare il dominio del discorso Gioco del Tris nella maniera più accurata possibile Pensare al core dell'applicazione Le classi che si scrivono devono essere il più possibile stand-alone Le classi vanno definite indipendentemente dall'interfaccia che poi verrà usata per giocare 35 36

10 Esercitazione Ci potrà essere un'interfaccia testuale, o grafica o via rete... Questo non deve influenzare il modo con cui scriviamo le classi! Esse devono modellare solamente il gioco ed essere indipendenti dall'interfaccia scelta per giocare Principio di separazione del Front-end e del Back-end Front-end e Back-end Per Back-end di un'applicazione si intende quello che noi abbiamo chiamato il core, il nucleo dell'applicazione In parole semplici è la parte dell'applicazione (nel nostro caso l'insieme delle classi) che modella il dominio del discorso Nel Back-end avvengono i veri e propri calcoli Il Front-end è la parte dell'applicazione che fa da tramite tra l'utente e l'applicazione Front-end e Back-end Il Front-end può essere una interfaccia grafica BlueJ stesso può essere visto come un Frontend per le classi che vi carichiamo Il Front-end può essere una classe di test che crea degli oggetti, esegue dei metodi e visualizza tutto il processo sullo standard output Negli anni 80/90 il Front-end tipico era un'interfaccia testuale a menu (la più terribile quella con menu a scelta numerica!) Front-end e Back-end Il Back-end deve essere indipendente dal Front-end In questo modo l'applicazione può operare in diversi ambienti cambiando solo il Front-end Terminali grafici, terminali alfanumerici, palmari, piccoli schermi con lettori di smartcard, pagine web, middle-ware,... Sono tutti ambienti possibili in cui il Back-end può trovarsi ad operare 39 40

11 Esercitazione Fino adesso abbiamo visto: Il risultato dell'esercitazione dovrà essere la definizione dell'interfaccia pubblica di tutte le classi coinvolte Più le variabili istanza che ci si aspetta dovranno far parte dello stato degli oggetti Le classi, commentate con le convenzioni javadoc, dovranno essere scritte nei relativi file.java Per ora lasciamo vuota l'implementazione Editing, compilazione ed esecuzione di applicazioni Java Metodo main di una classe Stampa sullo standard output Definizione di classi API, es: le classi String, PrintStream Importazione di packages Modello di memoria della macchina astratta Java: pila di attivazioni, heap Fino adesso abbiamo visto: Fino adesso abbiamo visto: Dichiarazione di variabili di tipo base e di tipi riferimento, assegnamenti Creazione di oggetti Definizione di metodi Costruttori Chiamata di metodi su oggetti Visibilità delle variabili di frame e dei parametri di un metodo, riferimento this Classi Test/Collaudo di una o più classi Variabili istanza: fornire gli oggetti di uno stato, incapsulamento con specificatori di accesso Relazione usa fra le classi Rappresentazione dello stato in vari punti di un blocco in esecuzione Conflitti sui nomi e loro risoluzione Interfaccia pubblica di una classe 43 44

12 Fino adesso abbiamo visto: D ora in poi Commenti speciali per gli elementi dell interfaccia pubblica L utility javadoc e la creazione di API per le classi definite Quello che abbiamo appreso fino adesso ci permette di navigare con relativa facilità fra le diverse componenti di un applicazione Siamo in grado di progettare classi nuove, di usare le classi delle API, di definire semplici metodi Quello che faremo d ora in poi è acquisire maggiore capacità di programmazione classica L interno dei metodi Programmazione classica : La definizione delle classi e delle loro interfacce pubbliche sono la base e la struttura portante di ogni applicazione Java L implementazione dei metodi è la parte che permette all applicazione di operare effettivamente Il lavoro di calcolo in una applicazione avviene con l esecuzione dei metodi All interno dei metodi c è il codice che fa muovere tutto Fondamenti sui tipi di base, definizione di costanti, classi involucro Definizione di array Definizione di campi/metodi statici di una classe Acquisizione di input (da finestra/da console) Costrutti condizionali if, switch e scelte all interno del codice Cicli e iterazione: while, for 47 48

13 Esercizi Di seguito alcuni esercizi abbastanza semplici La progettazione coinvolge poche classi (in genere una sola) L'implementazione è alla nostra portata I metodi si possono implementare con i pochi costrutti Java che conosciamo Buon lavoro :-) Esercizio 1 Scrivere un programma che costruisca un oggetto Rectangle, lo stampi e successivamente lo sposti (metodo translate) e stampi altre tre volte in modo tale che, se ogni volta fosse disegnato, alla fine si avrebbe il seguente disegno: Esercizio 2 Esercizio 3 Consultare le API e trovare tutti i metodi della classe java.awt.rectangle Scrivere un programma che crei due rettangoli, li stampi e poi usi il metodo intersection per crearne un terzo, risultato dell intersezione dei due, e stamparlo Provare a vedere cosa succede se i due rettangoli hanno intersezione vuota Aggiungere alla classe SettableNameGreeter i seguenti metodi /** Stampa un saluto di commiato personalizzato */ public void saygoodbye() /** Stampa una frase in cui rifiuta gentilmente di aiutare la persona name */ public void refusehelp() 51 52

14 Esercizio 4 Esercizio 5 Scrivere una classe SavingsAccount che abbia le stesse funzionalità di BankAccount e in più una variabile istanza interest di tipo double che rappresenta un tasso di interesse Definire i costruttori che si ritengono necessari Definire il metodo addinterest che, ogni volta che viene chiamato, aggiunge al saldo gli interessi (Su un saldo di 1000 euro, gli interessi del 10% sono di 100 euro) Implementare una classe Employee (dipendente). Ciascun dipendente ha un nome (di tipo stringa) e un salario (di tipo double). Scrivere un costruttore senza parametri e uno con parametri nome e stipendio Scrivere metodi set/get per leggere e modificare nome e stipendio Scrivere un metodo raisesalary(double bypercent) che aumenti il salario della percentuale specificata Esercizio 6 Esercizio 7 Implementare una classe Student per una applicazione in cui si vogliano conoscere, per ogni studente, solo il nome e un punteggio totale delle risposte a dei quiz Fornire un costruttore appropriato Fornire il metodo addquiz(int score) per aggiungere il punteggio ottenuto ad un quiz Fornire il metodo gettotalscore() per conoscere il punteggio totale Fornire il metodo getaverage() per conoscere la media dei punteggi (Sugg. Per calcolare la media c è bisogno di tenere traccia del numero dei quiz ) 55 Implementare una classe Product. Ciascun prodotto ha un nome e un prezzo come ad esempio new Product( Tostapane, 29.95) Fornire il metodo getname() Fornire i metodi set/get per il prezzo Scrivere una classe Test che crei due prodotti e ne stampi il nome e il prezzo Successivamente diminuire il prezzo di entrambi di 5 euro e ristampare il tutto 56

15 Esercizio 8 Implementare una classe Circle che abbia i metodi getarea() e getperimeter() Nel costruttore indicare il raggio del cerchio Esercizio 9 Implementare una classe LattinaDiBirra con i metodi getsurfacearea() e getvolume, indicando nel costruttore il raggio della base e l altezza della lattina Si implementi similmente la classe Square (quadrato) con gli stessi metodi e indicando, nel costruttore, il lato del quadrato Esercizio 10 Esercizio 11 Implementare una classe RoachPopulation (popolazione di scarafaggi) Il costruttore riceve la dimensione della popolazione iniziale Il metodo waitfordoubling() simula un periodo di tempo in cui la popolazione raddoppia Il metodo spray() simula una spruzzata di insetticida che riduce la popolazione del 10% Il metodo getroaches() restituisce il numero attuale di scarafaggi. Scrivere una classe RabbitPopulation La popolazione iniziale è sempre di una coppia M/F di conigli I conigli sono in grado di accoppiarsi all età di un mese Un mese dopo ogni femmina genera un altra coppia di conigli Ipotizzare che i conigli non muoiano mai e che le femmine generino sempre una coppia M/F ogni mese a partire dal secondo mese Scrivere una classe Test o Collaudare con Bluej 59 60

16 Esercizio 11 Realizzare un metodo waitamonth() che fa trascorrere un mese Realizzare un metodo getpairs() che stampa il numero attuale di coppie di conigli Collaudare la classe con Bluej Suggerimento: usare una variabile istanza per le coppie di conigli neonate e un altra per quelle che hanno almeno un mese 61

Prima di andare avanti. Progettazione. La programmazione a oggetti. Progettazione di un applicazione. Progettazione. Ingegneria del software

Prima di andare avanti. Progettazione. La programmazione a oggetti. Progettazione di un applicazione. Progettazione. Ingegneria del software Prima di andare avanti Progettazione Fase di progettazione di un applicazione Fase di implementazione Abbiamo appreso i concetti fondamentali di classe/oggetto/metodo Sappiamo scrivere semplici applicazioni

Dettagli

Progettazione. Fase di progettazione di un applicazione Fase di implementazione. 2/11/2004 Laboratorio di Programmazione - Luca Tesei 1

Progettazione. Fase di progettazione di un applicazione Fase di implementazione. 2/11/2004 Laboratorio di Programmazione - Luca Tesei 1 Progettazione Fase di progettazione di un applicazione Fase di implementazione 2/11/2004 Laboratorio di Programmazione - Luca Tesei 1 Prima di andare avanti Abbiamo appreso i concetti fondamentali di classe/oggetto/metodo

Dettagli

Progettazione. Fasi di progettazione e implementazione di un applicazione Esempio semplice con una classe Esercizi

Progettazione. Fasi di progettazione e implementazione di un applicazione Esempio semplice con una classe Esercizi Progettazione Fasi di progettazione e implementazione di un applicazione Esempio semplice con una classe Esercizi 1 Prima di andare avanti Abbiamo appreso i concetti fondamentali di classe/oggetto/metodo

Dettagli

Progettazione. Laboratorio di Programmazione

Progettazione. Laboratorio di Programmazione Progettazione Fasi di progettazione e implementazione di un applicazione Esempio semplice con una classe Principio di core, separazione del Front-end e Back-end Esercitazione: progettazione di più classi

Dettagli

Car myfiat = new Car(...); /* non sappiamo ancora che tipo di costruttori abbiamo */ myfiat.addgas(20); myfiat.drive(100); myfiat.getgas(); myfiat.getdescription(); /** Un automobile può percorrere una

Dettagli

Oggetti. La programmazione orientata agli oggetti, OOP (Object-Oriented Programming), prende il nome dall elemento su cui si basa, l oggetto.

Oggetti. La programmazione orientata agli oggetti, OOP (Object-Oriented Programming), prende il nome dall elemento su cui si basa, l oggetto. Classi e oggetti Oggetti La programmazione orientata agli oggetti, OOP (Object-Oriented Programming), prende il nome dall elemento su cui si basa, l oggetto. OOP Vantaggi facilità di lettura e di comprensione

Dettagli

A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas

A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas Classi e oggetti A. Lorenzi, A. Rizzi Java. Programmazione ad oggetti e applicazioni Android Istituto Italiano Edizioni Atlas Oggetti La programmazione orientata agli oggetti, OOP (Object-Oriented Programming),

Dettagli

Usare e costruire oggetti. Concetti Fondamentali. Interfaccia Pubblica di una. Application Program Interface

Usare e costruire oggetti. Concetti Fondamentali. Interfaccia Pubblica di una. Application Program Interface Concetti Fondamentali Interfaccia pubblica di una classe Le API di Java Lo spazio di memoria della macchina astratta Java Blocchi e sottoblocchi Variabili di frame e loro visibilità Importazioni di classi

Dettagli

Esercitazione n 2. Obiettivi

Esercitazione n 2. Obiettivi Esercitazione n 2 Obiettivi Progettazione di una applicazione Java Utilizzo di classi come schemi Utilizzo di costruttori Utilizzo di stringhe Uguaglianza tra oggetti Utilizzo di classi come componenti

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T1 C1 Incapsulamento e tecniche OOP 1 Prerequisiti Tecnica elementare della programmazione Principi di programmazione OOP Metodologie di progettazione software 2 1 Introduzione

Dettagli

L oggetto creato. Creazione di Oggetti. Rectangle: il concetto 10. Costruzione. Lo spazio di memoria del linguaggio Java. Rectangle: l oggetto

L oggetto creato. Creazione di Oggetti. Rectangle: il concetto 10. Costruzione. Lo spazio di memoria del linguaggio Java. Rectangle: l oggetto Usare e costruire oggetti Variabili e Oggetti Lo spazio di memoria di Java Le API di Java Gli oggetti sono entità di un programma che si possono manipolare invocando i metodi System.out oggetto della classe

Dettagli

Lezione 5 Namespace e JavaDoc

Lezione 5 Namespace e JavaDoc Lezione 5 Namespace e JavaDoc Vittorio Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Organizzazione della lezione Il namespace di Java: i package

Dettagli

Esercitazione n 2. Obiettivi

Esercitazione n 2. Obiettivi Esercitazione n 2 Obiettivi Progettazione di una applicazione Java Utilizzo di classi come schemi Utilizzo di costruttori Utilizzo di stringhe/array Uguaglianza tra oggetti Utilizzo di classi come componenti

Dettagli

Programmi e Oggetti Software

Programmi e Oggetti Software Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 06 Programmi e Oggetti Software Marzo 2010 Programmi e Oggetti Software 1 Contenuti Cosa è un programma Cosa significa programmare Il

Dettagli

Programmazione orientata agli oggetti Classi astratte e interfacce. Classi astratte - Interfacce

Programmazione orientata agli oggetti Classi astratte e interfacce. Classi astratte - Interfacce Programmazione orientata agli oggetti Classi astratte e interfacce 1 Classi astratte Java ci consente di definire classi in cui uno o più metodi non sono implementati, ma solo dichiarati Questi metodi

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE

INTRODUZIONE ALLA PROGRAMMAZIONE INTRODUZIONE ALLA PROGRAMMAZIONE Prof. Enrico Terrone A. S: 2008/09 Definizioni Programmare significa risolvere problemi col computer, cioè far risolvere problemi al computer attraverso un insieme di informazioni

Dettagli

Programmi e Oggetti Software

Programmi e Oggetti Software Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 2 Programmi e Oggetti Software Alfonso Miola Settembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Programmi e Oggetti Software

Dettagli

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso Obiettivi Di seguito vengono riportate una serie di domande che possono essere poste durante la prova formale del corso. Le seguenti domande non sono da ritenersi esaustive ma esemplificative. 1. Architettura

Dettagli

Programmazione orientata agli oggetti Classi astratte e interfacce. Classi astratte - Interfacce

Programmazione orientata agli oggetti Classi astratte e interfacce. Classi astratte - Interfacce Programmazione orientata agli oggetti Classi astratte e interfacce 1 Classi astratte Java ci consente di definire classi in cui uno o più metodi non sono implementati, ma solo dichiarati Questi metodi

Dettagli

Definiamo la prima classe vera. Concetti fondamentali 2. Il corpo del metodo. Definizione di un metodo

Definiamo la prima classe vera. Concetti fondamentali 2. Il corpo del metodo. Definizione di un metodo Concetti fondamentali 2 Definiamo la prima classe vera Definizione e chiamata di metodi Collaudo di una classe Packages Uso delle variabili istanza Seguire l'esecuzione punto per punto Semantica della

Dettagli

Esercitazione n 2. Obiettivi

Esercitazione n 2. Obiettivi Esercitazione n 2 Obiettivi Progettazione di una applicazione Java Utilizzo di classi come schemi Utilizzo di costruttori Utilizzo di stringhe Uguaglianza tra oggetti Utilizzo di classi come componenti

Dettagli

Esercizi Interfacce Ereditarietà

Esercizi Interfacce Ereditarietà Esercizi Interfacce Ereditarietà Esercizi su: Interfacce Polimorfismo Ereditarietà 1 Definire una classe Quiz che implementi l'interfaccia Measurable Un Quiz ha un punteggio espresso da un numero Usare

Dettagli

Array di array. E' possibile creare strutture a matrice (2D, 3D,..., ND), esempio: double [ ][ ] entrate = new double [NANNI][NMESI];

Array di array. E' possibile creare strutture a matrice (2D, 3D,..., ND), esempio: double [ ][ ] entrate = new double [NANNI][NMESI]; Array di array E' possibile creare strutture a matrice (2D, 3D,..., ND), esempio: double [ ][ ] entrate = new double [NANNI][NMESI]; Per l'accesso ai dati è necessario utilizzare il doppio indice: entrate

Dettagli

Scelte. Costrutto condizionale. Il costrutto if. Il costrutto if. Rappresentazione con diagramma a blocchi. Il costrutto if

Scelte. Costrutto condizionale. Il costrutto if. Il costrutto if. Rappresentazione con diagramma a blocchi. Il costrutto if Scelte Costrutto condizionale Scelte, blocchi Fino ad ora il corpo dei metodi che abbiamo scritto aveva solo un modo di essere eseguito: in sequenza dalla prima istruzione all ultima In applicazioni non

Dettagli

Definizione di classi. Walter Didimo

Definizione di classi. Walter Didimo Definizione di classi Walter Didimo Definizione di classi Fino ad ora abbiamo imparato a: creare oggetti da classi già pronte usare gli oggetti creati, invocando metodi la creazione e l uso di oggetti

Dettagli

Input. Il tipo char Alcune modalità di acquisizione di input. Laboratorio di Programmazione - Luca Tesei

Input. Il tipo char Alcune modalità di acquisizione di input. Laboratorio di Programmazione - Luca Tesei Input Il tipo char Alcune modalità di acquisizione di input 1 Lettura di dati in input Vediamo due modi per acquisire dei dati di input dall utente: 1. Tramite una finestra grafica di dialogo 2. Tramite

Dettagli

Informatica Ereditarietà Java. Ereditarietà

Informatica Ereditarietà Java. Ereditarietà Ereditarietà L'ereditarietà consente allo sviluppatore di riutilizzare il codice già scritto creando sottoclassi a partire da classi già definite. La sottoclasse eredita tutti gli attributi e tutti i metodi

Dettagli

Programmazione orientata agli oggetti Classi astratte e interfacce

Programmazione orientata agli oggetti Classi astratte e interfacce Programmazione orientata agli oggetti Classi astratte e interfacce Fondamenti di Informatica L-B 1 Classi astratte Java ci consente di definire classi in cui uno o più metodi non sono implementati, ma

Dettagli

Classi ed Oggetti. Fondamenti di Informatica A-K

Classi ed Oggetti. Fondamenti di Informatica A-K Classi ed Oggetti Fondamenti di Informatica A-K Esercitazione 5 Introduzione al calcolatore e Java Linguaggio Java, basi e controllo del flusso I metodi: concetti di base Stringhe ed array Classi e oggetti,

Dettagli

Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura:

Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura: Le classi in java Un semplice programma java, formato da una sola classe, assume la seguente struttura: class Domanda static void main(string args[]) System.out.println( Quanti anni hai? ); La classe dichiarata

Dettagli

Programmazione con Java

Programmazione con Java Programmazione con Java Classi e istanze in Java Definizione di classe in Java A meno che non si usino classi già scritte da altri, prima di poter creare un qualsiasi oggetto devo creare la sua rappresentazione:

Dettagli

Introduzione alla programmazione orientata agli oggetti (prima parte) Rel 1.0

Introduzione alla programmazione orientata agli oggetti (prima parte) Rel 1.0 Introduzione alla programmazione orientata agli oggetti (prima parte) Rel 10 a cura del prof Francesco Tappi Il paradigma orientato agli oggetti implica lo sviluppo di unità di programmazione attive, chiamate

Dettagli

Concetti principali Ereditarietà e (overriding) di metodi. Ereditarietà e costruttori Livelli di accesso protected e package La classe Object

Concetti principali Ereditarietà e (overriding) di metodi. Ereditarietà e costruttori Livelli di accesso protected e package La classe Object Ereditarietà Concetti principali Ereditarietà e (overriding) di metodi Dynamic dispatch e polimorfismo Ereditarietà e costruttori Livelli di accesso protected e package La classe Object metodi tostring,

Dettagli

Programmazione ad oggetti

Programmazione ad oggetti Programmazione ad oggetti 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.

Dettagli

Metodi e variabili istanza

Metodi e variabili istanza Metodi e variabili istanza Definizione e chiamata di metodi Uso delle variabili istanza Documentazione del codice 29/10/2004 Laboratorio di Programmazione - Luca Tesei 1 Definiamo la prima classe vera

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA2 2.1- Funzioni 1 Prerequisiti Programmazione elementare in Java Tecnica top-down Concetto matematico di funzione Compilazione e link di programmi Esecuzione di funzioni

Dettagli

Fondamenti di informatica T-1 (A K) Esercitazione 2 Basi del linguaggio Java

Fondamenti di informatica T-1 (A K) Esercitazione 2 Basi del linguaggio Java Fondamenti di informatica T-1 (A K) Esercitazione 2 Basi del linguaggio Java AA 2018/2019 Tutor Lorenzo Rosa lorenzo.rosa@unibo.it 2 Programma Introduzione al calcolatore e Java Linguaggio Java, basi e

Dettagli

Modulo 2: Strutture fondamentali della programmazione Java

Modulo 2: Strutture fondamentali della programmazione Java Modulo 2: Strutture fondamentali della programmazione Java Argomenti Trattati: Un semplice programma Java: Presentazione di un primo Esempio; Introduzione alla struttura; Compilazione ed esecuzione. Argomenti

Dettagli

Programmazione I - corso B a.a prof. Viviana Bono

Programmazione I - corso B a.a prof. Viviana Bono Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 2009-10 prof. Viviana Bono Blocco 12 Riepilogo e complementi sui tipi Ripasso del sistema di tipi

Dettagli

INFORMATICA OOP Relazioni tra classi Roberta Gerboni

INFORMATICA OOP Relazioni tra classi Roberta Gerboni 2015 - Roberta Gerboni Relazione di associazione E possibile legare varie classi presenti in un progetto con una relazione di associazione. Una associazione individua una connessione logica tra classi

Dettagli

Strutture dati. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05

Strutture dati. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05 Strutture dati Il che cosa e il come Il che cosa ed il come Struttura dati: descrive come sono organizzati i dati e come sono realizzate le operazioni su di essi (cioe come si accede ai dati) Specifica

Dettagli

Esercizi di autovalutazione Risposte agli esercizi di autovalutazione Esercizi... 64

Esercizi di autovalutazione Risposte agli esercizi di autovalutazione Esercizi... 64 Sommario PREFAZIONE... IX Il nostro approccio didattico... ix Software incluso con questo libro... xii Una panoramica del libro... xiii Ringraziamenti... xv Gli autori... xvii Deitel & Associates, Inc....

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 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

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

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

Dettagli

I Metodi. Fondamenti di Informatica A-K

I Metodi. Fondamenti di Informatica A-K I Metodi Fondamenti di Informatica A-K Esercitazione 3 Introduzione al calcolatore e Java Linguaggio Java, basi e controllo del flusso I metodi: concetti di base Stringhe ed array Classi e oggetti, costruttori,

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica (L-Z) Corso di Laurea in Ingegneria Gestionale Object Oriented Programming: Fondamenti Prof. Stefano Mariani Dott. Alket Cecaj Indice Introduzione all OOP Classi vs. oggetti Campi

Dettagli

Fondamenti di informatica T-1 (A K) Esercitazione 7: metodi, classi, oggetti

Fondamenti di informatica T-1 (A K) Esercitazione 7: metodi, classi, oggetti Fondamenti di informatica T-1 (A K) Esercitazione 7: metodi, classi, oggetti AA 2018/2019 Tutor lorenzo.rosa@unibo.it 2 Esercitazione 7 Introduzione al calcolatore e Java Linguaggio Java, basi e controllo

Dettagli

Le basi del linguaggio Java

Le basi del linguaggio Java Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa 04 Introduzione ai Tipi astratti di dato A. Miola Febbraio 2007 http://www.dia.uniroma3.it/~java/fondinf2/ Introduzione ADT 1

Dettagli

Sommario. I Uso degli oggetti 39

Sommario. I Uso degli oggetti 39 Questo è l'indice del libro, in cui sono evidenziati i paragrafi corrispondenti agli argomenti trattati nel corso e che costituiranno il programma d'esame. Alcuni argomenti sono stati trattati nelle lezioni

Dettagli

Linguaggi di Programmazione II Matricole con le due ultime cifre dispari

Linguaggi di Programmazione II Matricole con le due ultime cifre dispari Cognome e Nome: Numero di Matricola: Spazio riservato alla correzione 1 2 3 4 5 6 totale /5 /10 /10 /30 /25 /20 /100 Non usare altri fogli, usare solo lo spazio sottostante. Fogli differenti da questo

Dettagli

I L IN I GU G AGG G I G O

I L IN I GU G AGG G I G O JAVA IL LINGUAGGIO Tipi e variabili Ogni valore nel linguaggio ha un tipo Ogni variabile deve essere dichiarata ed associata ad un tipo: String greeting = "Hello, World!"; PrintStream printer = System.out;

Dettagli

JAVA IL LINGUAGGIO. Ogni valore nel linguaggio ha un tipo Ogni variabile deve essere dichiarata ed associata ad un tipo:

JAVA IL LINGUAGGIO. Ogni valore nel linguaggio ha un tipo Ogni variabile deve essere dichiarata ed associata ad un tipo: JAVA IL LINGUAGGIO Tipi e variabili Ogni valore nel linguaggio ha un tipo Ogni variabile deve essere dichiarata ed associata ad un tipo: String greeting = "Hello, World!"; PrintStream printer = System.out;

Dettagli

Tipi riferimento e stringhe

Tipi riferimento e stringhe Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 8 Tipi riferimento e stringhe A. Miola Novembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Tipi riferimento e stringhe 1

Dettagli

Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I)

Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I) Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I) Ing. Gianluca Caminiti Sommario ( OOP ) Programmazione Object-Oriented Incapsulamento, Ereditarietà, Polimorfismo Richiami

Dettagli

18 - Classi parzialmente definite: Classi Astratte e Interfacce

18 - Classi parzialmente definite: Classi Astratte e Interfacce 18 - Classi parzialmente definite: Classi Astratte e Interfacce Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/

Dettagli

17 - Classi parzialmente definite: Classi Astratte e Interfacce

17 - Classi parzialmente definite: Classi Astratte e Interfacce 17 - Classi parzialmente definite: Classi Astratte e Interfacce Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Metafora Parte a versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

A. Ferrari. informatica. Java basi del linguaggio. Alberto Ferrari Informatica

A. Ferrari. informatica. Java basi del linguaggio. Alberto Ferrari Informatica informatica Java basi del linguaggio Alberto Ferrari Informatica struttura di un programma Java /** * Classe EsempioProgramma * Un esempio di programmazione in Java * @author 4A Informatica */ public class

Dettagli

Proprietà delle Classi e degli Oggetti in Java

Proprietà delle Classi e degli Oggetti in Java Fondamenti di Informatica Proprietà delle Classi e degli Oggetti in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Proprietà object-oriented di Java Definendo le caratteristiche e le operazioni di

Dettagli

Dichiarazione di una classe. Dichiarazione ereditarietà

Dichiarazione di una classe. Dichiarazione ereditarietà Introduzione Il Java è un linguaggio di programmazione orientato agli oggetti (OOL), perché permette di realizzare in un programma tutti i concetti alla base dell OOP quali: l astrazione dei dati, mediante

Dettagli

PROGRAMMAZIONE DIDATTICA DI DIPARTIMENTO A.S. 2017/2018

PROGRAMMAZIONE DIDATTICA DI DIPARTIMENTO A.S. 2017/2018 ISTITUTO ISTRUZIONE SUPERIORE EINAUDI - SCARPA TECNOLOGICO - ECONOMICO PROFESSIONALE Via J. Sansovino, 6-31044 MONTEBELLUNA (TV)0423 23587 - Fax 0423 602717 web: www.iiseinaudiscarpa.gov.itemail: info@iiseinaudiscarpa.gov.it

Dettagli

Programmazione II. Lezione 23. Daniele Sgandurra 28/1/2011.

Programmazione II. Lezione 23. Daniele Sgandurra 28/1/2011. Programmazione II Lezione 23 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 28/1/2011 1/20 Programmazione II Lezione 23 28/1/2011 Sommario 1 2/20 Programmazione II Lezione 23 28/1/2011 Parte I 3/20 Programmazione

Dettagli

Operazioni numeriche - Input

Operazioni numeriche - Input Operazioni numeriche - Input Espressioni, funzioni matematiche, classi involucro, Acquisizione di input 11/11/2004 Laboratorio di Programmazione - Luca Tesei 1 Operazioni fra interi e decimali In Java

Dettagli

Programmazione A.A Costrutti di base. ( Lezione XII, parte I ) Gestione dell input. Prof. Giovanni Gallo Dr.

Programmazione A.A Costrutti di base. ( Lezione XII, parte I ) Gestione dell input. Prof. Giovanni Gallo Dr. Programmazione A.A. 2002-03 I Costrutti di base ( Lezione XII, parte I ) Gestione dell input Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica Università di Catania e-mail

Dettagli

Proprietà delle Classi e degli Oggetti in Java

Proprietà delle Classi e degli Oggetti in Java Fondamenti di Informatica Proprietà delle Classi e degli Oggetti in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Proprietà object-oriented di Java Definendo le caratteristiche e le operazioni di

Dettagli

Programmazione = decomposizione basata su astrazioni

Programmazione = decomposizione basata su astrazioni Programmazione = decomposizione basata su astrazioni 1 Decomposizione in moduli necessaria quando si devono sviluppare programmi abbastanza grandi decomporre il problema in sotto-problemi i moduli che

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA4 A2 Utilizzo di classi 1 Prerequisiti Implementazione di classi Funzionamento di una classe Parametri formali e attuali di una funzione 2 1 Introduzione In questa

Dettagli

Funzioni, Stack e Visibilità delle Variabili in C

Funzioni, Stack e Visibilità delle Variabili in C Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7

Dettagli

Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)

Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo) Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo) Selezione di prove di esame al calcolatore Esercizio 1 (esame del 13/01/2006) La classe Matrice definisce oggetti che rappresentano matrici

Dettagli

Programmazione orientata agli oggetti Ereditarietà

Programmazione orientata agli oggetti Ereditarietà Programmazione orientata agli oggetti Ereditarietà Fondamenti di Informatica L-B 1 Programmazione basata su oggetti Il modello visto finora costituisce un sottoinsieme del modello orientato agli oggetti

Dettagli

Classi astratte Interfacce

Classi astratte Interfacce Classi astratte Interfacce Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San Giovanni 1 Ereditarietà Abbiamo visto come L ereditarietà permette di costruire nuove classi utilizzando

Dettagli

Esempio 2: Subtyping

Esempio 2: Subtyping Esempio 2: Subtyping 22 Subclassing e subtyping Fino ad ora abbiamo trattato l ereditarietà come strumento che consente il riuso flessibile di classi già esistenti mediante l aggiunta o la ridefinizione

Dettagli

Scelta delle classi. Ancora sulla progettazione/pacchetti. Scelta delle classi. Scelta delle classi. Scelta delle classi. Scelta delle classi

Scelta delle classi. Ancora sulla progettazione/pacchetti. Scelta delle classi. Scelta delle classi. Scelta delle classi. Scelta delle classi Ancora sulla progettazione/pacchetti Concetti di coesione/accoppiamento/coerenza Uso dei package 29/11/2004 Laboratorio di Programmazione - Luca Tesei 1 Abbiamo già visto che per scrivere una buona applicazione

Dettagli

Indice. Prefazione. 3 Oggetti e Java 53

Indice. Prefazione. 3 Oggetti e Java 53 Prefazione xv 1 Architettura dei calcolatori 1 1.1 Calcolatori e applicazioni 1 1.1.1 Alcuni esempi di applicazioni 3 1.1.2 Applicazioni e interfacce 4 1.2 Architettura dei calcolatori 7 1.2.1 Hardware

Dettagli

Programmazione II. Lezione 18. Daniele Sgandurra 11/1/2011.

Programmazione II. Lezione 18. Daniele Sgandurra 11/1/2011. Programmazione II Lezione 18 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 11/1/2011 1/26 Programmazione II Lezione 18 11/1/2011 Sommario 1 2/26 Programmazione II Lezione 18 11/1/2011 Parte I 3/26 Programmazione

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Paradigma OO Oggetti e Classi Metodi Parametri Variabili di istanza Costruttori Esercizi Paradigma Object-Oriented Il paradigma OO

Dettagli

14 - Metodi e Costruttori

14 - Metodi e Costruttori 14 - Metodi e Costruttori Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

Dettagli

Capitolo 7 Un primo sguardo agli oggetti Schema e valori Elementi di classe e d istanza

Capitolo 7 Un primo sguardo agli oggetti Schema e valori Elementi di classe e d istanza I Sommario Prefazione xiii Capitolo 1 Introduzione alla programmazione 1 1.1 Hardware e software......................... 1 1.2 La programmazione......................... 4 1.2.1 I paradigmi di programmazione...............

Dettagli

Problemi, algoritmi, calcolatore

Problemi, algoritmi, calcolatore Problemi, algoritmi, calcolatore Informatica e Programmazione Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin Problemi, algoritmi, calcolatori Introduzione

Dettagli

Introduzione alla programmazione

Introduzione alla programmazione Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Sintassi e Semantica Riferimenti versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Polistena (RC)

Autore: Prof. Agostino Sorbara ITIS M. M. Milano Polistena (RC) con questo nome si indica in genere un pezzo di programma, dotato di una propria identità: un modulo, ad esempio, potrebbe essere l insieme di alcune funzioni C, o Pascal, che risiedono in un unico file

Dettagli

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo Programmazione Orientata agli Oggetti Emilio Di Giacomo e Walter Didimo Una metafora dal mondo reale la fabbrica di giocattoli progettisti Un semplice giocattolo Impara i suoni Dall idea al progetto Toy

Dettagli

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 6 - Blocchi e cicli Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it

Dettagli

Informatica Interfacce Java

Informatica Interfacce Java Una interfaccia (interface) è un tipo di dato, dichiarato con il costrutto interface del linguaggio Java, che deve essere interamente implementato in una oppure più classi differenti. Lo scheletro per

Dettagli

Ancora Progettazione, Packages. Scelta delle classi. Scelta delle classi. Scelta delle classi

Ancora Progettazione, Packages. Scelta delle classi. Scelta delle classi. Scelta delle classi Ancora Progettazione, Packages Concetti di coesione/accoppiamento/coerenza Uso dei package Abbiamo già visto che per scrivere una buona applicazione usando un linguaggio ad oggetti come Java è bene fare

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi:

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre 2014. Negli esercizi proposti si utilizzano le seguenti classi: Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 22 settembre 2014 TEMPO DISPONIBILE: 2 ore Negli

Dettagli

Ancora sulla progettazione/pacchetti

Ancora sulla progettazione/pacchetti Ancora sulla progettazione/pacchetti Concetti di coesione/accoppiamento/coerenza Uso dei package 29/11/2004 Laboratorio di Programmazione - Luca Tesei 1 Scelta delle classi Abbiamo già visto che per scrivere

Dettagli

Programmazione in Java (I modulo) Lezione 20: Ereditarietà

Programmazione in Java (I modulo) Lezione 20: Ereditarietà Programmazione in Java (I modulo) Lezione 20: Ereditarietà Ereditarietà (Inheritance) Il programmatore definisce una classe generale In seguito definisce una classe più specifica Aggiungo soltanto nuovi

Dettagli