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

Dimensione: px
Iniziare la visualizzazioe della pagina:

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

Transcript

1 + Sviluppo Applicazioni Mobile Lezione 11

2 + 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 Casoto nel Sono rilasciati con licenza Creative Commons Attribuzione, non commerciale e non opere derivate.

3 + Cosa vediamo nella lezione di oggi Approfondiamo le tematiche di ereditarietà e polimorfismo analizzando nello specifico il caso dei costrutti messi a disposizione da Java. In particolare proseguiremo nel nostro percorso: Incapsulamento: creare nuovi tipi di dato combinando attributi ed operazioni (o caratteristiche e comportamenti, seguendo la definizione di B. Eckel). Occultamento dell implementazione: rendo privati i dettagli delle mie classi, accessibili solo mediante una interfaccia pubblica Ereditarietà: consente di rappresentare un oggetto come istanza di molteplici tipi, organizzati all interno di una gerarchia. Polimorfismo: consente di differenziare il comportamento di oggetti istanza di classi che derivano da una sovraclasse comune.

4 + Un caso particolare di polimorfismo Consideriamo il caso seguente: La classe A, classe base, all interno del suo costruttore invoca il proprio metodo metodo1 La classe B estende da A. Ciò comporta che ad ogni invocazione de costruttore di B sia eseguita, per prima, l invocazione del relativo costruttore di A. La classe B sovrascrive il metodo metodo1 ereditato da A Domanda: quale versione del metodo metodo1 sarà invocata dal costruttore di A quando istanzio un nuovo oggetto della classe B? Quello di A o quello di B? Ma gli attributi propri di B non sono ancora stati allocati, come posso utilizzarli? Risposta: viene eseguito il metodo della classe B con eventuale lancio di eccezioni!!!

5 + Su quali metodi non posso applicare il polimorfismo? Tutti i metodi di istanza con modificatore private Tutto ciò che è private è anche final e soggetto a binding a tempo di compilazione. Il tutto è abbastanza logico non posso ridefinire quello che non vedo Se in una sottoclasse B definisco un metodo public con la stessa firma di un metodo private della classe base A funziona ma non è un overriding, semplicemente sono due metodi differenti. I metodi statici solo relativi alle classi e non agli oggetti e non sono soggetti a polimorfismo. Se effettuo un upcasting ed invoco un metodo statico p presente sia nella sovraclasse A sia nella sottoclasse B, sarà eseguito il metodo A.p()

6 + Riprendiamo l esempio geometrico Gerarchia di figure con metodo polimorfico draw()

7 + Figura con area()? Aggiungiamo un metodo area() alla gerarchia Ma come calcolare l area di una figura generica? Quadrati, cerchi e punti lo sanno fare Cerchio c = new Cerchio(); Figura f = new Cerchio(); System.out.println(c.area()); System.out.println(f.area());

8 + Figura senza area()? Una figura generica non sa calcolare la propria area. Quindi niente area() in Figura! Ma se non metto area() in Figura Cerchio c = new Cerchio(); Figura c1 = new Cerchio(); Figura f = new Figura(); System.out.println(c.area()); System.out.println(f.area()); System.out.println(c1.area()); cannot resolve symbol symbol : method area () location: class Figura f.area(); ^

9 + Problema: Figura e area() Se metto area() in Figura Non so cosa deve fare Se non metto area() in Figura No polimorfismo, perché non posso essere sicuro che le istanze di Figura (o sottoclasse) hanno area() Soluzione: classi e metodi astratti

10 + Figura e area() astratti Soluzione: area() in Figura è astratto (non invocabile) anche Figura è astratta (non istanziabile) Astratto (metodo o classe) = non completamente specificato Figura funge da idea, da protocollo, ma non fornisce una implementazione reale

11 + In Java abstract Se class dichiaro Figura{ abstract double area(); } erchio c = new Cerchio(); igura poi f = posso new scrivere Cerchio(); ystem.out.println(c.area()); ystem.out.println(f.area()); Ma non posso scrivere f = new Figura(); System.out.println(f.area()); System.out.println((Figura)c.area());

