Unified Modeling Language class C {…} class B extends C {…} Esiste una notazione grafica per mostrare le relazioni di ereditarietà. Object StringC B Tutte.

Slides:



Advertisements
Presentazioni simili
Mostrare l'evoluzione dello stato (ambiente di classi, heap, pila, System.out) dopo ciascuna istruzione del main: public class Up extends Object { public.
Advertisements

1 Le s-espressioni. 2 Un nuovo esempio completo: le s-espressioni Sexpr 4 alberi binari (possibilmente vuoti) che hanno sulle foglie atomi (stringhe)
1 Progettazione gerarchica delle s- espressioni, utilizzando lereditarietà
Interfacce Java.
Capitolo 2 Nozioni fondamentali su Java Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill.
Capitolo 4 Classi Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
Capitolo 7 Programmazione con metodi e classi Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © 2004.
Capitolo 8 Array Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies srl.
Programmazione Ingegneria TLC
Esercizio 2. Mostrare l'evoluzione dello stato (ambiente di classi, heap, pila, System.out) durante la valutazione delle seguenti dichiarazioni di classe.
Liste Ordinate 3 Maggio Ultima Lezione Abbiamo visto i tipi di dato astratti IntList e StringList Realizzano liste di interi e di stringhe Realizzati.
Sequential Statements. – Il VHDL simula lo svolgersi in parallelo di varie operazioni – Loggetto fondamentale e il PROCESS – Un PROCESS contiene una serie.
EJB Enterprise Java Beans B. Pernici. Approccio Java.
Layouts and Graphics. component - container - layout Un Container contiene [0 o +] Components Il Layout specifica come i Components sono disposti nel.
1 struct Pila { private: int size; int defaultGrowthSize; int marker; int * contenuto; void cresci(int increment); public: Pila(int initialSize) ; Pila();
Model – View - Controller
Esempio: Tombola! Parte seconda.
J0 1 Marco Ronchetti Java Threads & Sincronizzazione.
Modificatori: static Variabili e metodi associati ad una Classe anziche ad un Oggetto sono definiti static. Le variabili statiche servono come singola.
Richiami di Java Multithreading. Threads (subclassing) public class A { public void a_method { C t = new C(); //C t = new C(String name); t.start(); …
Sezione: Costruttori Costruttori. Definizione dei costruttori Se per una classe A non scrivo nessun costruttore, il sistema automaticamente crea il costruttore.
prompt> java SumAverage
1 struct Pila { private: int size; int defaultGrowthSize; int marker; int * contenuto; void cresci(int increment); public: Pila(int initialSize) ; Pila();
Costruzione di Interfacce Lezione 10 Dal Java al C++ parte 1
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) JAVA: i commenti Anno Accademico 2009/2010.
1 Ultima Lezione del Corso di Fondamenti di Informatica 1 a.a – 06 Ma 29-Nov-2005.
1. Conoscere luso delle collezioni in Java Comprendere le principali caratteristiche nelle varie classi di Collection disponibili Saper individuare quali.
JAVA C import java.util.*; #include <stdio.h>
Java Database Connection (dal corso dei Servizi Web)
Programming with JXTA Hello World Peer discovery Peer Group discovery Creating Peer group Joining a Peer Group.
Università La Sapienza Ingegneria del Software I 1 Ingegneria del software I Seminario 3:Enterprise Java Beans.
1 Implementazione di Linguaggi 2 PARTE 6 Implementazione di Linguaggi 2 PARTE 6 Massimo Ancona DISI Università di Genova Testo: A.V. Aho, R. Sethi, J.D.Ullman.
Selezione (=scelta) con “if-else”
1 Meccanismi per la definizione di tipi di dato §la programmazione di applicazioni consiste in gran parte nella definizione di nuovi tipi di dato §un qualunque.
2000 Prentice Hall, Inc. All rights reserved. 1 Capitolo 6: Classi e astrazione dati 1.Introduzione 2.Definizione delle strutture 3.Accedere ai membri.
Sottoprogrammi e Unità di Compilazione Nicola Fanizzi Laboratorio - Corso di Programmazione (B) C.d.L. in Informatica DIB - Università degli Studi di Bari.
1 laboratorio di calcolo II AA 2003/04 ottava settimana a cura di Domizia Orestano Dipartimento di Fisica Stanza tel. ( )
Packages. Package: insieme di classi e interfacce in relazione Per formare un package basta inserire la direttiva come prima istruzione nel file sorgente.
Callbacks. Scelta delle classi di un progetto Criteri di coesione e accoppiamento Interfacce e subtype polimorfismo Tipi, sottotipi e conversioni di tipo.
Programmazione Parametrica ( a.k.a. Generics ). Introduzione ai meccanismi e concetti della programmazione parametrica Generics e relationi di sottotipo.
Programmazione distribuita in Java
Java base VI: Gestione I/O. Argomenti Introdurre le API per linput e output in Java.
Università degli studi di Modena e Reggio Emilia Facoltà di Ingegneria di Modena Corso di Laurea Specialistica in Ingegneria Informatica Analisi e valutazione.
Lezione n° 05 Istituto Statale di Istruzione Superiore F. Enriques Corso JAVA.
Fondamenti di Informatica Corsi di Laurea in Ingegneria Gestionale Canale AL ESERCITAZIONE 4 ARGOMENTI: STRINGHE DI CARATTERI.
Fondamenti di Informatica Corsi di Laurea in Ingegneria Gestionale Canale AL ESERCITAZIONE 6 ARGOMENTI: LAVORARE CON CLASSI METODI DELLISTANZA, COSTRUTTORI.
1 Lucidi delle esercitazioni di Sistemi di Elaborazione in Rete Università degli Studi della Calabria Corso di Laurea in Ingegneria Informatica A.A. 2003/2004.
void binario(int n); …………………
24 aprile 2002 Avvisi: Risultati 1 o Esonero: (entro) lunedi 27 disponibili nella pag. WEB, ma anche esposti nella bacheca fuori dal corridoio 2 o dente,
Ese 2 (del 31 Marzo 2004). Mostrare l'evoluzione dello stato (ambiente di classi, heap, pila, System.out) durante la valutazione delle seguenti dichiarazioni.
Multiset. Progettare (specifica con identificazione delle eventuali astrazioni necessarie, incluse eccezioni, e implementazione) del tipo di dato Multiset,
Soluzioni 1.Struttura base soluzione 2.Lettura dei tasti 3.Identificazione dei tasti 4.Accensione dei LED 5.Rotazione dei LED 6.Rotazione dei tasti fino.
Test con JUnit. zJUnit è un ambiente di test per programmi Java ySviluppato da Kent Beck É possibile usare JUnit allinterno di Eclipse per eseguire i.
Architettura software La scelta architetturale: MVA (Model – View – Adapter/Control) The view is completely decoupled from the model such that view and.
1 Simulated multiple inheritance Sandro Pedrazzini Approfondimento Simulated multiple inheritance in Java.
Conversione da base 10 a base X (Utilizzo della pila)
Le eccezioni F. Bombi 01/11/ Errori e situazioni impreviste situazioni eccezionali In un programma situazioni eccezionali possono.
Appunti di Java (J2SDK 1.4.2, JDK 1.6.0) prof. Antonella Schiavon settembre 2009.
Collection & Generics in Java
Fondamenti di informatica T-A Esercitazione 7 : Collezioni AA 2012/2013 Tutor : Domenico Di Carlo.
Stack Già visto l’altra volta senza gestione eccezioni, le prime tre slide servono solo come ripasso, dalla quarta argomento nuovo class Stack { int data[];
JDBC Java DataBase Connectivity SISTEMI ITIS B. CASTELLI Anno Scolastico
Nuove funzionalitA’ e caratteristiche del linguaggio
Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies.
Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies.
Capitolo 12 Thread Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
Laboratorio di Servizi Web - XML - Ardissono 1 Rappresentazione ad oggetti di documenti XML Parser fanno analisi sintattica di documento XML ma, a meno.
Java: concetti e costrutti base
UML Diagramma statico di una classe
Transcript della presentazione:

Unified Modeling Language class C {…} class B extends C {…} Esiste una notazione grafica per mostrare le relazioni di ereditarietà. Object StringC B Tutte le classi ereditano da Object!

UML – Class Diagram rappresenta le classi e gli oggetti che compongono il sistema, ed i relativi attributi ed operazioni specifica, mediante le associazioni, i vincoli che legano tra loro le classi può essere definito in fasi diverse (analisi, disegno di dettaglio)

UML: Ereditarietà – is class A { int s; public void setS(int) {…}; public int getS() {…}; } class B extends A { int w; public void setW(int) {…}; public int getW() {…}; }

UML: Aggregazione class A { int s; public void setS(int){…}; public int getS() {…}; } class B {A ob; public void useA() {…}; }

5 Aggregation - Composition Use aggregation (has-a) when the lifecycle of the partecipating elements is different (one can exist without the other). Use composition (part-of) when the container cannot be conceived without the contained. RoomPersonTableLeg CarWheel ?

UML – Class Diagram Disegno ripreso da: Adriano Comai

Esercizio a) Scrivere un metodo move(int dx, int dy) in Point. Point NamedPoint Point3D b) Estendere Point a Point3d aggiungendo una coordinata z, e fornendo un metodo move(int dx, int dy int dz) in Point3D.

Problemi con lereditarietà ? Point NamedPoint Point3D NamedPoint3D

Lettura di stringhe con GUI import javax.swing.JOptionPane; public A() {... String input = JOptionPane.showInputDialog( "How are you?"); System.out.println(input); System.exit(1); } Essenziale! Altrimenti la thread che gestisce la GUI rimane viva, e il processo non termina

Fondamenti di Java Polimorfismo

Liskov substitution principle Se S è un sottotipo of T, allora oggetti di tipo T in un programma possono essere sostitituiti da oggetti di tipo S senza alterare alcuna proprietà desiderabile del programma. Point p=new Point(); p.move(3,4); Point p=new NamedPoint(); p.move(3,4); Ovunque ce un Point posso mettere un NamedPoint Point NamedPoint

Polimorphysm Class X() { public static void main(String a[]){ Pila s; int type; do { try { type =Integer.parseInt( JOptionPane.showInputDialog( "Pila (1) o Coda (2)?")); } catch (Exception e) {type=0;} } while (type 2); switch (type) { case 1: s=new Coda(); break; case 2: s=new Pila(); break; } s.insert(3);s.insert(4); System.out.println(s.estrai()); } Una funzione può comportarsi in maniera diversa a seconda - del tipo che le viene passato - del tipo di dato su cui è chiamata

Concetti fondamentali Pila s=new Coda(); s.insert(2); s.insert(2); s.estrai() Quando si chiamano i metodi su s, il sistema fa riferimento alla dichiarazione di tipo (Pila) o allistanziazione (Coda)? STATIC BINDING -> Pila DYNAMIC BINDING -> Coda

Interfacce

Un interface è una collezione di firme di metodi (senza implementazione). Una interfaccia può dichiarare costanti.

Interfacce C2 C1I1I2

Esempio di interface package strutture; public interface Stack{ public int estrai(); public void insert(int z); } package strutture; public class Pila implements Stack{ … } package strutture; public class Coda extends Pila{ … }

Interfacce Le interfacce possono essere usate come tipi I1 x = new C2(); // I1 x = new I1(); NO!! C2 C1I1I2

public static void main(String args[]) { try { Stack s=null; int type=0; do { try { type =Integer.parseInt( JOptionPane.showInputDialog( "Pila (1) o Coda (2)?")); } catch (Exception e) {type=0;} } while (type 2); switch (type) { case 1: s=new Pila(); break; case 2: s=new Coda(); break; } … } Usare Pile e Code