L applicazione di MVC alla simulazione di ascensore I COMPONENTI DELLE INTERFACCE UTENTE GRAFICHE: PARTE II 1

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "L applicazione di MVC alla simulazione di ascensore I COMPONENTI DELLE INTERFACCE UTENTE GRAFICHE: PARTE II 1"

Transcript

1 I COMPONENTI DELLE INTERFACCE UTENTE GRAFICHE: PARTE II (Caso di studio facoltativo) Pensare a oggetti: Modello-Vista-Controllore I design pattern descrivono strategie efficaci per costruire sistemi software orientati agli oggetti affidabili. Il nostro caso di studio utilizza l architettura Modello-Vista-Controllore (Model- View-Controller, MVC), che usa diversi design pattern. MVC divide i compiti del sistema in tre parti: 1. il modello, che memorizza i dati e la logica del programma; 2. la vista (o le viste), che fornisce una presentazione visuale del modello, e 3. il controllore, che elabora l input dell utente ed esegue delle modifiche al modello. Usando il controllore, l utente cambia i dati nel modello MVC. Il modello MVC notifica poi il cambio nei dati alle viste. Le viste cambiano la propria presentazione visuale in modo da riflettere i cambiamenti nel modello MVC. Per esempio, nella nostra simulazione, l utente aggiunge un oggetto Person al modello MVC premendo i JButton First Floor o Second Floor nel controller. Il modello MVC poi notifica alla vista che è stato creato un oggetto Person. La vista, in risposta a questa notifica, visualizza una persona su un piano. Il modello MVC non sa come la vista visualizza la persona, e la vista non sa come o perché il modello MVC ha creato l oggetto Person. L architettura MVC aiuta la costruzione di sistemi affidabili e facilmente modificabili. Se volessimo usare nella simulazione dell ascensore un output basato su testo, anziché su un interfaccia grafica, potremmo creare una vista alternativa che produce output testuale, senza alterare il modello MVC o il controllore. Potremmo anche fornire una vista tridimensionale che usa una prospettiva in prima persona per permettere all utente di partecipare alla simulazione; tali viste vengono comunemente usate in sistemi di realtà virtuale. L applicazione di MVC alla simulazione di ascensore Applichiamo ora l architettura MVC alla nostra simulazione di ascensore. Ogni diagramma UML che abbiamo fornito fino a questo punto modella una porzione del modello MVC del nostro sistema d ascensori. La figura 3.21 mostra un modello UML di alto livello della simulazione. La classe ElevatorCaseStudy una sottoclasse di JFrame aggrega un istanza per ciascuna delle classi ElevatorSimulation, ElevatorView e ElevatorController per creare l applicazione ElevatorCaseStudy. In UML, un rettangolo con l angolo superiore destro ripiegato rappresenta una nota. In questo caso, ogni nota punta ad una classe specifica (con una line tratteggiata), e descrive il suo ruolo nel sistema. Le classi ElevatorSimulation, ElevatorView e ElevatorController incapsulano tutti gli oggetti che comprendono le porzioni del nostro simulatore che descrivono rispettivamente il modello, la vista e il controllore. La classe ElevatorSimulation è un aggregazione di diverse classi (ad esempio, ElevatorShaft, Elevator e Floor). Per risparmiare spazio, non modelliamo questa aggregazione nella figura Anche la classe ElevatorView è un aggregazione di diverse classi: per mostrarle, espanderemo il modello UML di ElevatorView nella sezione 8.7. La classe ElevatorController rappresenta il controllore della simulazione. Notate che la classe ElevatorView implementa l interfaccia ElevatorSimulationListener, che permette a ElevatorView di ricevere eventi dal modello MVC.

2 2 CAPITOLO 3 javax.swing.jframe Applicazione ElevatorCaseStudy ElevatorSimulationListener 1 ElevatorSimulation ElevatorView 1 1 ElevatorController Modello MVC Vista Controllore Figura 3.21 Diagramma di classe della simulazione d ascensore Ingegneria del Software 3.1 Quando appropriato, dividete un modello UML in più diagrammi più piccoli, in modo che ogni diagramma rappresenti un certo sottosistema. La classe ElevatorCaseStudy non contiene attributi, a parte i suoi riferimenti ad un oggetto ElevatorSimulation, ad un oggetto ElevatorView e ad un oggetto ElevatorController. Il solo comportamento della classe ElevatorCaseStudy è far partire il programma: quindi, in Java, la classe ElevatorCaseStudy deve contenere un metodo statico main che istanzia un oggetto ElevatorCaseStudy, che a sua volta istanzia gli oggetti ElevatorSimulation, ElevatorView e ElevatorController. Implementeremo la classe ElevatorCaseStudy più avanti in questa sezione. Manufatti La figura 3.21 ci aiuta a progettare un altro aspetto del nostro sistema: i manufatti. La figura modella i pezzi, chiamati manufatti, di cui il sistema ha bisogno per eseguire i propri compiti. Questi pezzi comprendono programmi eseguibili, file.class, file sorgente.java, immagini, risorse, ecc. Nella figura 3.22, ogni rettangolo modella un manufatto. Il nostro sistema controlla cinque manufatti: ElevatorCaseStudy.class, ElevatorCaseStudy.java, ElevatorSimulation.java, ElevatorView.java ed ElevatorController.java. Nella figura 3.22, gli elementi grafici che assomigliano a delle cartelle (rettangoli con eitchette nella parte superiore sinistra) rappresentano dei package nel linguaggio UML (da non confondere con i package Java). Possiamo raggruppare classi, oggetti, manufatti, casi di utilizzo, ecc. in package. In questo diagramma (e nel resto del nostro caso di studio), i package UML corrispondono a package Java. Nella nostra discussione, useremo un tipo di carattere Courier minuscolo grassetto per i nomi dei package. I package nel nostro sistema sono model (contiene le classi del modello MVC), view (contiene le classi relative alla vista), e controller (contiene le classi relative al controllore). Il manufatto ElevatorCaseStudy.java contiene