12 + Classi e metodi astratti 1/2 Una classe astratta non può essere istanziata Metodo astratto: metodo privo di implementazione, il cui corpo è sostituito da ; Se una classe contiene metodi astratti allora deve essere astratta ( Pensate a cosa succederebbe invocando un metodo astratto Non è detto che una classe astratta contenga esclusivamente metodi astratti Se una classe è astratta allora deve contenere metodi astratti

13 + Classi e metodi astratti 2/2 Grazie all introduzione delle classi astratte posso scomporre il mio problema ed avere una maggiore genericità. Alcune classi della mia gerarchia sono lasciate non specificate Posso specializzarne il comportamento nelle classi che le estendono Impedire la creazione di istanze di una classe Permette il polimorfismo Si può parlare alla classe base astratta In Java le classi astratte sono caratterizzate dal modificatore abstract, utilizzato anche per i metodi astratti. Non posso utilizzare abstract insieme a static (relativo a metodi ed attributi di classe), insieme a final ed insieme a private (altrimenti se nessuno lo vede chi lo implementa J )

14 + Curiosità Ma se voglio impedire che la mia classe sia estesa da qualche altra classe? Posso utilizzare il modificatore final, che ne impedisce l estensione. Tutti i metodi di una classe final sono, implicitamente, final. Ma se voglio impedire che un metodo della mia classe sia sovrascritto da qualche altra classe? Posso utilizzare il modificatore final, che ne impedisce l estensione. Come impedire che la mia classe sia istanziata? Dichiaro il costruttore private e vincolo l accesso alle istanze della classe ad un metodo statico. Pattern Singleton (Singoletto), utilizzato, ad esempio, nel caso di oggetti per i quali è necessario garantire l unicità E.g. spooler di stampa

15 + Interfacce Le interfacce portano il concetto di astrazione precedentemente descritto ai massimi termini. Una interfaccia non fornisce alcuna implementazione ed alcun attributo. Tutta l implementazione è a carico delle classe che implementa una interfaccia. Solo metodi di istanza astratti Eventuali campi statici e costanti In alcuni linguaggi sono anche descritte come protocolli (e.g. Objective C) Una classe A può implementare l interfaccia I: class A implements I {...} A definisce tutti i metodi di I

16 + Figure scalabili (1/3) interface Scalabile { public void riduci (int scala); } abstract class Figura {...//tutto come prima... } class Punto extends Figura {...//tutto come prima... }

17 + Figure scalabili (2/3) class Cerchio extends Figura implements Scalabile {...//tutto come prima... public void riduci (int scala) { raggio = raggio * scala / 100; } } class Quadrato extends Figura implements Scalabile {...//tutto come prima... public void riduci (int scala){... } }

18 + Figure scalabili (3/3) Scalabile s1 = new Quadrato(); Ora posso scrivere Scalabile s2 = new Cerchio(); s1.riduci(50); Scalabile[] s = new Scalabile[10];... s[i] = new Cerchio(); s[j] = new Quadrato();... s[i].riduci(50); s[j].riduci(20);

19 + Interfacce Oltre alle classi: interfacce Classi che implementano interfacce devono implementarne i metodi: se C implements I siamo sicuri (anche il compilatore!) che gli oggetti di C hanno i metodi di I (oppure C è astratta) abstract class NonSoComeRidurmi implements Scalabile{ // senza riduci() }

20 + Interfacce ed eredità Un interfaccia J può ereditare da un interfaccia I Una classe (non astratta) C che implementa J deve implementare i metodi anche di I

21 + Eredità singola e multipla Eredità singola Ogni classe è sottoclasse diretta di un unica superclasse Eredità multipla Le classi possono avere più superclassi dirette

22 + Eredità multipla: pro Gerarchie nel mondo reale: non sempre a eredità singola Cerchio sottoclasse di Figura Scalabile (oggetti che possono ridursi) Cerchio eredita i metodi sia di Figura sia di Scalabile

23 + e contro Se sia B sia C definiscono m() Da chi viene ereditato m()? Quale m() va eseguito alla chiamata x.m()?

24 + Eredità multipla in Java? Java: eredità singola Parimenti in C# C++: eredità multipla In Java l eredità multipla rientra dalla finestra grazie alle interfacce class A extends B, C {... }

25 + Eredità multipla con interfacce interface I1 {...} interface I2 {...} class C implements I1, I2 {... } interface I3 extends I1, I2 {} class D implements I3 {...}

26 + Eredità multipla con interfacce Quindi: Un interfaccia può estendere più interfacce Una classe può implementare più interfacce (interfacce!= classi astratte) Perché? No eredità multipla dell implementazione

27 + Utilità delle interfacce (1/3) Un altra possibilità per il polimorfismo Parlare alla classe base = interfaccia Es.: array di oggetti scalabili Scalabile[] s = new Scalabile[10]; s[i] = new Cerchio(); s[j] = new Quadrato();... s[i].riduci(50); s[j].riduci(20);

28 + Utilità delle interfacce (2/3) Definizione costanti Oltre a metodi d istanza astratti, anche attributi! Però static e final (ossia: costanti) Più comodo di CostantiUtili.PI interface CostantiUtili{ public static final double PI = ; public static final double E = ; } class C implements CostantiUtili{... PI... E... }

29 + Utilità delle interfacce (3/3) Marcatori di oggetti, per sapere se un oggetto è istanza di una classe che implementa un interfaccia Ad esempio la clonabilita è gestita con interface Cloneable { } Per vericare se una classe è clonabile: if (x instanceof Cloneable) {... operazioni di duplicazione... } else System.out.println("Non clonabile"); In maniera similare Java gestisce, ad esempio, la serializzazione degli oggetti su file.

30 + Utilità classi astratte - bis (1/2) Pattern comune: Classi astratte che forniscono implementazioni parziali o banali di un interfaccia Esempio: Classe C che deve implementare un interfaccia I con tanti metodi ma è interessata solo a uno di questi (gli altri vuoti) Se c è una classe adattatore Ne vedremo un esempio parlando di interfacce grafiche Java quando andremo a conoscere le classi WindowListener e WindowAdapter

31 + Utilità classi astratte - bis (2/2) interface I { public void m1(); public void m2();... public void mn(); } class C3 implements I { class public C2 void implements m1(){} I { class public C1 void implements m1(){} m2(){} I { public... void m1(){...} m2(){} public... public void void m2(){} mn(){...}... public } void mn(){...} public } void mn(){} } abstract class A implements I { public void m1(){} public void m2(){}... public void mn(){} } class Cn extends A { public void mn(){...} class } C2 extends A { public void m2(){...} class } C1 extends A { public void m1(){...} }

32 + Conversioni di tipo e cast Con i tipi predefiniti: Promozione (implicita): da byte ad int Cast (esplicito): da int a byte Con le classi Promozione (implicita): da B ad A Cast (esplicito): da A a B Implicito: non crea problemi A B

33 + Cast rivisitato: upcast Upcast/Promozione: Di solito implicita Ok perché non pericolosa Figura[] f = new Figura[ ]; f[i] = new Punto(); f[i] = (Figura)new Punto();

34 + Cast rivisitato: downcast Esplicito e pericoloso Se so che f[i] è un Punto, posso chiamare i suoi metodi, previo cast Ma se poi f[i] non è un Punto, errore in esecuzione A volte downcast non fino in fondo alla gerarchia (array di Object, contenente una Figura ) Figura[] f = new Figura[ ]; f[i] = new Punto(); f[j] = new Cerchio(); f[i].setx(2.0); f[j].setx(2.0); (Punto)f[i].setX(2.0); (Punto)f[j].setX(2.0);

35 + Classi interne Possibilità di definire una classe all interno di un altra classe Consente di raggruppare classi logicamente interconnesse in modo da poterne controllare la visibilità fra le stesse. La particolarità delle classi interne è quella di poter comunicare con la classe che la circonda senza dover ricorrere a lunghe catene di delega e riducendo la conascenza fra le classi stesse. E.g.: un oggetto A deve passare ad un altro oggetto B se stesso per consentire a B di modificarne le proprietà al verificarsi di un evento. Le classi interne includono un riferimento implicito alla classe esterna che le contiene. Posso allocare un oggetto di una classe interna solo a partire da un oggetto della classe esterna precedentemente inizializzato

36 + Classi interne Per ottenere il riferimento all oggetto della classe esterna dall interno di una classe interna è necessario utilizzare la sintassi: NomeDellaClasseEsterna.this Per creare un oggetto della classe interna da un terzo oggetto, dato il riferimento all oggetto della classe esterna b, devo utilizzare la sintassi: NomeDellaClasseEsterna. NomeDellaClasseInterna = b.new NomeDellaClasseInterna (); E.g.: Outer out = new Outer; Outer.Inner in = out.new Inner(); Con Outer classe esterna ed Inner definita al suo interno

37 + Classi interne E possibile definire anche classi interne con visibilità limitata all interno di un metodo della classe esterna o di un singolo blocco del metodo stesso. E possibile definire anche classi anonime, il cui corpo ed i cui metodi sono definiti al volo in fase di istanziazione dell oggetto. Si utilizza di solito per i gestori degli eventi associati alle componenti grafiche nelle GUI. Ove non sia necessario disporre di un legame fra classi interne ed esterne è possibile definire le cosiddette classi innestate: definite come static, non necessitano di un oggetto della classe esterna per essere istanziate. Non possono accedere in modo implicito alle proprietà di istanza della classe esterna Infatti non si mantiene un riferimento ad una istanza dell oggetto esterno

38 + Esempio class Classe { class Membro extends A {... } public void m() { class Locale extends A {... } Membro m = new Membro(); Locale l = new Locale(); A x = (new A(){... }); } } Anche se A è un interfaccia! (extends!= implements)

39 + Incapsulamento Abbiamo visto come l incapsulamento sia una delle proprietà principali che hanno portato alla programmazione OO Incapsulare in una unità separata elementi funzionali coerenti Incapsulamento su più livelli Livello 0: codice grezzo Livello 1: procedure, operazioni (programmazione strutturata) Livello 2: oggetti, costituiti da un insieme di proprietà ed operazioni coerenti e la cui implementazione può essere nascosta Livello 3: package o namespace Livello 4: componenti, moduli e ma non esageriamo per ora, limitiamoci ai primi 3 livelli.

40 + Metriche legate all incapsulamento Ventaglio: numero di riferimenti a procedure (L1) presenti all interno di una linea di codice (L0) Quanto la specifica linea di codice è dipendente da altre entità del sistema con livello di incapsulamento maggiore. Coesione: quanto le righe di codice (L0) che costituiscono una procedura (L1) sono necessarie per implementare le finalità della procedura stessa. Accoppiamento: misura delle connessioni fra due procedure (L1) Questo per la programmazione strutturata. E nel mondo OO?

41 + Metriche legate all incapsulamento nel mondo OO Coesione di classe: misura del grado di coesione fra le operazioni e gli attributi che costituiscono una classe e le finalità della classe stessa. Accoppiamento di classe: misura del grado di interdipendenza fra due classi A e B. Più in generale, dati due elementi software A e B (indipendentemente dal livello di incapsulamento), possiamo parlare di Conascenza quando: Una modifica ad A può richiedere la conseguente modifica di B Una modifica ad un terzo elemento può comportare la necessità di modificare A e B.

42 + Conascenza Due tipologie di conascenza sono evidenziabili: Conascenza statica: Di nome Di tipo Di convenzione: costanti, formati, et al. Di algoritmo Di posizione: posso invertire l ordine di A e B in compilazione? Conascenza dinamica: Temporale Di valore: invarianti da rispettare Di identità Di esecuzione: posso invertire l ordine di A e B in esecuzione?

43 + Conascenza e contronascenza La conascenza emerge quando due entità sw devono concordare su una proprietà, ad esempio il nome. Vi sono evidenti casi in cui invece due entità sw devono necessariamente divergere l uno dagli altri E.g.: dichiarazione di variabili già dichiarate nell ambito dello scope. Concetto di CONTRONASCENZA: necessità di diversità La conascenza è inevitabile nel software. E importante tuttavia ridurla quanto più entro i limiti dell incapsulamento Incapsulare, nascondere l implementazione ed esporre protocolli pubblici Ridurre la conascenza residua presente al di fuori dellincapsulamento

44 + I problemi derivanti dalla conascenza Lo sviluppatore 1 sviluppa una classe A per rappresentare i vettori di elementi che ha una caratteristica: i dati sono rappresentati in ordine inverse rispetto all ordine di inserimento Tale caratteristica non è mai stata documentata ma lo sviluppatore 1 ne fa uso in più punti del proprio sistema perché peculiare della implementazione di A Dopo anni si decide di rimpiazzare la classe A con una nuova classe B che, pur adottando lo stesso protocollo, non presenta la medesima caratteristica. Cosa succederà al software? Cosa fareste nei passi del programmatore 1? Qui non è un problema di codice, bensì di documentazione!!!

45 + Domande??? Grazie a tutti per l attenzione

Riassunto: cos è la OOP? classi astratte, interfacce, classi interne. Scaletta. Figura con area()? Figura senza area()? Stefano Mizzaro 1.

Riassunto: cos è la OOP? classi astratte, interfacce, classi interne. Scaletta. Figura con area()? Figura senza area()? Stefano Mizzaro 1. OO in Java: classi astratte, interfacce, classi interne Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro mizzaro@dimi.uniud.it Programmazione,

Dettagli

NON ABBIAMO ANCORA CORRETTO LE PROVETTE!!!

NON ABBIAMO ANCORA CORRETTO LE PROVETTE!!! NON ABBIAMO ANCORA CORRETTO LE PROVETTE!!! OO in Java: classi astratte, interfacce, classi interne Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/

Dettagli

Parola chiave extends

Parola chiave extends Il Linguaggio Java Ereditarietà Ereditarietà L'ereditarietà permette di creare nuove classi sulla base di classi esistenti In particolare, permette di riusare il codice (metodi e campi); aggiungere nuovi

Dettagli

Modulo 4: Ereditarietà, interfacce e clonazione

Modulo 4: Ereditarietà, interfacce e clonazione Modulo 4: Ereditarietà, interfacce e clonazione Argomenti Trattati: Classi, Superclassi e Sottoclassi Ereditarietà Ereditarietà ed Attributi Privati Override super Ereditarietà e Costruttori Polimorfismo

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

!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&) !"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9

!#$%&&'()#*%+%+!#$',,'()#*%+ -)%*&'&'+'$.)+-$$%&&) !#$%&&'(%)'*+%,#-%#.'%&'#/0)-+#12+3,)4+56#7+#.')8'9 !"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&)!"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9 Slide 1 Paradigmi di Programmazione! Un linguaggio supporta uno stile di programmazione se

Dettagli

Java: Compilatore e Interprete

Java: Compilatore e Interprete Java: Compilatore e Interprete Java Virtual Machine Il bytecode non è Linguaggio Macchina. Per diventarlo, deve subire un ulteriore trasformazione che viene operata dall interprete Java in modalità JIT

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

Oggetti Lezione 3. aspetti generali e definizione di classi I

Oggetti Lezione 3. aspetti generali e definizione di classi I Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione

Dettagli

Programmazione a Oggetti Modulo B

Programmazione a Oggetti Modulo B Programmazione a Oggetti Modulo B Progetto Dott. Alessandro Roncato 4/10/2011 Progetto Da svolgere singolarmente Scadenza consegna: una settimana prima dello scritto; Valutazione in base a: Corretta compilazione

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

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

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

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

Introduzione alla Programmazione Orientata agli Oggetti. Classi, Oggetti e Messaggi

Introduzione alla Programmazione Orientata agli Oggetti. Classi, Oggetti e Messaggi Introduzione alla Programmazione Orientata agli Oggetti Classi, Oggetti e Messaggi Agenda 1. La metodologia di progettazione ad oggetti Concetti fondamentali: oggetti, classi, messaggi 2. I concetti fondamentali

Dettagli

Introduzione. Java. Composizione. Esempio -- composizione. G. Prencipe prencipe@di.unipi.it. È qualcosa che abbiamo già visto varie volte

Introduzione. Java. Composizione. Esempio -- composizione. G. Prencipe prencipe@di.unipi.it. È qualcosa che abbiamo già visto varie volte Java riutilizzo delle classi G. Prencipe prencipe@di.unipi.it Introduzione Una delle caratteristiche fondamentali in Java è il riutilizzo del codice Ci sono due modi per ottenerlo Creare oggetti di classi

Dettagli

Autovalutazione. OO in Java: classi astratte, interfacce, classi interne. Riassunto: cos è la OOP?

Autovalutazione. OO in Java: classi astratte, interfacce, classi interne. Riassunto: cos è la OOP? OO in Java: classi astratte, interfacce, classi interne Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione

Dettagli

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi Indice generale OOA Analisi Orientata agli Oggetti Introduzione Analisi Metodi d' analisi Analisi funzionale Analisi del flusso dei dati Analisi delle informazioni Analisi Orientata agli Oggetti (OOA)

Dettagli

Informatica 3. LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1)

Informatica 3. LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1) Informatica 3 LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1) Modulo 1: Introduzione: oggetti e classi Modulo 2: Link e associazioni Modulo 3: Aggregazione Informatica 3 Lezione 7 -

