Programmazione a Oggetti Metodologie di Programmazione 14 Maggio 2012

Documenti analoghi
Programmazione ad oggetti Modulo A Prova scritta 4 Settembre 2013

Programmazione a Oggetti Metodologie di Programmazione 8 Giugno 2012

Programmazione. Cognome... Nome... Matricola... Prova scritta del 20 febbraio 2012

Completa la seguente definizione di class MemAddress che realizza il tipo di dato indirizzo di memoria.

Fondamenti di informatica T-1 (A K) Esercitazione 8: classi e oggetti

Metodi statici. Dichiarazione e chiamata di metodi statici

Corso sul linguaggio Java

Esonero del corso di Programmazione a Oggetti

Programmazione ad oggetti Prova scritta 15 Gennaio 2013

Interfacce. Esempio: interfaccia I con una sola funzione g() public interface I {

Programmazione I - Preparazione A.A. 2010/2011

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

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori A.A. 2009/2010

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

Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a Secondo Compitino 17 Dicembre 2005

Array. Definizione e utilizzo di vettori

3. un metodo che restituisce l elenco delle matricole di tutti gli studenti del corso;

Programmazione. Cognome... Nome... Matricola... Compitino del 26 gennaio 2009

//riferimento a una sequenza di oggetti della classe Importo

Esempi in Java di program.ne O-O

Programmazione 1 A.A. 2015/2016

Corso di Reti di Calcolatori T

Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali

Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali. Esempio Animali

Metodi statci. Dichiarazione e chiamata di metodi statci

Gerarchie e polimorfismo: liste

Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro

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

Programmazione a Oggetti Modulo B

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

Corso di Progettazione del Software

Esercizio Sincronizzazione Thread

Istruzioni. Il codice Java delle domande non mostra gli import, che si assumono essere correttamente presenti.

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

Esempio: Interfacce. Gioco Interfacce

Fondamenti di Informatica T-1

Concetti Base Encapsulation ed Ereditarietà Programmare con l Ereditarietà. Java: Ereditarietà. Damiano Macedonio

public double getraggio() restituisce la lunghezza del raggio del cerchio che esegue il metodo.

OCA JAVA 8 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO

Programmazione a oggetti

Esempio: Interfacce. Gioco Interfacce

Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a Secondo Compitino 17 Dicembre 2005

Programmazione Java Struttura di una classe, Costruttore, Riferimento this

Esercitazione n 2. Obiettivi

Informatica Ereditarietà Java. Ereditarietà

COMPITO DI LABORATORIO DI PROGRAMMAZIONE Dicembre Alcune Soluzioni

Esercitazione Fondamenti di informatica 2

Fondamenti di Informatica T1 Interfaccia Comparable Collezioni

Programmazione Orientata agli Oggetti in Linguaggio Java

Sezione: Costruttori. Costruttori

Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali. Esempio Animali

tipi di dato astratti

Programmazione. preparazione allo scritto. Informatica / Comunicazione Digitale 19 gennaio 2016

Programmazione. Cognome... Nome... Matricola... Compitino del 17 gennaio 2007

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

Il linguaggio Java: aggiunte in Java 1.5

18 - Classi parzialmente definite: Classi Astratte e Interfacce

17 - Classi parzialmente definite: Classi Astratte e Interfacce

Preparazione allo Scritto di Programmazione

Informatica Interfacce Java

Laboratorio di Programmazione 1 [Java]

Corso di Laurea in Matematica Corso di Informatica Prova d Esame del 02/02/2010

Collezioni, mappe e iteratori (a cura del Prof. Marco Patella)

Programmazione Java Struttura di una classe, Costruttore, Riferimento this

Esercitazione n 2. Obiettivi

Programmazione orientata agli oggetti Classi astratte e interfacce

Prova d Esame Compito A

Prova d Esame Compito A

Laboratorio di Programmazione 1 [Java]

Classi astratte e progettazione OOP Esempio: l enciclopedia degli animali. Esempio Animali

Programmazione II Compitino (Vers. B)

COGNOME NOME MATRICOLA DATA

Programmazione II Compitino (Vers. B)

Esercizi riassuntivi (Fondamenti di Informatica 2 Walter Didimo) Soluzioni

E21 Esercizi sulle collezioni in Java

Polimorfismo. Subtyping-polimorfismo

Le basi del linguaggio Java

Programmazione ad Oggetti Modulo A (Esame del 9/1/2015)

Introduzione a Java e all'ambiente di sviluppo

Linguaggi di programmazione II AA 2010/2011 Esercitazione 2

public double getlato() restituisce la lunghezza del lato del quadrato che esegue il metodo.

GRAFI. Angelo Di Iorio Università di Bologna

Fondamenti di informatica T-1 (A K) Esercitazione 4: controllo del flusso

I Metodi. Fondamenti di Informatica A-K

Università Ca Foscari DAIS. Programmazione ad Oggetti. Esame del modulo 1

Università Ca Foscari DAIS. Programmazione ad Oggetti. Esame del modulo 1

Fondamenti di Java. Soluzione esercizio hashcode

Programmazione I. 11 gennaio Considerate la seguente gerarchia di classi (rappresentata mediante un diagramma UML): +f(double x):

Corso di Laurea in Matematica Corso di Informatica Prova d Esame del 17/02/2011

La classe java.lang.object

Capitolo 5. Array e collezioni. c 2005 Pearson Education Italia Capitolo 5-1 / 61

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

Politecnico di Milano

Esercizi RMI. Laboratorio di Programmazione di Rete A 5/12/2007. Esercitazione di Laboratorio

Alberi Binari Alberi Binari

Studente (Cognome Nome): Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a Secondo Compitino 21 Dicembre 2006

Ereditarietà. Ereditarietà. Ereditarietà. Ereditarietà

Transcript:

Programmazione a Oggetti Metodologie di Programmazione 14 Maggio 2012 Nome: Matricola: Metodologia di Programmazione [ ] Programmazione a Oggetti [ ] Istruzioni Scrivete il vostro nome sul primo foglio. Indicare se la vostra prova è riferita all esame MP o PO Scrivete le soluzioni nello spazio riservato a ciascun esercizio. Gli esercizi 9 e 10 sono rivolti a coloro che non hanno svolto le esercitazioni, ovvero le hanno svolte ottenendo una valutazione insufficiente / insoddisfacente. Per chiunque scelga di svolgerli, il punteggio su questi esercizi cancella il punteggio ottenuto nelle esercitazioni. LASCIATE IN BIANCO: 1 2 3 4 5 6 7 8 9 10 TOT

1 Esercizio Correggere l errore nel seguente codice Java: class Base private int b; public Base(int b) this.b = b; [1,5pt] class Derived extends Base Completate la definizione della classe Derived e del metodo main() nella classe Test in modo che l esecuzione restituisca l output "AB". NB: non potete utilizzare comandi di stampa. [1,5pt] abstract class Base public Base() System.out.print("A"); class Derived extends Base int a = ; int m() System.out.print("B"); return 0; class Test public static void main(string[] args) 1

2 Esercizio Implementare il metodo equals per la classe Nil definita qui di seguito. class Nil [2pt] Implementare il metodo equals per la realizzazione della classe Nil definita qui di seguito. [2pt] class Nil private static Nil singleton = new Nil(); public Nil getsingleton() return singleton; 2

3 Esercizio Illustrate con un esempio, il concetto di polimorfismo in Java. (5 righe max) 3

4 Esercizio Un applicazione desktop permette a un utente segretario la stampa di un piano di studi relativo a uno studente. L implementazione di tale funzionalità è descritta qui di seguito mediante un diagramma UML ed il corrispondente schema di classi Java. class Studente public PianoDiStudio getpiano() public class PianoDiStudio public String getdescription() public class Segretario public void printpianostudio(studente s) PianoDiStudio pds = s.getpiano(); System.out.println("Piano di Studio per "+s.getname()); System.out.println( pds.getdescription() ); public class Controller public void onevent(event e) utente.printpianostudio(s); Modificare il codice in modo da implementare il pattern Information Expert. Disegnare il nuovo diagramma delle classi. [2pt] [2pt] 4

5 Esercizio Considerate la seguente classe: public class Giocatore public String getnome() return nome; private String nome; Completate il codice della classe TabelloneMonopoli descritta qui di seguito, utilizzando la struttura dati che ritenete più opportuna. public class TabelloneMonopoli // inizialmente le caselle sono tutte senza proprietario // le caselle sono indicate da un intero da 0 a 39. // il giocatore g diviene proprietario della casella public void compra(giocatore g, int casella) // il giocatore g vende la casella se la possiede // altrimenti non fa niente e ritorna false public boolean vendi(giocatore g, int casella) // ritorna il giocatore proprietario della casella // null se la casella non ha proprietario public Giocatore getproprietario (int casella) private. tabellone =.; 5

6 Esercizio Vogliamo definire un sistema di classi e interfacce che rappresentino le relazioni tra le componenti di un circuito elettronico descritte qui di seguito: una resistenza è una componente che regola la quantità di corrente da cui è attraversata; un condensatore è una componente che immagazzina carica; un transistor è un amplificatore di segnale elettrico; una scheda contiene una collezione di componenti. Dato il seguente diagramma UML che rappresenta una possibile soluzione del problema, scrivete il corrispondente codice Java che rappresenti le relazioni del diagramma. Figure 1: Diagramma delle classi 6

7 Esercizio Si implementi il seguente diagramma delle classi in modo che: l invocazione del metodo impostasuoneria imposti come suoneria la suoneria passata come parametro. l invocazione del metodo onkeypressed comporti l alternanza tra radio e allarme come impostazione della suoneria. l invocazione del metodo ontimer comporti l attivazione della suoneria (invocazione del metodo suona della suoneria impostata). la radio quando attivata stampi nello standard output "musica". l allarme quando attivato stampi nello standard output "bee bee". il metodo alterna di suoneria per ogni sua implementazione cambi l impostazione della sveglia passata come parametro, impostando l altra suoneria (se chiamato su allarme imposta radio, viceversa se chiamato su radio imposta allarme). alla creazione la sveglia sia impostata su allarme. Figure 2: Diagramma delle classi 7

8 Esercizio Data l interfaccia lista: interface Lista<T> boolean isempty(); T getfirst(); Lista<T> gettail(); Implementare l interfaccia Lista usando il pattern NullObject. 8

9 Esercizio Con riferimento all interfaccia Lista dell Esercizio 9, implementate il metodo public Iterator<T> iterator() in modo che restituisca un iteratore che visita tutti gli elementi della lista nell ordine naturale. 9

10 Esercizio Data la definizione alternativa di Lista: interface ListaM<T> T getfirst(); void addfirst(t t); T removefirst(); Mostrare perché non è possibile applicare il pattern NullObject. 10