3 I COMPONENTI DELLE INTERFACCE UTENTE GRAFICHE: PARTE II 3 «executable» ElevatorCaseStudy.class «compilation» model «file» ElevatorSimulation.java «imports» ElevatorSimulation- Listener view «file» ElevatorCaseStudy.java «imports» «file» ElevatorView.java «imports» controller «file» ElevatorController.java Figura 3.22 Manufatti della simulazione di ascensore un istanza di ognuno dei manufatti in questi package. Attualmente, ogni package contiene un solo manufatto, ovvero un file.java. Il package model contiene ElevatorSimulation.java, il package view contiene ElevatorView.java e il package controller contiene ElevatorController.java. Aggiungeremo manufatti ad ogni package quando implementeremo le varie classi del nostro modello UML come manufatti (file.java). Ogni freccia tratteggiata nella figura 3.22 indica una dipendenza tra manufatti, in cui la direzione della freccia indica la relazione dipende da. Una dipendenza descrive la relazione tra manufatti in cui i cambiamenti in un manufatto influiscono su un altro manufatto. Per esempio, il manufatto ElevatorCaseStudy.class dipende dal manufatto ElevatorCaseStudy.java, perché un cambiamento di ElevatorCaseStudy.java, al momento della compilazione, influisce su ElevatorCaseStudy.class. L oggetto ElevatorController contiene un riferimento all oggetto ElevatorSimulation. Quindi, ElevatorController.java dipende da ElevatorSimulation.java. Secondo la figura 3.22, ElevatorSimulation.java e ElevatorView.java non dipendono uno dall altro; essi comunicano attraverso l interfaccia ElevatorSimulationListener, che implementa tutte le interfacce nella simulazione. ElevatorView.java realizza l interfaccia ElevatorSimulationListener, e ElevatorSimulation.java dipende dall interfaccia ElevatorSimulationListener. La figura 3.22 contiene diversi stereotipi. Abbiamo parlato dello stereotipo <<JavaInterface>> nella sezione 1.9. Lo stereotipo <<compilation>> descrive la dipendenza tra ElevatorCaseStudy.class e ElevatorCaseStudy.java: ElevatorCaseStudy.java viene compilato in ElevatorCaseStudy.class. Lo stereotipo <<executable>> specifica che un

4 4 CAPITOLO 3 manufatto è un applicazione, e lo stereotipo <<file>> specifica che un manufatto è un file contenente codice sorgente per l eseguibile. Implementare il controllore La nostra simulazione implementa entrambi i casi di utilizzo Crea Persona e Riposiziona Persona. Implementiamo ora il caso di utilizzo Crea Persona attraverso un interfaccia utente grafica. Implementiamo la nostra interfaccia nella classe ElevatorController (figura 3.23), che è una sottoclasse di JPanel contenente due oggetti JButton: firstcontrollerbutton (riga 19) e secondcontrollerbutton (riga 20). Ogni JButton corrisponde a un piano su cui un oggetto Person viene posto (se il palazzo avesse 100 piani, chiaramente questa soluzione sarebbe poco funzionale; si potrebbe invece specificare il piano per mezzo di un campo di testo). Le righe istanziano questi pulsanti e li aggiungono a ElevatorController. 1 // ElevatorController.java 2 // Controllore per la simulazione d ascensore 3 package com.deitel.jhtp5.elevator.controller; 4 5 import java.awt.*; 6 import java.awt.event.*; 7 8 import javax.swing.*; 9 10 // package Deitel 11 import com.deitel.jhtp5.elevator.model.*; 12 import com.deitel.jhtp5.elevator.event.*; 13 import com.deitel.jhtp5.elevator.elevatorconstants; public class ElevatorController extends JPanel 16 implements ElevatorConstants { // il controllore contiene due JButton 19 private JButton firstcontrollerbutton; 20 private JButton secondcontrollerbutton; // riferimento al modello 23 private ElevatorSimulation elevatorsimulation; public ElevatorController( ElevatorSimulation simulation ) 26 { 27 elevatorsimulation = simulation; 28 setbackground( Color.white ); // aggiunge il primo pulsante al controllore 31 firstcontrollerbutton = new JButton( First Floor ); 32 add( firstcontrollerbutton ); // aggiunge il secondo pulsante al controllore 35 secondcontrollerbutton = new JButton( Second Floor ); 36 add( secondcontrollerbutton ); Figura 3.23 La classe ElevatorController che elabora l input dell utente (continua)

5 I COMPONENTI DELLE INTERFACCE UTENTE GRAFICHE: PARTE II // classe interna anonima registrata per ActionEvents dal 39 // primo JButton del controllore 40 firstcontrollerbutton.addactionlistener( 41 new ActionListener() { // invocato quando viene premuto un JButton 44 public void actionperformed( ActionEvent event ) 45 { 46 // aggiunge Person al primo piano 47 elevatorsimulation.addperson( 48 FIRST_FLOOR_NAME ); // disabilita input dell utente 51 firstcontrollerbutton.setenabled( false ); 52 } 53 } // fine classe interna anonima 54 ); // classe interna anonima registrata per ActionEvents dal 57 // secondo JButton del controllore 58 secondcontrollerbutton.addactionlistener( 59 new ActionListener() { // invocato quando viene premuto un JButton 62 public void actionperformed( ActionEvent event ) 63 { 64 // aggiunge Person al secondo piano 65 elevatorsimulation.addperson( 66 SECOND_FLOOR_NAME ); // disabilita input dell utente 69 secondcontrollerbutton.setenabled( false ); 70 } 71 } // fine classe interna anonima 72 ); // classe interna anonima che permette input dell utente su 75 // Floor se un oggetto Person entra in Elevator su quel piano 76 elevatorsimulation.addpersonmovelistener( 77 new PersonMoveListener() { // invocato quando Person entra in Elevator 80 public void personentered( 81 PersonMoveEvent event ) 82 { 83 // ottiene il piano di partenza 84 String location = 85 event.getlocation().getlocationname(); // abilita il primo JButton se si parte dal primo piano Figura 3.23 La classe ElevatorController che elabora l input dell utente (continua)