Dettagli

Prossime lezioni. Dai TDA agli oggetti. Riassunto. Riassunto TDA. Oggi. Stefano Mizzaro 1

Prossime lezioni. Dai TDA agli oggetti. Riassunto. Riassunto TDA. Oggi. Stefano Mizzaro 1 Prossime lezioni Dai TDA agli oggetti Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro mizzaro@dimi.uniud.it Programmazione, lezione 18 19 gennaio

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

SOMMARIO... 3 INTRODUZIONE...

SOMMARIO... 3 INTRODUZIONE... Sommario SOMMARIO... 3 INTRODUZIONE... 4 INTRODUZIONE ALLE FUNZIONALITÀ DEL PROGRAMMA INTRAWEB... 4 STRUTTURA DEL MANUALE... 4 INSTALLAZIONE INRAWEB VER. 11.0.0.0... 5 1 GESTIONE INTRAWEB VER 11.0.0.0...

Dettagli

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Condizione di sincronizzazione Qualora si voglia realizzare una determinata politica di gestione delle risorse,la decisione se ad

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

Organizzazione degli archivi

Organizzazione degli archivi COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i

Dettagli

Sistema operativo: Gestione della memoria

Sistema operativo: Gestione della memoria Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e

Dettagli

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012 Fondamenti di informatica Oggetti e Java ottobre 2012 1 JUnit JUnit è uno strumento per assistere il programmatore Java nel testing JUnit consente di scrivere test di oggetti e classi Java i test sono

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

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

