Introduzione al corso e ripasso Java

Lab. 1
Introduzione al corso e ripasso Java
Registrazione e login
User: RETI
Psw: 2014 ?
Accedi a: CSD
172.16.19.24/registrati
Info utili
● Martedì 13:45 - 17:00 (Aula 309 - Settore
Didattico)
● Giovedì 13:45 - 17:00 (Aula 309 - Settore
Didattico)
● mail: [email protected]
● ricevimento: appuntamento
● sito: http://reti.di.unimi.it
Modalità esame laboratorio
Progetto in Java
● Svolto singolarmente.
● Tempo a disposizione: 30 gg.
● Consegna precedente alla data dell’appello
(7-15).
● Esito positivo valido per 10 anni (da febbraio
2015).
Riferimenti bibliografici
● Dario Maggiorini, “Introduzione alla
programmazione client-server”, Pearson,
2009
● Elliote Rusty Harold, “Java Networking
Programming”, O’Reilly, 2004
● Jan Graba, “Introduction to Network
Programming with Java”, Springer, 2013
Link utili
● Documentazione Java 6 o 7
○ http://docs.oracle.com/javase/6/docs/api/
● Tutorial Java
○ http://docs.oracle.com/javase/tutorial/
● Slide del corso
○ http://reti.di.unimi.it
○ Le slide servono SOLAMENTE come indice degli
argomenti trattati
Prerequisiti
● Conoscenza sintassi Java.
● Capacità di consultazione della
documentazione Java (minima conoscenza
inglese tecnico).
Strumenti di sviluppo
● In laboratorio:
○ Eclipse Indigo
○ Windows XP
● Consigliato (non obbligatorio):
○ Eclipse
○ putty (win), telnet (unix)
Warm-up: Eclipse
● IDE (integrated development environment)
● Supporto diversi linguaggi: Python, C, C++,
PHP, Ruby, Javascript, …
● Incentrato su plug-in (UML, Maven, Git, SVN)
● Code completion, refactoring, suggerimento
dei parametri secondo l’interfaccia dei metodi
Installazione
Ultima release:
Luna
Versioni:
● Classic
● Java Developers
(C)
● Java EE
Developers
http://www.eclipse.org/downloads/
Installazione
1. JRE o JDK già installate
2. Unzip della cartella contenente Eclipse
3. Settaggio del workspace
Platform e Workbench
Help
Workbench
JFace
SWT
Platform Runtime
Team
● Workbench: ambiente di
sviluppo desktop
● Integrazione di diversi tool
per la creazione e la
gestione delle risorse
legate ad un progetto
software
● Contiene una o più
prospettive
● Prospettiva contiene views
ed editors
Esempio
Esercizi guidati
1. Si crei un progetto in Eclipse denominato
‘MessageMi’
2. Aggiungere al progetto i package org.reti.
element, org.reti.factory e org.reti.social
3. Si scarichi il jar all’indirizzo http://reti.di.unimi.
it/json-simple-1.1.1.jar e si aggiunga la libreria
scaricata al progetto
Classe Messaggio
La classe Messaggio modella un messaggio inviato da un utente mittente a uno
o più utenti destinatari. Un messaggio è caratterizzato da un testo, da una data
di creazione e da una data di scadenza. Il messaggio, quindi, può essere
eliminato dall’insieme dei messaggi ricevuti, una volta scaduto. Ogni
messaggio è caratterizzato da un identificatore univoco nel sistema.
Si implementi la classe Messaggio, definendo i campi, i
costruttori, i metodi di get e set, il metodo toString() e il
metodo equals()
Classe Utente
L’utente del progetto che stiamo creando può inviare e ricevere messaggi. Ogni
utente, quindi avrà a disposizione una mail box per i messaggi ricevuti e inviati
rispettivamente. Un utente è caratterizzato da un identificatore univoco, un
nome e un cognome.
Si implementi la classe Utente, definendo i campi, il
costruttore vuoto, i metodi di get e set, il metodo
toString() e il metodo equals(). Aggiungere il metodo
invia(int idMsg) e ricevi(int idMsg).
Classe Mailbox
Una mailbox è un insieme di identificatori di messaggi. Deve permette di
aggiungere, rimuovere e cercare messaggi.
Si implementi la classe Mailbox definendo i campi, i
costruttori e i metodi aggiungi(int idMsg), rimuovi(int
idMsg) e toString().
Classe MailRepository
La classe MailRepository contiene tutti i messaggi che vengono scambiati tra
gli utenti del sistema.
Si implementi la classe MailRepository definendo i
campi, i costruttori, i metodi aggiungi(Messaggio msg) e
rimuoviScaduti(). L’ultimo metodo rimuove i messaggi
scaduti al momento della chiamata del metodo stesso.
Code GDrive
https://drive.google.com/folderview?
id=0B7BmdzD3ys1OVhEQ2tlZEx4cjg&usp=sharing