6 6 CAPITOLO 3 88 if ( location.equals( FIRST_FLOOR_NAME ) ) 89 firstcontrollerbutton.setenabled( true ); // abilita il primo JButton se si parte dal secondo piano 92 else 93 secondcontrollerbutton.setenabled( true ); } // fine metodo personentered // altri metodi che implementano PersonMoveListener 98 public void personcreated( 99 PersonMoveEvent event ) {} public void personarrived( 102 PersonMoveEvent event ) {} public void personexited( 105 PersonMoveEvent event ) {} public void persondeparted( 108 PersonMoveEvent event ) {} public void personpressedbutton( 111 PersonMoveEvent event ) {} } // fine classe interna anonima 114 ); 115 } // fine costruttore di ElevatorController 116 } Figura 3.23 La classe ElevatorController che elabora l input dell utente La riga 23 della classe ElevatorController dichiara un riferimento a ElevatorSimulation, perché ElevatorController permette all utente di interagire con il modello. Le righe e dichiarano due oggetti ActionListener anonimi e li registrano presso firstfloorcontrollerbutton e secondfloorcontrollerbutton, rispettivamente, per eventi ActionEvent. Quando l utente preme uno qualsiasi dei JButton, le righe e dei metodi actionperformed chiamano il metodo addperson di ElevatorSimulation, che istanzia un oggetto Person in ElevatorSimulation sul piano specificato. Il metodo addperson prende come argomento una stringa dichiarata nell interfaccia ElevatorConstants (figura 3.24). Quest interfaccia, usata ad esempio dalle classi ElevatorController, ElevatorSimulation, Elevator, Floor ed ElevatorView, fornisce delle costanti che specificano i nomi degli oggetti Location nella nostra simulazione. Le righe 51 e 69 dei metodi actionperformed disabilitano i rispettivi JButton per impedire che l utente crei più di una persona per piano. Le righe della classe ElevatorController dichiarano un oggetto PersonMoveListener anonimo che si registra presso ElevatorSimulation per ri-abilitare i JButton. Il metodo personentered (righe 80-95) di PersonMoveListener ri-abilita il JButton associato con il piano servito dall ascensore: dopo che la persona è entrata nell ascensore, l utente può posizionare un altra persona sul medesimo piano.

7 I COMPONENTI DELLE INTERFACCE UTENTE GRAFICHE: PARTE II 7 Il metodo personentered di PersonMoveListener impedisce all utente di creare più di una persona per piano: pertanto, l attributo capacity (ereditato dalle classi Elevator e Floor dalla superclasse Location) non è più necessario. La figura 3.25 mostra il diagramma di classe modificato che tiene conto della rimozione di questo attributo. Implementazione: ElevatorCaseStudy.java Usando i diagrammi delle figure 3.22, 3.21 e 2.28, implementiamo ElevatorCaseStudy (figura 3.26). Le righe importano i package model, view e controller come specificato nella figura // ElevatorCaseStudy.java 2 // Applicazione simulazione di ascensore con MVC 3 package com.deitel.jhtp5.elevator; 4 1 // ElevatorConstants.java 2 // Costanti usate tra between ElevatorModel e ElevatorView 3 package com.deitel.jhtp5.elevator; 4 5 public interface ElevatorConstants { 6 7 public static final String FIRST_FLOOR_NAME = firstfloor ; 8 public static final String SECOND_FLOOR_NAME = secondfloor ; 9 public static final String ELEVATOR_NAME = elevator ; 10 } Figura 3.24 L interfaccia ElevatorConstants che fornisce le costanti per i nomi degli oggetti Location Location - locationname : String # setlocationname( String ) : void + getlocationname( ) : String + getbutton( ) : Button + getdoor( ) : Door Elevator - moving : Boolean = false - summoned : Boolean = false - currentfloor : Location - destinationfloor : Location - traveltime : Integer = 5 + ride( ) : void + requestelevator( ) : void + enterelevator( ) : void + exitelevator( ) : void + departelevator( ) : void + getbutton( ) : Button + getdoor( ) : Door Floor + getbutton( ) : Button + getdoor( ) : Door Figura 3.25 Diagramma di classe modificato che mostra la generalizzazione della superclasse Location e delle sottoclassi Elevator e Floor

8 8 CAPITOLO 3 5 // package Java di base 6 import java.awt.*; 7 8 // package Java di estensione 9 import javax.swing.*; // package Deitel 12 import com.deitel.jhtp5.elevator.model.*; 13 import com.deitel.jhtp5.elevator.view.*; 14 import com.deitel.jhtp5.elevator.controller.*; public class ElevatorCaseStudy extends JFrame { // modello, vista e controllore 19 private ElevatorSimulation model; 20 private ElevatorView view; 21 private ElevatorController controller; // il costruttore istanzia modello, vista e controllore 24 public ElevatorCaseStudy() 25 { 26 super( Deitel Elevator Simulation ); // istanzia modello, vista e controllore 29 model = new ElevatorSimulation(); 30 view = new ElevatorView(); 31 controller = new ElevatorController( model ); // registra la vista per gli eventi del modello 34 model.setelevatorsimulationlistener( view ); // aggiunge view e controller a ElevatorSimulation 37 getcontentpane().add( view, BorderLayout.CENTER ); 38 getcontentpane().add( controller, BorderLayout.SOUTH ); } // fine costruttore di ElevatorSimulation // metodo main per far partire il programma 43 public static void main( String args[] ) 44 { 45 // istanzia ElevatorSimulation 46 ElevatorCaseStudy casestudy = new ElevatorCaseStudy(); 47 casestudy.setdefaultcloseoperation( EXIT_ON_CLOSE ); 48 casestudy.pack(); 49 casestudy.setvisible( true ); 50 } 51 } Figura 3.26 La classe ElevatorCaseStudy è l applicazione per la simulazione di ascensore

9 I COMPONENTI DELLE INTERFACCE UTENTE GRAFICHE: PARTE II 9 La figura 3.21 specifica che la classe ElevatorCaseStudy è una sottoclasse di JFrame: quindi, la riga 16 dichiara la classe ElevatorCaseStudy come una classe public che estende JFrame. Le righe implementano l aggregazione delle classi ElevatorSimulation, ElevatorView ed ElevatorController (vedi figura 3.21) nella classe ElevatorCaseStudy, dichiarando un oggetto per ciascuna classe. Le righe del costruttore di ElevatorCaseStudy inizializzano questi oggetti. Le figure 3.21 e 3.22 specificano che ElevatorView è un ElevatorSimulationListener per ElevatorSimulation. La riga 34 registra ElevatorView come ascoltatore per ElevatorSimulation, in modo che ElevatorView possa ricevere eventi da ElevatorSimulation e rappresentare lo stato del modello in modo appropriato. Le righe aggiungono ElevatorView ed ElevatorController a ElevatorCaseStudy. Secondo gli stereotipi nella figura 3.22, ElevatorCaseStudy.java viene compilato in ElevatorCaseStudy.class, che è eseguibile: le righe forniscono il metodo main che esegue l applicazione.

Esercitazioni di PROGETTAZIONE DEL SOFTWARE A.A. 2011-2012