LA GESTIONE DELLE VISITE CLIENTI VIA WEB LA GESTIONE DELLE VISITE CLIENTI VIA WEB L applicazione realizzata ha lo scopo di consentire agli agenti l inserimento via web dei dati relativi alle visite effettuate alla clientela. I requisiti informatici

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 Online Analista Programmatore Microsoft

Corso Online Analista Programmatore Microsoft Corso Online Analista Programmatore Microsoft We Train Italy info@wetrainitaly.it Programma Generale del Corso Analista Programmatore Microsoft Tematiche di Base Modulo Uno Le basi della programmazione

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

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Progettazione Basi Dati: Metodologie e modelli!modello Entita -Relazione Progettazione Base Dati Introduzione alla Progettazione: Il ciclo di vita di un Sist. Informativo

Dettagli

Concetto di Funzione e Procedura METODI in Java

Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile

Dettagli

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP Accademia Futuro info@accademiafuturo.it Programma Generale del Corso Analista Programmatore Web PHP Tematiche Trattate

Dettagli

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da ARPA Fonte Dati Regione Toscana Redatto da L. Folchi (TAI) Rivisto da Approvato da Versione 1.0 Data emissione 06/08/13 Stato DRAFT 1 Versione Data Descrizione 1,0 06/08/13 Versione Iniziale 2 Sommario

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 Incapsulamento Polimorfismo e Overloading Ereditarietà e Overriding Esercizi svolti Esercizi proposti Paradigma OO Le