Esercitazioni di PROGETTAZIONE DEL SOFTWARE A.A. 2011-2012 Sapienza Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica Corso di Laurea in Ingegneria Informatica ed Automatica Corso di Laurea in Ingegneria dei Sistemi Informatici

Dettagli

Identificare le classi in un sistema

Identificare le classi in un sistema 3.7 (Caso di studio facoltativo) Pensare a oggetti: identificare le classi nella specifica del problema Cominciamo ad affrontare la progettazione del simulatore di ascensore introdotto nel capitolo. Iniziamo

Dettagli

Eventi di azione. // con interfaccia per eventi di azione

Eventi di azione. // con interfaccia per eventi di azione Eventi di azione (Interfaces ActionListener, Classes ActionEvent) Sono generati quando si premono bottoni, si selezionano voci di menù, si preme invio mentre si scrive in un campo di testo. In awt sono

Dettagli

Esercitazione sui Design Pattern

Esercitazione sui Design Pattern Esercitazione sui Design Pattern Pattern Creazionali Singleton Permette la creazione di una sola istanza della classe all interno dell applicazione Fornisce un metodo con cui ottenere l istanza Il costruttore

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA5 B1 Gestione eventi 1 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti AWT o Swing Programmazione ad eventi 2 1 Introduzione Le interfacce create

Dettagli

Interazioni col mondo: eventi

Interazioni col mondo: eventi Interazioni col mondo: eventi Le interazioni di una GUI con il mondo esterno sono segnalate tramite eventi: click del mouse, inserimento di testo, selezione/attivazione... Gli eventi che memorizzano queste

Dettagli

Object Oriented Programming

Object Oriented Programming OOP Object Oriented Programming Programmazione orientata agli oggetti La programmazione orientata agli oggetti (Object Oriented Programming) è un paradigma di programmazione Permette di raggruppare in

Dettagli