Dettagli

Abstract Data Type (ADT)

Abstract Data Type (ADT) Abstract Data Type Pag. 1/10 Abstract Data Type (ADT) Iniziamo la nostra trattazione presentando una nozione che ci accompagnerà lungo l intero corso di Laboratorio Algoritmi e Strutture Dati: il Tipo

Dettagli

BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software. Caratteristiche fondamentali. Linguaggi utilizzati. Navigazione 3D

BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software. Caratteristiche fondamentali. Linguaggi utilizzati. Navigazione 3D BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software BDX 3D Editor è un programma che permette di navigare ed editare texture in un qualsiasi modello 3D.E compatibile con i software in grado di esportare

Dettagli

Eredità in C++ Corso di Linguaggi di Programmazione ad Oggetti 1. a cura di Giancarlo Cherchi

Eredità in C++ Corso di Linguaggi di Programmazione ad Oggetti 1. a cura di Giancarlo Cherchi Eredità in C++ Corso di Linguaggi di Programmazione ad Oggetti 1 a cura di Giancarlo Cherchi 1 Introduzione Il meccanismo dell eredità consente di sfruttare delle relazioni tipo/sottotipo, ereditando attributi

Dettagli

L ambizione dei design pattern (letteralmente schemi di programmazione) è quella di offrire soluzioni a problemi ricorrenti che facilitano lo

L ambizione dei design pattern (letteralmente schemi di programmazione) è quella di offrire soluzioni a problemi ricorrenti che facilitano lo Design Pattern L ambizione dei design pattern (letteralmente schemi di programmazione) è quella di offrire soluzioni a problemi ricorrenti che facilitano lo sviluppo dei programmi, il loro mantenimento,

Dettagli

Introduzione ai tipi di dato astratti: applicazione alle liste

Introduzione ai tipi di dato astratti: applicazione alle liste Universitàdegli Studi di L Aquila Facoltàdi Scienze M.F.N. Corso di Laurea in Informatica Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2005/2006 Introduzione ai tipi di dato astratti: applicazione

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

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

Siti web centrati sui dati Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

Dettagli

LINGUAGGI DI PROGRAMMAZIONE

LINGUAGGI DI PROGRAMMAZIONE LINGUAGGI DI PROGRAMMAZIONE Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente) quali istruzioni di

Dettagli

Gestione Turni. Introduzione

Gestione Turni. Introduzione Gestione Turni Introduzione La gestione dei turni di lavoro si rende necessaria quando, per garantire la continuità del servizio di una determinata struttura, è necessario che tutto il personale afferente

Dettagli

Introduzione alla programmazione in C

Introduzione alla programmazione in C Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale

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

Fondamenti di Informatica C Esercitazioni di Laboratorio / 3 http://polaris.ing.unimo.it/fic/laboratorio.html. Outline

Fondamenti di Informatica C Esercitazioni di Laboratorio / 3 http://polaris.ing.unimo.it/fic/laboratorio.html. Outline Fondamenti di Informatica C Esercitazioni di Laboratorio / 3 http://polaris.ing.unimo.it/fic/laboratorio.html Ing. Francesco De Mola demola.francesco@unimore.it DII, Modena Via Vignolese (lab. Dottorandi

Dettagli

per immagini guida avanzata Organizzazione e controllo dei dati Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1

per immagini guida avanzata Organizzazione e controllo dei dati Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1 Organizzazione e controllo dei dati Geometra Luigi Amato Guida Avanzata per immagini excel 2000 1 Il raggruppamento e la struttura dei dati sono due funzioni di gestione dati di Excel, molto simili tra

Dettagli

Soluzione dell esercizio del 2 Febbraio 2004

Soluzione dell esercizio del 2 Febbraio 2004 Soluzione dell esercizio del 2 Febbraio 2004 1. Casi d uso I casi d uso sono riportati in Figura 1. Figura 1: Diagramma dei casi d uso. E evidenziato un sotto caso di uso. 2. Modello concettuale Osserviamo

Dettagli

Architettura MVC-2: i JavaBeans

Architettura MVC-2: i JavaBeans Siti web centrati sui dati Architettura MVC-2: i JavaBeans Alberto Belussi anno accademico 2008/2009 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

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

Testo Esercizio. Un modello è ragionevole quando contiene queste tre caratteristiche. Testo Esercizio Si consideri la realizzazione di un semplice programma grafico per il disegno di figure geometriche in due dimensioni. Si analizzino i requisiti e se ne rappresentino i risultati in UML

Dettagli

L apposizione di firme e informazioni su documenti firmati