I Canvas. import java.awt.*; import javax.swing.*; public class Graf{ public Graf () { JFrame f = new JFrame("Finestra"); // crea frame invisibile

I Canvas. import java.awt.*; import javax.swing.*; public class Graf{ public Graf () { JFrame f = new JFrame(Finestra); // crea frame invisibile I Canvas Tra i vari contenitori Java il Canvas (area di disegno o tela) è una semplice superficie di disegno particolarmente utile per visualizzare immagini o per effettuare altre operazioni grafiche.

Dettagli

La specifica del problema

La specifica del problema 2.9 (Caso di studio facoltativo) Pensare a oggetti: esame del problema Iniziamo ora a esaminare il nostro caso di studio di progettazione e implementazione orientate agli oggetti. Le sezioni Pensare a

Dettagli

Le basi della grafica in Java. Prof. Francesco Accarino IIS Altiero Spinelli via Leopardi 132 Sesto san Giovanni

Le basi della grafica in Java. Prof. Francesco Accarino IIS Altiero Spinelli via Leopardi 132 Sesto san Giovanni Le basi della grafica in Java Prof. Francesco Accarino IIS Altiero Spinelli via Leopardi 132 Sesto san Giovanni Elaborazione classica o imperativa L elaborazione è concentrata nel momento centrale, durante

Dettagli

Alessandro De Luca. Lezione, 13 maggio 2015

Alessandro De Luca. Lezione, 13 maggio 2015 Basi Basi di di dati dati ee sistemi sistemi informativi informativi II mod.laboratorio mod.laboratorio Alessandro De Luca Università degli Studi di Napoli Federico II Lezione, Introduzione a Java Swing

Dettagli

Classi astratte. Master in Web Technology e Security luglio - settembre 2000. Interfacce

Classi astratte. Master in Web Technology e Security luglio - settembre 2000. Interfacce Master in Web Technology e Security luglio - settembre 2000 JAVA Alberto Martelli Parte III Programmazione grafica Classi astratte Vogliamo implementare un algoritmo di ordinamento di un array che sia

Dettagli

Esercitazione n 4. Obiettivi

Esercitazione n 4. Obiettivi Esercitazione n 4 Obiettivi Progettare e implementare per intero un componente software in Java Linguaggio Java: Classi astratte Utilizzo di costruttori e metodi di superclasse Polimorfismo Esempio guida:

Dettagli

L interfaccia grafica con Java

L interfaccia grafica con Java L interfaccia grafica con Java 1/24 L interfaccia utente serve per la comunicazione tra utente e programma Distinguiamo le interfacce tra quelle a caratteri e quelle grafiche Le GUI (Graphical user interface)

Dettagli

UML Diagrammi delle classi. UML Diagramma classi 1

UML Diagrammi delle classi. UML Diagramma classi 1 UML Diagrammi delle classi UML Diagramma classi 1 Diagramma delle classi Non è nei nostri obiettivi affrontare UML nel suo complesso Ci concentreremo sui diagrammi delle classi che ci forniscono un linguaggio

Dettagli

INTERFACCE GRAFICHE IN JAVA CON SWING DISPENSE

INTERFACCE GRAFICHE IN JAVA CON SWING DISPENSE INTERFACCE GRAFICHE IN JAVA CON SWING DISPENSE La Gestione degli Eventi Ogni oggetto grafico è predisposto ad essere sollecitato in qualche modo dall utente (per esempio un pulsante può essere premuto).

Dettagli

Java Applet. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010

Java Applet. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010 Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it Java Applet 1 Application VS Applet Una

Dettagli

Algoritmi di Ricerca. Esempi di programmi Java

Algoritmi di Ricerca. Esempi di programmi Java Fondamenti di Informatica Algoritmi di Ricerca Esempi di programmi Java Fondamenti di Informatica - D. Talia - UNICAL 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare

Dettagli

14 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

14 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 14 - Packages 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 Corso di

Dettagli

ESAME DI FONDAMENTI DI INFORMATICA T-2 del 15/07/2015 Proff. E. Denti G. Zannoni Tempo a disposizione: 4 ore MAX

ESAME DI FONDAMENTI DI INFORMATICA T-2 del 15/07/2015 Proff. E. Denti G. Zannoni Tempo a disposizione: 4 ore MAX ESAME DI FONDAMENTI DI INFORMATICA T-2 del 15/07/2015 Proff. E. Denti G. Zannoni Tempo a disposizione: 4 ore MAX NB: il candidato troverà nell archivio ZIP scaricato da Esamix anche il software Start Kit

Dettagli

L interfaccia grafica in Java

L interfaccia grafica in Java L interfaccia grafica in Java Java possiede due package per la creazione di interfacce grafiche java.awt javax.swing AWT (Abstract Widget Toolkit) presente già in Java 1.0, migliorato in Java 1.1. Invariato

Dettagli

15 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

15 - Packages. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 15 - Packages 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 Corso di

Dettagli

Sviluppo di Interfacce Grafiche in Java

Sviluppo di Interfacce Grafiche in Java Sviluppo di Interfacce Grafiche in Java Massimiliano de Leoni (con la supervisione del docente Massimo Mecella) Università di Roma La Sapienza - Sede di Latina Corso di Progettazione del Software A.A.

Dettagli

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

Autore: Prof. Agostino Sorbara ITIS M. M. Milano Polistena (RC) In questa lezione introduciamo alcuni strumenti che Java rende disponibili per la creazione di interfacce utente a manipolazione diretta, dette anche WYSISYG (what you see is what you get), con un elevato

Dettagli

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi

Linguaggio Java. Robusto. Orientato agli oggetti. Protegge e gestisce dagli errori. Non permette costrutti pericolosi Linguaggio Java Robusto Non permette costrutti pericolosi Eredità Multipla Gestione della Memoria Orientato agli oggetti Ogni cosa ha un tipo Ogni tipo è un oggetto (quasi) Protegge e gestisce dagli errori

Dettagli

Prova di Laboratorio di Programmazione

Prova di Laboratorio di Programmazione Prova di Laboratorio di Programmazione 6 febbraio 015 ATTENZIONE: Non è possibile usare le classi del package prog.io del libro di testo. Oltre ai metodi richiesti in ciascuna classe, è opportuno implementare

Dettagli

Grafico della parabola

Grafico della parabola Grafico della parabola Il grafico matematico è un disegno che mostra l andamento di una funzione f(x) al variare della variabile x. Per tracciare un grafico sul video del computer, si deve scegliere un

Dettagli

Reflection in Java. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010

Reflection in Java. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010 Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it Reflection in Java 1 Reflection Riflessione

Dettagli

Raffaella Brighi, a.a. 2005/06. Eventi e listener. Corso di Laboratorio II. A.A. 2005-06

Raffaella Brighi, a.a. 2005/06. Eventi e listener. Corso di Laboratorio II. A.A. 2005-06 Raffaella Brighi, a.a. 2005/06 Eventi e listener Corso di Laboratorio II. A.A. 2005-06 Eventi e listener Un evento è un oggetto che rappresenta il verificarsi di un azione dell utente o del sistema(es

Dettagli

23 - Graphical User Interface GUI (Cenni)

23 - Graphical User Interface GUI (Cenni) 23 - Graphical User Interface GUI (Cenni) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo

Dettagli

Relazioni tra oggetti e classi : Composizione. Relazioni tra oggetti e classi : esempio di Aggregazione. classe contenitore

Relazioni tra oggetti e classi : Composizione. Relazioni tra oggetti e classi : esempio di Aggregazione. classe contenitore Relazioni tra oggetti e classi : Generalizzazione Fondamenti di Informatica II 20. Laboratorio 6 Collegamenti e associazioni Le relazioni di tipo generalizzazione (specializzazione), servono per poter

Dettagli

Scope e visibilità per classi

Scope e visibilità per classi Scope e visibilità per classi Packages Classi interne nelle loro diverse forme Interne / statiche / locali Utilizzo congiunto con interfacce Implementazione di iteratori Gestione di eventi Packages Package:

Dettagli

UN CLONE IN CLIKE C-LIKE DI SEGUIVISIONE

UN CLONE IN CLIKE C-LIKE DI SEGUIVISIONE IDROID 86 LAB pagg 12-13 23-04-2007 14:57 Pagina 12 I-D01 LAB UN CLONE IN CLIKE C-LIKE DI SEGUIVISIONE PROGRAMMAZIONE Alcuni comportamenti predefiniti attivabili su I-Droid01 sono facilmente riproducibili

Dettagli

Programmazione a Oggetti Lezione 10. Ereditarieta

Programmazione a Oggetti Lezione 10. Ereditarieta Programmazione a Oggetti Lezione 10 Ereditarieta Sommario Come definire sottoclassi Costruttori Abstract Classes Final Ereditarietà: promemoria Strumento tipico dell OOP per riusare il codice e creare

Dettagli

Esercizi della lezione 5 di Java

Esercizi della lezione 5 di Java Esercizi della lezione 5 di Java Esercizio 5 Create il tipo di dato Counter dell Esercizio 1 come sottoclasse del tipo di dato SimpleCounter. Esercizio 1 Create un tipo di dato Counter che abbia: un valore

Dettagli

Metodologie di progetto Estensione di classi Implementazione di interfacce Composizione

Metodologie di progetto Estensione di classi Implementazione di interfacce Composizione Gerarchie di Tipi Metodologie di progetto Estensione di classi Implementazione di interfacce Composizione Notazione UML Relazione Simbolo Significato Ereditarietà Implementazione Aggregazione Dipendenza

Dettagli

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) 12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,

Dettagli

Progetto Automi e Linguaggi Parser svliluppato con JLex e cup

Progetto Automi e Linguaggi Parser svliluppato con JLex e cup Progetto Automi e Linguaggi Parser svliluppato con JLex e cup Sviluppato da Santoro Carlo Maurizio Matricola:0108/528 Sviluppo terminato il: 18/06/06 TRACCIA DEL PROGETTO Si costruisca, utilizzando la

Dettagli

Modellazione dei dati in UML

Modellazione dei dati in UML Corso di Basi di Dati e Sistemi Informativi Modellazione dei dati in UML Angelo Montanari Dipartimento di Matematica e Informatica Università degli Studi di Udine Introduzione UML (Unified Modeling Language):

Dettagli

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti

13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti 13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/

Dettagli

20 - Input/Output su File

20 - Input/Output su File 20 - Input/Output su File 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

Finestra.java. static String nomicolonne[] = {"ind.","cognome","nome","telefono","e-mail"}; //nomi delle colonne della tabella

Finestra.java. static String nomicolonne[] = {ind.,cognome,nome,telefono,e-mail}; //nomi delle colonne della tabella import java.awt.*; import java.awt.event.actionevent; import java.awt.event.actionlistener; import java.awt.event.windowevent; import java.awt.event.windowlistener; import java.io.*; import java.util.*;

Dettagli

Alcuni Design Pattern in Java

Alcuni Design Pattern in Java Marco Faella Alcuni Design Pattern in Java basato su Progettazione del Software e Design Pattern in Java, di Cay Horstmann Pattern ITERATOR Contesto: 1) Un oggetto (aggregato) contiene altri oggetti (elementi)

Dettagli

Prova d Esame 07.04.2006 Compito A

Prova d Esame 07.04.2006 Compito A DOMANDA 1 (6 punti) Si analizzi il codice seguente e si scriva l output prodotto dai metodi main public class General { public static String s1 = "Ciao"; protected int n; public General() { n = 1; public

Dettagli

Programmazione in Java (I modulo) Lezione 3: Prime nozioni

Programmazione in Java (I modulo) Lezione 3: Prime nozioni Programmazione in Java (I modulo) Lezione 3: Prime nozioni La volta scorsa Abbiamo avuto un primo assaggio! Abbiamo visto come usare l editor per scrivere un programma Java. Abbiamo analizzato riga per

Dettagli

La prima applicazione Java con NetBeans IDE. Dott. Ing. M. Banci, PhD

La prima applicazione Java con NetBeans IDE. Dott. Ing. M. Banci, PhD La prima applicazione Java con NetBeans IDE Dott. Ing. M. Banci, PhD Creare la prima applicazione 1. Creare un progetto: Quando si crea un progetto IDE occorre creare un ambiente nel quale costruire e

Dettagli

Programmazione Java: Interfacce grafiche (GUI)

Programmazione Java: Interfacce grafiche (GUI) Programmazione Java: Interfacce grafiche (GUI) romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp ( 1 ) (GUI) Interfacce grafiche Rendere facili le cose semplici e possibili le cose difficili

Dettagli

Programmazione ad oggetti

Programmazione ad oggetti DAIS Univ. Ca' Foscari Venezia Programmazione ad oggetti Samuel Rota Bulò Informazioni generali Docente: Samuel Rota Bulò @email: srotabul@dais.unive.it Homepage: http://www.dais.unive.it/~srotabul/ ooprogramming2012.html

Dettagli

Prova d Esame 07.04.2006 Compito B

Prova d Esame 07.04.2006 Compito B DOMANDA 1 (6 punti) Si analizzi il codice seguente e si scriva l output prodotto dai metodi main public class General { public static String s1 = "ciao"; protected int n; public General() { n = 3; public

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T1 B2 Significato e proprietà della OOP 1 Prerequisiti Concetto ed elementi della comunicazione Allocazione e deallocazione della memoria Compilazione di un programma Spazio

Dettagli

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50

Guida all uso dell ambiente di sviluppo 1 integrato o IDE. JCreator LE 4.50 Guida all uso dell ambiente di sviluppo 1 integrato o IDE JCreator LE 4.50 Inizializzazione: creazione del nuovo progetto e del file sorgente in ambiente JCreator Al lancio del programma si apre la finestra

Dettagli

ESAME DI FONDAMENTI DI INFORMATICA T-2 del 16/7/2014 Proff. E. Denti G. Zannoni Tempo a disposizione: 4 ore MAX

ESAME DI FONDAMENTI DI INFORMATICA T-2 del 16/7/2014 Proff. E. Denti G. Zannoni Tempo a disposizione: 4 ore MAX ESAME DI FONDAMENTI DI INFORMATICA T-2 del 16/7/2014 Proff. E. Denti G. Zannoni Tempo a disposizione: 4 ore MAX NB: il candidato troverà nell archivio ZIP scaricato da Esamix anche il software Start Kit

Dettagli

QUEUE : considerazioni. QUEUE : considerazioni. QUEUE : esempio. QUEUE : esempio

QUEUE : considerazioni. QUEUE : considerazioni. QUEUE : esempio. QUEUE : esempio QUEUE : considerazioni QUEUE : considerazioni Si è realizzata una struttura dati complessa utilizzandone una primitiva, l array. Il pregio di tale implementazione è il basso costo computazionale, mentre

Dettagli

Programmazione ad Oggetti: JAVA. Esercitazione

Programmazione ad Oggetti: JAVA. Esercitazione Programmazione ad Oggetti: JAVA Esercitazione Docente Ing. Mariateresa Celardo mariateresa.celardo@uniroma2.it Scrivere la classe Motorino che ha i seguenti attributi colore: una stringa indicante il colore

Dettagli

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008. Esercitazione. Programmazione Object Oriented in Java

Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008. Esercitazione. Programmazione Object Oriented in Java Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it Programmazione Object Oriented in Java

Dettagli

Testo Esercizio. Un modello è ragionevole quando contiene queste tre caratteristiche.

Testo Esercizio. Un modello è ragionevole quando contiene queste tre caratteristiche. Testo Esercizio Un negozio di musica vende anche libri e riviste musicali. Si intende automatizzare l intero processo, dall approvvigionamento alla vendita. Si analizzino i requisiti e se ne rappresentino

Dettagli

ProgettAzione V anno Unità 3 - Architetture per applicazioni web Lezione: Esempio sviluppo applicazioni

ProgettAzione V anno Unità 3 - Architetture per applicazioni web Lezione: Esempio sviluppo applicazioni Unità 3 - Architetture per applicazioni web Lezione: Esempio sviluppo applicazioni Web service Hello world con Visual Studio 2012 Si tratta di un semplice esempio di web service, infatti come tutti I programmi

Dettagli

Esercitazione del Corso di Informatica Grafica. Strumenti per scrivere applicazioni in JAVA

Esercitazione del Corso di Informatica Grafica. Strumenti per scrivere applicazioni in JAVA Esercitazione del Corso di Informatica Grafica Strumenti per scrivere applicazioni in JAVA Perché Java Indipendenza dalla piattaforma Un applicazione scritta in Java può essere facilmente spostato da un

Dettagli

Prova Finale a.a. 2011/2012. Laboratorio 1: Introduzione a Java e Eclipse

Prova Finale a.a. 2011/2012. Laboratorio 1: Introduzione a Java e Eclipse Prova Finale a.a. 2011/2012 Laboratorio 1: Introduzione a Java e Eclipse 1 Java 6 Standard Edition Linguaggio Java (... (javac, Tool di sviluppo Librerie per l'interfaccia grafica Librerie di base Macchina

Dettagli

Progettazione di Applicazioni Web

Progettazione di Applicazioni Web 1 Argomenti della lezione Progettazione di Applicazioni Web Sviluppo delle applicazioni Processo di sviluppo Formalismi grafici di supporto diagrammi UML (cenni) Scelta dell architettura Sviluppo di applicazioni

Dettagli

Introduzione a Classi e Oggetti

Introduzione a Classi e Oggetti Introduzione a Classi e Oggetti Oggetto: concetto astratto Entità di un programma dotata di tre proprietà caratteristiche stato informazioni conservate nell oggetto condizionano il comportamento dell oggetto

Dettagli

Sviluppo Applicazioni Mobile Lezione 11. Dr. Paolo Casoto, Ph.D - 2012

Sviluppo Applicazioni Mobile Lezione 11. Dr. Paolo Casoto, Ph.D - 2012 + Sviluppo Applicazioni Mobile Lezione 11 + Credits I lucidi di questa lezione sono stati preparati da: Professor Stefano Mizzaro Professor Paolo Coppola e sono stati modificati e completati dal Dr. Paolo

Dettagli

I metodi statici -1. Variabili statiche Vogliamo assegnare a ciascuncontoun numeroidentificativo diverso. I metodi statici -2

I metodi statici -1. Variabili statiche Vogliamo assegnare a ciascuncontoun numeroidentificativo diverso. I metodi statici -2 I metodi statici -1 I metodi statici non hanno il parametro implicito il metodo sqrt di Math I metodi statici vengono detti anche metodi di classe perche` non operano su una particolare istanza della classe

Dettagli

Elementi di UML (7): Diagrammi dei componenti e di deployment

Elementi di UML (7): Diagrammi dei componenti e di deployment Elementi di UML (7): Diagrammi dei componenti e di deployment Università degli Studi di Bologna Facoltà di Scienze MM. FF. NN. Corso di Laurea in Scienze di Internet Anno Accademico 2004-2005 Laboratorio

Dettagli

Unità B3 Strutture di controllo

Unità B3 Strutture di controllo (A) CONOSCENZA TERMINOLOGICA Dare una breve descrizione dei termini introdotti: I/O su console Package Blocco di controllo Oggetto System.out Oggetto System.in Oggetto Tastiera Metodo readline() Strutture

Dettagli

Cosa significa che il SW è non lineare? Piccoli cambiamenti nel codice portano a grandi cambiamenti di comportamento

Cosa significa che il SW è non lineare? Piccoli cambiamenti nel codice portano a grandi cambiamenti di comportamento Cosa significa che il SW è non lineare? Piccoli cambiamenti nel codice portano a grandi cambiamenti di comportamento Cosa s'intende per Information Hiding? Impedire l'accesso a dettagli implementativi

Dettagli

Object Oriented Software Design

Object Oriented Software Design Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Object Oriented Software Design Corso di Tecniche di Programmazione Laurea in Ingegneria Informatica (Canale di Ingegneria

Dettagli

Marco Faella Il paradigma Model-View-Controller. Il pattern Strategy.

Marco Faella Il paradigma Model-View-Controller. Il pattern Strategy. Marco Faella Il paradigma Model-View-Controller. Il pattern Strategy. 10 Lezione n. Parole chiave: Java Corso di Laurea: Informatica Insegnamento: Linguaggi di Programmazione II Email Docente: faella.didattica@gmail.com

Dettagli

Java:Struttura di Programma. Fabio Scanu a.s. 2014/2015

Java:Struttura di Programma. Fabio Scanu a.s. 2014/2015 Java:Struttura di Programma Fabio Scanu a.s. 2014/2015 Altre Attenzioni da riservare Java è Case Sensitive: La variabile «a» e la variabile «A» sono diverse Java ha alcune regole di scrittura: I nomi delle

Dettagli

Programmare in Java. Olga Scotti

Programmare in Java. Olga Scotti Programmare in Java Olga Scotti Linguaggi di programmazione linguaggio macchina assembler linguaggi ad alto livello Linguaggi ad alto livello istruzioni comprensibili linguaggio simile a quello naturale

Dettagli

Gestione degli eventi in Java

Gestione degli eventi in Java Gestione degli eventi in Java package java.awt.event.* Il modello degli eventi I componenti dell awt generano eventi in seguito alle azioni dell utente movimento del mouse click pressione di un tasto etc.

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 Installazione SOFTWARE JDK ECLIPSE 03/03/2011 2 ALGORITMI E PROGRAMMI PROBLEMA ALGORITMO PROGRAMMA metodo risolutivo linguaggio di

Dettagli

Scrivere un programma in Java

Scrivere un programma in Java Programmare in JAVA Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA uff. 0577 234850 - interno: 7102 Stanza 119 rigutini@dii.unisi.it http://www.dii.unisi.it/~rigutini/

Dettagli

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page»

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page» Scaletta Estensioni UML per il Web Michele Zennaro 14-05-2004 Le applicazioni web Scopo di un estensione UML per il web Due punti di vista Uno più astratto Uno più vicino ai file fisici conclusivo Commenti

Dettagli

SWIM v2 Design Document

SWIM v2 Design Document PROGETTO DI INGEGNERIA DEL SOFTWARE 2 SWIM v2 DD Design Document Matteo Danelli Daniel Cantoni 22 Dicembre 2012 1 Indice Progettazione concettuale Modello ER Entità e relazioni nel dettaglio User Feedback

Dettagli

Corso Eclipse. Prerequisiti. 3 Window Builder

Corso Eclipse. Prerequisiti. 3 Window Builder Corso Eclipse 3 Window Builder 1 Prerequisiti Conoscenza elementare ambiente Eclipse Conoscere la nomenclatura dei componenti delle interfacce grafiche Conoscere attributi e metodi dei principali componenti

Dettagli

Class Diagram. Catia Trubiani. Laboratorio di Ingegneria del Software a.a. 2013-2014

Class Diagram. Catia Trubiani. Laboratorio di Ingegneria del Software a.a. 2013-2014 Università degli Studi dell Aquila Laboratorio di Ingegneria del Software a.a. 2013-2014 Catia Trubiani Dipartimento di Ingegneria e Scienze dell'informazione e Matematica (DISIM)- Università degli Studi

Dettagli

Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti:

Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti: Javadoc Uno dei pregi di Java è quello di integrare la documentazione con il codice stesso Formato dei commenti: /* commenti */ // commenti /** commenti documentazione */ Questi ultimi generano automaticamente

Dettagli

! Programmazione strutturata ! TDA. ! Classi, incapsulamento, ! OO. ! Scambio messaggi, eredità, polimorfismo. ! OO in Java

! Programmazione strutturata ! TDA. ! Classi, incapsulamento, ! OO. ! Scambio messaggi, eredità, polimorfismo. ! OO in Java Riassunto Rassegna API - 1 Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 17 3 maggio 2015! Programmazione

Dettagli

Swing. Swing 1. Java e la grafica Java permette di realizzare agevolmente applicazioni grafiche Package java.awt

Swing. Swing 1. Java e la grafica Java permette di realizzare agevolmente applicazioni grafiche Package java.awt Swing Swing 1 Java e la grafica Java permette di realizzare agevolmente applicazioni grafiche Package java.awt il primo package grafico (Java 1.0) indipendente dalla piattaforma... o quasi! Package javax.swing

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA1 1.3 - Le strutture di controllo 1 Prerequisiti Istruzioni semplici Strutture di controllo Scittura di semplici applicazioni Java 2 1 Introduzione In molti casi le

Dettagli

Introduzione al package grafico Swing

Introduzione al package grafico Swing Introduzione al package grafico Swing Architettura di javax.swing Java supporta direttamente nella propria architettura il concetto di applicazione grafica, tramite il package javax.swing, in cui i componenti

Dettagli

La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete

La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete La prima applicazione Java Programma MyFirstApplication Il programma visualizza una finestra vuota sullo schermo. Importo il package delle classi usate nel seguito. Dichiaro la classe MyFirstApplication

Dettagli

Ereditarietà e classi astratte

Ereditarietà e classi astratte Ereditarietà e classi astratte 6 Temi del capitolo 1. Il concetto di ereditarietà 2. Programmazione grafica con ereditarietà 3. Classi astratte 4. Il pattern TEMPLATE METHOD 5. Interfacce protected 6.

Dettagli

Tale attività non è descritta in questa dispensa

Tale attività non è descritta in questa dispensa Fondamenti di informatica Oggetti e Java ottobre 2014 1 Nota preliminare L installazione e l uso di Eclipse richiede di aver preliminarmente installato Java SE SDK Tale attività non è descritta in questa

Dettagli

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti Capitolo 3 L applicazione Java Diagrammi ER Dopo le fasi di analisi, progettazione ed implementazione il software è stato compilato ed ora è pronto all uso; in questo capitolo mostreremo passo passo tutta

Dettagli

La programmazione: tradizionale vs Orientata agli Oggetti (OOP)

La programmazione: tradizionale vs Orientata agli Oggetti (OOP) La programmazione: tradizionale vs Orientata agli Oggetti (OOP) In generale, nella soluzione di un problema si individuano dati e funzionalità (azioni) potendola implementare, a livello più semplice, in

Dettagli

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA6 A1 I file testo 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti Modello produttore consumatore Operazioni logiche su struttura file 2 1 Introduzione

Dettagli

Tipi fondamentali di documenti web

Tipi fondamentali di documenti web Tipi fondamentali di documenti web Statici. File associati al web server il cui contenuto non cambia. Tutte le richieste di accesso conducano alla visualizzazione della stessa informazione. Dinamici. Non

Dettagli

Programmazione di sistemi distribuiti

Programmazione di sistemi distribuiti Programmazione di sistemi distribuiti I Sistemi Distribuiti, per loro natura, prevedono che computazioni differenti possano essere eseguite su VM differenti, possibilmente su host differenti, comunicanti

Dettagli

Informatica. Prof. A. Longheu. Introduzione ai Linguaggi Object-Oriented

Informatica. Prof. A. Longheu. Introduzione ai Linguaggi Object-Oriented Informatica Prof. A. Longheu Introduzione ai Linguaggi Object-Oriented 1 Generalità programmazione OO La programmazione ad oggetti è un particolare modo di scrivere il programma. Si prevede che: 1) si

Dettagli

RMI. Java RMI RMI. G. Prencipe prencipe@di.unipi.it

RMI. Java RMI RMI. G. Prencipe prencipe@di.unipi.it Java Remote Method Invocation -- RMI G. Prencipe prencipe@di.unipi.it RMI RMI è una tecnologia JAVA che permette a una JVM di comunicare con un altra JVM per farle eseguire metodi È possibile che oggetti

Dettagli

19. Introduzione al multi-threading

19. Introduzione al multi-threading 19. Introduzione al multi-threading Marco Faella Dip. Ing. Elettrica e Tecnologie dell'informazione Università di Napoli Federico II Corso di Linguaggi di Programmazione II I thread I thread, o processi

Dettagli

SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica

SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica Esercitazioni di PROGETTAZIONE DEL SOFTWARE (Corsi di Laurea in Ingegneria Informatica ed Automatica ed Ingegneria

Dettagli

Progettazione : Design Pattern Creazionali

Progettazione : Design Pattern Creazionali Progettazione : Design Pattern Creazionali Alessandro Martinelli alessandro.martinelli@unipv.it 30 Novembre 2010 Progettazione : Design Pattern Creazionali Aspetti generali dei Design Pattern Creazionali

Dettagli

Programmazione a Oggetti Modulo B

Programmazione a Oggetti Modulo B Programmazione a Oggetti Modulo B Lezione 5 Dott. Alessandro Roncato 08/11/2011 Riassunto Pattern Singleton Pattern Plolimorfismo Classi e Interfacce 2 Ereditarietà multipla In Java una classe può estendere

Dettagli

ESERCITAZIONI SU Java

ESERCITAZIONI SU Java ESERCITAZIONI SU Java PER IL CORSO DI SISTEMI PER L ELABORAZIONE DELL INFORMAZIONE Claudia Picardi Dipartimento di Informatica - C.so Svizzera 185-10149 - Torino Tel. 0116706818 - e-mail: picardi@di.unito.it

Dettagli

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto: Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 A1 - Interfacce grafiche 1 Prerequisiti Utilizzo di un sistema operativo Programmazione elementare ad oggetti Concetto di macchina virtuale Tipi di interfaccia Riferimento

Dettagli

DESIGN PATTERN ESERCITAZIONE PREPARAZIONE ALL ESAME, PARTE II INGEGNERIA DEL SOFTWARE. La soluzione corretta è la c)

DESIGN PATTERN ESERCITAZIONE PREPARAZIONE ALL ESAME, PARTE II INGEGNERIA DEL SOFTWARE. La soluzione corretta è la c) DESIGN PATTERN Barrare con una X la lettera del diagramma delle classi che fra i seguenti rappresenta in modo corretto il design pattern architetturale Model View Controller (MVC) ESERCITAZIONE PREPARAZIONE

Dettagli