L apposizione di firme e informazioni su documenti firmati L apposizione di firme e informazioni su documenti firmati Il presente documento si pone l obiettivo di chiarire alcuni aspetti generali dei formati di firma CAdES (file con estensione p7m) e PAdES (file

Dettagli

MANUALE PORTALE UTENTE IMPRENDITORE

MANUALE PORTALE UTENTE IMPRENDITORE MANUALE PORTALE UTENTE IMPRENDITORE Indice 1. REQUISITI MINIMI DI SISTEMA E CONTATTI PROGETTO RIGENER@... 3 2. IL PORTALE RIGENER@... 4 2.1 ACCESSO ALLE AREE PRIVATE... 7 2.1.1 Accesso al sito con Windows

Dettagli

Struttura di un programma Java

Struttura di un programma Java Struttura di un programma Java Un programma in Java è un insieme di dichiarazioni di classi. Una classe non può contenere direttamente delle istruzioni, ma può contenere la dichiarazione di metodi, che

Dettagli

RIFERIMENTI ATTORI GLOSSARIO. ERRORI COMUNI REV. REQUISITI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova

RIFERIMENTI ATTORI GLOSSARIO. ERRORI COMUNI REV. REQUISITI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova RIFERIMENTI ERRORI COMUNI REV. REQUISITI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2014 2015 I riferimenti devono essere precisi

Dettagli

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013

Programmazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013 Programmazione a Oggetti e JAVA Prof. B.Buttarazzi A.A. 2012/2013 Relazioni tra classi Ereditarietà Generalizzazione Specializzazione Aggregazione Composizione Dipendenza Associazione Sommario Relazioni

Dettagli

Introduzione alla Programmazione ad Oggetti in C++

Introduzione alla Programmazione ad Oggetti in C++ Introduzione alla Programmazione ad Oggetti in C++ Lezione 1 Cosa è la Programmazione Orientata agli Oggetti Metodologia per costruire prodotti software di grosse dimensioni che siano affidabili e facilmente

Dettagli

Automazione Industriale 4- Ingegneria del Software

Automazione Industriale 4- Ingegneria del Software Automation Robotics and System CONTROL Università degli Studi di Modena e Reggio Emilia Automazione Industriale 4- Ingegneria del Software Cesare Fantuzzi (cesare.fantuzzi@unimore.it) Ingegneria Meccatronica

Dettagli

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere. UML e i Casi d USO I casi d uso specificano una sequenza di azioni che producono un risultato visibile agli attori del sistema. Essi nascono per fornire descrizioni delle capacità del sistema. I casi d

Dettagli

Creare diagrammi di Gantt con Visio 2003

Creare diagrammi di Gantt con Visio 2003 Creare diagrammi di Gantt con Visio 2003 La fase di pianificazione di un progetto è sicuramente molto delicata e alquanto complessa, in quanto bisogna riuscire a definire una scomposizione del progetto

Dettagli

Progetto: ARPA Fonte Dati. ARPA Fonte Dati. Regione Toscana. Manuale Amministratore

Progetto: ARPA Fonte Dati. ARPA Fonte Dati. Regione Toscana. Manuale Amministratore ARPA Fonte Dati Regione Toscana 1 Redatto da L. Folchi (TAI) Rivisto da Approvato da Versione 1.1 Data emissione 09/10/13 Stato FINAL 2 Versione Data Descrizione 1,0 06/08/13 Versione Iniziale 1.1 09/10/2013

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

Programmazione II. Lezione 4. Daniele Sgandurra 30/09/2011. daniele.sgandurra@iit.cnr.it

Programmazione II. Lezione 4. Daniele Sgandurra 30/09/2011. daniele.sgandurra@iit.cnr.it Programmazione II Lezione 4 Daniele Sgandurra daniele.sgandurra@iit.cnr.it 30/09/2011 1/46 Programmazione II Lezione 4 30/09/2011 Sommario 1 Esercitazione 2 Panoramica della Programmazione Ad Oggetti 3

Dettagli

Corso di Programmazione ad Oggetti

Corso di Programmazione ad Oggetti Corso di Programmazione ad Oggetti Il meccanismo dell ereditarietà a.a. 2008/2009 Claudio De Stefano 1 L ereditarietà consente di definire nuove classi per specializzazione o estensione di classi preesistenti,

Dettagli

5.3 TABELLE 5.3.1 RECORD 5.3.1.1 Inserire, eliminare record in una tabella Aggiungere record Eliminare record

5.3 TABELLE 5.3.1 RECORD 5.3.1.1 Inserire, eliminare record in una tabella Aggiungere record Eliminare record 5.3 TABELLE In un sistema di database relazionali le tabelle rappresentano la struttura di partenza, che resta poi fondamentale per tutte le fasi del lavoro di creazione e di gestione del database. 5.3.1

Dettagli

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1) La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema

Dettagli

Registratori di Cassa

Registratori di Cassa modulo Registratori di Cassa Interfacciamento con Registratore di Cassa RCH Nucleo@light GDO BREVE GUIDA ( su logiche di funzionamento e modalità d uso ) www.impresa24.ilsole24ore.com 1 Sommario Introduzione...

Dettagli

Proff. Fabio Ciao e Raffaele Bortone

Proff. Fabio Ciao e Raffaele Bortone ISTITUTO D ISTRUZIONE SUPERIORE FERRARIS BRUNELLESCHI - EMPOLI Materia: INFORMATICA PROGRAMMAZIONE ANNUALE A.S. 2014/2015 Classe IV C Informatica Proff. Fabio Ciao e Raffaele Bortone Libro di testo: Cloud

Dettagli

Coordinazione Distribuita

Coordinazione Distribuita Coordinazione Distribuita Ordinamento degli eventi Mutua esclusione Atomicità Controllo della Concorrenza 21.1 Introduzione Tutte le questioni relative alla concorrenza che si incontrano in sistemi centralizzati,

Dettagli

Esercizio 1: trading on-line

Esercizio 1: trading on-line Esercizio 1: trading on-line Si realizzi un programma Java che gestisca le operazioni base della gestione di un fondo per gli investimenti on-line Creazione del fondo (con indicazione della somma in inizialmente

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

Raggruppamenti Conti Movimenti

Raggruppamenti Conti Movimenti ESERCITAZIONE PIANO DEI CONTI Vogliamo creare un programma che ci permetta di gestire, in un DB, il Piano dei conti di un azienda. Nel corso della gestione d esercizio, si potranno registrare gli articoli

Dettagli

Esercitazione di Basi di Dati

Esercitazione di Basi di Dati Esercitazione di Basi di Dati Corso di Fondamenti di Informatica 6 Maggio 2004 Come costruire una ontologia Marco Pennacchiotti pennacchiotti@info.uniroma2.it Tel. 0672597334 Ing.dell Informazione, stanza

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

Generazione Automatica di Asserzioni da Modelli di Specifica

Generazione Automatica di Asserzioni da Modelli di Specifica UNIVERSITÀ DEGLI STUDI DI MILANO BICOCCA FACOLTÀ DI SCIENZE MATEMATICHE FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Generazione Automatica di Asserzioni da Modelli di Specifica Relatore:

Dettagli

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni server

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni server Versione 30.5.05 Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/: applicazioni 1 La logica dei socket Abbiamo visto che un applicazione client si connette

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

Programmazione Java: Variabili membro, Metodi La parola chiave final

Programmazione Java: Variabili membro, Metodi La parola chiave final Programmazione Java: Variabili membro, Metodi La parola chiave final romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp Roadmap Definire una classe» Variabili membro» Metodi La parola chiave

Dettagli

Mon Ami 3000 Produzione base Produzione articoli con distinta base e calcolo dei fabbisogni

Mon Ami 3000 Produzione base Produzione articoli con distinta base e calcolo dei fabbisogni Prerequisiti Mon Ami 3000 Produzione base Produzione articoli con distinta base e calcolo dei fabbisogni L opzione Produzione base è disponibile per le versioni Azienda Light e Azienda Pro. Introduzione

Dettagli

costruttori e distruttori

costruttori e distruttori costruttori e distruttori Costruttore E un metodo che ha lo stesso nome della classe a cui appartiene: serve per inizializzare un oggetto all atto della sua creazione Ce ne possono essere uno, più di uno,

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

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

DESIGN PATTERN CREAZIONALI INGEGNERIA DEL SOFTWARE INTRODUZIONE SINGLETON. Scopo dei design pattern creazionali

DESIGN PATTERN CREAZIONALI INGEGNERIA DEL SOFTWARE INTRODUZIONE SINGLETON. Scopo dei design pattern creazionali DESIGN PATTERN CREAZIONALI DESIGN PATTERN CREAZIONALI INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2013 2014 rcardin@math.unipd.it

Dettagli

7. Layer e proprietà degli oggetti

7. Layer e proprietà degli oggetti 7. Layer e proprietà degli oggetti LAYER 09/01/13 ing. P. Rordorf arch. D. Bruni arch. A. Chiesa ing. A. Ballarini 38(52) Le proprietà dei layer: - Nome: ogni layer ha un nome proprio che ne permette una

Dettagli

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico Introduzione alle basi di dati Introduzione alle basi di dati Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS Gestione delle

Dettagli

Il Sistema Operativo (1)

Il Sistema Operativo (1) E il software fondamentale del computer, gestisce tutto il suo funzionamento e crea un interfaccia con l utente. Le sue funzioni principali sono: Il Sistema Operativo (1) La gestione dell unità centrale

Dettagli

RMI Remote Method Invocation

RMI Remote Method Invocation RMI Remote Method Invocation [Pagina intenzionalmente vuota] (1 12 2004) slide 4:1/18 (p.106) Un applicazione RMI è un applicazione distribuita ad oggetti. Applicazione RMI tipica, strutturata in: server:

Dettagli

Realizzazione di una classe con un associazione

Realizzazione di una classe con un associazione Realizzazione di una classe con un associazione Nel realizzare una classe che è coinvolta in un associazione, ci dobbiamo chiedere se la classe ha responsabilità sull associazione. Diciamo che una classe

Dettagli

Il web server Apache Lezione n. 3. Introduzione

Il web server Apache Lezione n. 3. Introduzione Procurarsi ed installare il web server Apache Introduzione In questa lezione cominciamo a fare un po di pratica facendo una serie di operazioni preliminari, necessarie per iniziare a lavorare. In particolar

Dettagli

Gestione Rapporti (Calcolo Aree)

Gestione Rapporti (Calcolo Aree) Gestione Rapporti (Calcolo Aree) L interfaccia dello strumento generale «Gestione Rapporti»...3 Accedere all interfaccia (toolbar)...3 Comandi associati alle icone della toolbar...4 La finestra di dialogo

Dettagli

Inizializzazione, Assegnamento e Distruzione di Classi

Inizializzazione, Assegnamento e Distruzione di Classi Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della

Dettagli

Corso di Programmazione ad Oggetti

Corso di Programmazione ad Oggetti Corso di Programmazione ad Oggetti Introduzione alla programmazione ad oggetti a.a. 2008/2009 Claudio De Stefano 1 La programmazione modulare Un programma può essere visto come un insieme di moduli che

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down

Dettagli

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015 BASE DI DATI: introduzione Informatica 5BSA Febbraio 2015 Di cosa parleremo? Base di dati relazionali, modelli e linguaggi: verranno presentate le caratteristiche fondamentali della basi di dati. In particolare

Dettagli

Mon Ami 3000 Conto Lavoro Gestione del C/Lavoro attivo e passivo

Mon Ami 3000 Conto Lavoro Gestione del C/Lavoro attivo e passivo Prerequisiti Mon Ami 3000 Conto Lavoro Gestione del C/Lavoro attivo e passivo L opzione Conto lavoro è disponibile per le versioni Azienda Light e Azienda Pro. Introduzione L opzione Conto lavoro permette

Dettagli

Uso dei modelli/template

Uso dei modelli/template Uso dei modelli/template Il modello (o template, in inglese) non è altro che un normale file di disegno, generalmente vuoto, cioè senza alcuna geometria disegnata al suo interno, salvato con l estensione.dwt.

Dettagli

GESTIONE DEI PROCESSI

GESTIONE DEI PROCESSI Sistemi Operativi GESTIONE DEI PROCESSI Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in Java Concetto

Dettagli