Internazionalizzazione: il supporto alle culture locali
|
|
- Gilda Beata Poli
- 5 anni fa
- Visualizzazioni
Transcript
1 Università degli Studi di Bologna Facoltà di Ingegneria Fondamenti di Informatica T2 Modulo 2 Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009 Internazionalizzazione: il supporto alle culture locali In molte situazioni, le stampe (e l'i/o in genere) devono adeguarsi alla cultura locale utilizzando i separatori per la parte decimale e le migliaia tipici di un certa cultura utilizzando il formato delle date e delle ore tipici di un certa cultura utilizzando i nomi dei giorni, dei mesi, i simboli di valuta tipici di un certa cultura e tanti altri ancora Spesso le stampe devono inoltre seguire un formato in termini di numero di cifre decimali, etc. 2
2 Internazionalizzazione: il supporto alle culture locali In Java è possibile ottenere tutto ciò attraverso : il concetto di cultura locale: il concetto di data: il concetto di calendario: una serie di formattatori, tra cui: java.text.dateformat java.text.numberformat java.util.locale java.util.date java.util.calendar (in partic. GregorianCalendar) 3 Formattazione di numeri (1/3) 1) procurarsi un oggetto NumberFormat opportunamente configurato rivolgendosi alla FABBRICA (FACTORY) 2) utilizzare il suo metodo format per formattare il numero tale metodo restituisce la stringa formattata import java.text.numberformat; import java.util.locale; public class TestNumberFormat { } public static void main(string args[]) { } double x = , y = 0.7, z = ;... SEGUE MAIN... 4
3 Formattazione di numeri (2/3) // il main L oggetto non viene creato tramite una new: se ne richiede la costruzione alla FABBRICA! PATTERN FACTORY NumberFormat formattatore = NumberFormat.getNumberInstance(); formattatore.setmaximumfractiondigits(2); System.out.println( formattatore.format(x) ); // 43,12 System.out.println( formattatore.format(y) ); // 0,7 System.out.println( formattatore.format(z) ); // 3.456,8 usa il punto per le migliaia e la virgola per la parte decimale: sono i separatori della cultura predefinita (qui, Italia) 5 Formattazione di numeri (3/3) // segue main Per ottenere separatori diversi occorre specificare l'uso di una diversa cultura locale (classe Locale) formattatore = NumberFormat.getNumberInstance(Locale.CANADA); System.out.println( formattatore.format(z) ); // 13, formattatore = NumberFormat.getNumberInstance( Locale.CANADA_FRENCH); System.out.println(formattatore.format(z) ); // Nota lo spazio al posto della virgola! 6
4 // segue main x = ; Formattazione di valute Per stampare valori di valuta nel formato di un certo Paese si usa un altro tipo di formattatore numerico, specifico per valute: anch'esso va richiesto alla FABBRICA. Usa la cultura predefinita (qui, Italia) NumberFormat formattatoreeur = NumberFormat.getCurrencyInstance(); System.out.println(formattatoreEUR.format(x)); // 1.243,57 Usa la cultura inglese NumberFormat formattatoregbp = = NumberFormat.getCurrencyInstance(Locale.UK); System.out.println(formattatoreGBP.format(x)); // 1, Nota il simbolo di valuta e i diversi separatori 7 Formattazione di Date (1/5) 1) procurarsi un oggetto DateFormat opportunamente configurato rivolgendosi alla FABBRICA (FACTORY) 2) utilizzare il suo metodo format per formattare la data tale metodo restituisce la stringa formattata import java.text.dateformat; import java.util.locale; import java.util.date; public class TestDateFormat { } public static void main(string args[]) { } Date d = new Date(); // data odierna... SEGUE MAIN... 8
5 Formattazione di Date (2/5) // il main La cultura locale predefinita sulla macchina in uso System.out.println("Cultura locale predefinita: " + Locale.getDefault()); Fabbrica (Factory) DateFormat formattershort = DateFormat.getDateInstance(DateFormat.SHORT); DateFormat formattermedium = // il default DateFormat.getDateInstance(DateFormat.MEDIUM); DateFormat formatterlong = DateFormat.getDateInstance(DateFormat.LONG); DateFormat formatterfull = DateFormat.getDateInstance(DateFormat.FULL); Quattro diversi formati: short, medium (default), long, full 9 Formattazione di Date (3/5) // il main System.out.println(formatterShort.format(d)); System.out.println(formatterMedium.format(d)); System.out.println(formatterLong.format(d)); System.out.println(formatterFull.format(d)); Output: Cultura locale predefinita: it_it 05/03/09 Short 5-mar marzo 2009 Long giovedì 5 marzo 2009 sigla cultura locale in uso Medium Full 10
6 Formattazione di Date (4/5) // il main Una diversa cultura locale System.out.println("Nuova cultura locale: " + Locale.US); DateFormat formattershort = DateFormat.getDateInstance(DateFormat.SHORT, Locale.US); DateFormat formattermedium = // il default DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.US); DateFormat formatterlong = DateFormat.getDateInstance(DateFormat.LONG, Locale.US); DateFormat formatterfull = DateFormat.getDateInstance(DateFormat.FULL, Locale.US); Soliti quattro formati, ma localizzati 11 Formattazione di Date (5/5) // il main System.out.println(formatterShort.format(d)); System.out.println(formatterMedium.format(d)); System.out.println(formatterLong.format(d)); System.out.println(formatterFull.format(d)); Output: Nuova cultura locale: en_us 3/5/09 Short Mar 5, 2009 March 5, 2009 Long Thursday, March 5, 2009 sigla cultura locale in uso Medium Full 12
7 Data e Ora La classe Date è la fotografia di un istante, quindi un punto sull asse dei tempi Per interpretare correttamente una data occorre utilizzare un calendario specifico Gregoriano Islamico Ebraico Prima del JDK 1.1 Date era tutto ciò che serviva per manipolare una data un solo tipo di calendario complicate le operazioni di internazionalizzazione 13 Data e Ora Per retrocompatibilità sono stati mantenuti metodi e costruttori originali ma sono stati dichiarati deprecati (obsoleti), quindi ne è sconsigliato l utilizzo Di fatto i costruttori non deprecati sono: Date(): crea un oggetto Date che rappresenta la data corrente Date(long millis): crea un oggetto Date che rappresenta la data ottenuta aggiungendo i millisecondi passati come parametro, all istante corrispondente a 00:00:00 del 1 Gennaio 1970 I metodi disponibili (quelli non deprecati) non permettono di recuperare giorno, mese e anno singolarmente occorre utilizzare un calendario 14
8 Calendario Gregoriano La classe GregorianCalendar consente di interpretare un oggetto Date nel calendario gregoriano Riconosce gli anni bisestili (isleapyear()) Un anno è bisestile se è divisibile per 4, con l'eccezione degli anni secolari (divisibili per 100) che sono bisestili solo se divisibili per 400 boolean isleapyear() { return ((anno % 4 == 0 && anno % 100!= 0) anno % 400 == 0); } 15 Calendario Gregoriano Prima del 15 Ottobre 1582 (data di istituzione), GregorianCalendar si comporta come calendario giuliano Un anno è bisestile se divisibile per 4 e basta! Attenzione: la data che precede il 15/10/1582 è il 4/10/1582 necessità di aggiustamenti dovuti alle imprecisioni del calendario giuliano 16
9 Riassumendo Date rappresenta un istante di tempo GregorianCalendar è l interprete della data ne fornisce una chiave di lettura Per usare usare un GregorianCalendar occorre caricarlo con una data evitiamo di usare GregorianCalendar per portare in giro delle date NON è l oggetto giusto! 17 Date & Calendar Costruire una data/ora GregorianCalendar cal = new GregorianCalendar(); cal.set(gregoriancalendar.day_of_month, 10); cal.set(gregoriancalendar.month, GregorianCalendar.OCTOBER); cal.set(gregoriancalendar.year, 2010); cal.set(gregoriancalendar.hour_of_day, 17); cal.set(gregoriancalendar.minute, 41); cal.set(gregoriancalendar.second, 23); Ottenere un oggetto Data Date mydate = cal.gettime(); Differenza fra HOUR_OF_DAY e HOUR? continua 18
10 Date & Calendar Ottenere un formattatore per data/ora DateFormat dateformatter = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM); Formato ora Stampare con formato System.out.println(dateFormatter.format(myDate)); Formato data Metodi shortcut per costruzione di date: cal.set(2015, GregorianCalendar.NOVEMBER, 30, 10, 17, 25); anno mese giorno ore min. sec. esistono altri metodi shortcut con meno parametri 19 Date & Calendar Analisi di oggetti Date Sempre tramite calendario (GregorianCalendar) Solo dopo aver caricato il calendario con una data Con metodi get del tutto simili ai metodi set già visti GregorianCalendar cal = new GregorianCalendar(); cal.settime(new Date()); int month = cal.get(gregoriancalendar.month); switch (month) { } case GregorianCalendar.NOVEMBER: case GregorianCalendar.DECEMBER: break; Mese o qualsiasi altra caratteristica 20
11 Date & Calendar Per lavorare con le date è importante usare sempre le costanti definite in GregorianCalendar e mai fare supposizioni sul valore di queste Quanto vale GregorianCalendar.JANUARY? Non certo il valore che ci si aspetta: sarebbe troppo facile! 21 Esercizio: differenza fra date Siano dati due oggetti Date che rappresentano due data/ora Calcolare la differenza in termini di giorni, ore, minuti e secondi Suggerimenti: Trasformare tutto in millisecondi metodo Date.getTime() Effettuare la differenza Calcolare giorni, ore, minuti, secondi tramite divisioni e moduli successivi Come influisce il cambio di ora solare/legale e viceversa nel calcolo? 22
12 GregorianCalendar: Problemi?! I giorni, i mesi e tutti i valori costanti del GregorianCalendar sono costanti intere public static final int LA_MIA_COSTANTE = 7 Il problema è che il codice che segue si compila in totale tranquillità: GregorianCalendar cal = new GregorianCalendar(); //cal.set(gregoriancalendar.day_of_month, 10); cal.set(513, 10); Oppure //cal.set(gregoriancalendar.day_of_week, GregorianCalendar.Monday); cal.set(gregoriancalendar.day_of_week, 17); ma poi non funziona assolutamente generando errore a run time! 23 Problemi Sintesi Problemi che possono emergere dall utilizzo di costanti così fatte: Nessuna type safety (v. slide precedente) Nessuna possibilità di raggruppare in un namespace le costanti In GregorianCalendar la costante SUNDAY è allo stesso livello della costante JANUARY Eventualmente, il namespace avrebbe potuto essere incluso nel nome stesso: DAY_SUNDAY o MONTH_JANUARY Fragilità in generale, inserire una nuova costante o cambiare il valore delle costanti è un problema: le costanti vengono incorporate nel codice compile time occorre ricompilare e sperare che funzioni tutto (v. legge di Murphy)!!! 24
13 Domande?! C è un modo per rendere le costanti strongly typed? Certamente sì: basta costruire un opportuno ADT Allora perché non l hanno fatto i progettisti di Java? AH-HA! In assenza di supporto agli enumerativi a livello di linguaggio, le costanti intere sono indubbiamente più semplici di qualsiasi altra realizzazione GregorianCalendar esiste da una delle prime versioni di Java 25
Internazionalizzazione: il supporto alle culture locali. Internazionalizzazione: il supporto alle culture locali. Formattazione di numeri (1/3)
Università degli Studi di Bologna Facoltà di Ingegneria Fondamenti di Informatica T2 Modulo 2 Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009 Internazionalizzazione: il supporto alle
Programmazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Tecniche di Programmazione: Date versione 1.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
Realizzazione di Phone Plan
Università degli Studi di Bologna Facoltà di Ingegneria Fondamenti di Informatica T2 Modulo 2 Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009 Realizzazione di Phone Plan Fare riferimento
Data e Ora in Java. Calendar e GregorianCalendar Controllo dell'input di data e ora Comparazione di date e ore
Data e Ora in Java Calendar e GregorianCalendar Controllo dell'input di data e ora Comparazione di date e ore 1 Calendar In Java il tempo (data e ora) viene gestito tramite le classi java.util.calendar
Realizzazione di Phone Plan. Soluzione - SimpleTime. Realizzazione e testing! Soluzione - SimpleTime. Soluzione - SimpleTime
Università degli Studi di Bologna Facoltà di Ingegneria Fondamenti di Informatica T2 Modulo 2 Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009 Realizzazione di Phone Plan Fare riferimento
Programmazione I - corso B a.a prof. Viviana Bono
Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 2009-10 prof. Viviana Bono Blocco 12 Riepilogo e complementi sui tipi Ripasso del sistema di tipi
La classe Math. La classe Math
La classe Math Raffaella Brighi, a.a. 2007/08 Corso di Algoritmi e programmazione. A.A. 2007-08 CdL Operatore Informatico Giuridico. La classe Math La classe Math fornisce un vasto numero di funzioni matematiche.
Fondamenti di Informatica T2 Modulo 2. Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009. Enumerativi
Università degli Studi di Bologna Facoltà di Ingegneria Fondamenti di Informatica T2 Modulo 2 Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009 Enumerativi Finora abbiamo creato enumerativi
Laboratorio di Programmazione Lezione 2. Cristian Del Fabbro
Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]
Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Esercizi sui metodi. Carla Limongelli. Maggio Esercizi 1
Corso di Laurea Ingegneria Civile Fondamenti di Informatica Esercizi sui metodi Carla Limongelli Maggio 2010 Esercizi 1 Passaggio di parametri di tipo primitivo Indicare che cosa viene visualizzato sullo
Programmazione 1 A.A. 2015/2016
Cognome e Nome Matricola Programmazione 1 A.A. 2015/2016 Appello del 16 Dicembre 2015 Compito n 1 Prima parte Esercizio 1 (10 punti) Cosa stampa il seguente frammento di codice Java? int[] A = {3, 8, 91,
Lezione 5 Namespace e JavaDoc
Lezione 5 Namespace e JavaDoc Vittorio Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Organizzazione della lezione Il namespace di Java: i package
Le basi del linguaggio Java
Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una
Algebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche
Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono
Primi programmi in C
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica In breve Uso del compilatore gcc Struttura di un programma
Corso di Laurea Ingegneria Informatica
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Esercizi di ripasso Carla Limongelli Gennaio 2012 http://www.dia.uniroma3.it/~java/fondinf/ Prova Intermedia 1 Modalità della Prova Intermedia
IL LINGUAGGIO JAVA. Input, Tipi Elementari e Istruzione Condizionale. Primo esempio di un programma Java
Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Primo esempio di un programma Java Semplicissimo programma
IL LINGUAGGIO JAVA. Input, Tipi Elementari e Istruzione Condizionale. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica
Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Primo esempio di un programma Java Semplicissimo programma
Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo)
Esercizi di riepilogo (Fondamenti di Informatica 1 Walter Didimo) Selezione di prove di esame al calcolatore Esercizio 1 (esame del 13/01/2006) La classe Matrice definisce oggetti che rappresentano matrici
18 - Vettori. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
18 - Vettori Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it Corso di
Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011
Fondamenti di Informatica 1 Prof. B.Buttarazzi.. 2010/2011 Sommario Conversione di tipo:casting Tipo enumerativo lgebra Booleana Esercizi Conversione di tipo:casting Il casting o conversione di tipo avviene
Laboratorio di Programmazione 1 [Java]
Laboratorio di Programmazione 1 [Java] Prova di esame - 26 Gennaio 2011 Tempo massimo: 50 minuti Si implementino in Java le classi Tavolo e Pizzeria. La classe Tavolo ha i seguenti attributi: nome (una
5 - Istruzioni condizionali
5 - Istruzioni condizionali 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
IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale
Fondamenti di Informatica IL LINGUAGGIO JAVA Input, Tipi Elementari e Istruzione Condizionale Fondamenti di Informatica - D. Talia - UNICAL 1 Lettura di dati da input In Java la lettura di dati da input
Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona
Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona Sommario tipi di dati condizioni cicli cicli annidati per alcuni tipi di dati Java mette a disposizione una rappresentazione
Introduzione al linguaggio C Primi programmi
Introduzione al linguaggio C Primi programmi Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica
Riassunto. Introduzione alla. 4. Intro programmazione strutturata. Oggi. programmazione strutturata. Le strutture di controllo della.
ntroduzione alla Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@dimi.uniud.it Programmazione, lezione 4 Riassunto Esempi mattoni
Fondamenti di Informatica T2 Modulo 2 Lab 1. Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009. Esercizio 1
Università degli Studi di Bologna Facoltà di Ingegneria Fondamenti di Informatica T2 Modulo 2 Lab Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009 Esercizio Ancora frazioni Creare il
STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe
STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe String Una stringa Java rappresenta uno specifico valore e come
System.out.print("\tATTENZIONE: hi inserito un valore non valido!\n");
Creare un applicazione console che dato l indice della borsa di Milano nel giorno precedente, calcola la variazione percentuale rispetto al valore dell indice del giorno corrente. import java.io.*; public
Corso di Laurea Ingegneria Civile Elementi di Informatica. Esercizi. Carla Limongelli. Esercizi 1
Corso di Laurea Ingegneria Civile Elementi di Informatica Esercizi Carla Limongelli Esercizi 1 Quanti giorni in un mese? Scrivere un metodo che ricevuto in input un mese e un anno, restituisca il numero
Metodi statci. Dichiarazione e chiamata di metodi statci
Metodi statci Dichiarazione e chiamata di metodi statci Cos è un metodo Un metodo è un blocco di istruzioni che fornisce una funzionalità e viene identificato con un nome Può avere dei parametri ed un
Cast implicito. Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto. byte short int long float double
Il cast Cast implicito Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto Per esempio: byte short int long float double int x = 10; float f; f = x; Il valore di
Laboratorio di Programmazione 1 [Java]
Laboratorio di Programmazione 1 [Java] Prova di esame - 7 Settembre 2010 Tempo massimo: 50 minuti Si implementino in Java le classi Tavolo e Ristorante. La classe Tavolo ha i seguenti attributi: numero
Introduzione Programmazione Java
Introduzione Programmazione Java Paolo Tomeo paolo.tomeo@poliba.it Regole basilari Java è case sensitive quindi prestare attenzione alle maiuscole Il commento si inserisce con // all'inizio della linea
1. Esempi. 2. I mattoni di un programma Java: ! Parole riservate. ! Identificatori. ! Variabili. ! Letterali. ! Costanti. ! Operatori. !
ntroduzione alla Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 4 1. Esempi Riassunto 2. mattoni
Programmazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Conclusioni Parte a versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima
OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO
CENTRO STUDI ULISSE Via Buccino, n. 22 - C.a.p. 84018 - Scafati (SA) Tel. Fax. 081.19970299-339.2365416-349.4152010 E-mail: info@centrostudiulisse.it - www.centrostudiulisse.it OCA JAVA 7 SE PROGRAMMER
Marco Faella Introduzione al corso
Marco Faella Introduzione al corso 1 Lezione n. Parole chiave: Java Corso di Laurea: Informatica Insegnamento: Linguaggi di Programmazione II Email Docente: faella.didattica@gmail.com A.A. 2009-2010 Linguaggi
Programmazione Orientata agli Oggetti in Linguaggio Java
Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: C# versione 2.1 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca
9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
9 - Array 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 Laurea
Università degli Studi di Roma La Sapienza, Facoltà di Ingegneria. Corso di INGEGNERIA DEL SOFTWARE (Ing. Informatica, Nuovo Ordinamento)
Università degli Studi di Roma La Sapienza, Facoltà di Ingegneria Corso di INGEGNERIA DEL SOFTWARE (Ing. Informatica, Nuovo Ordinamento) Prof. Marco Cadoli, Canale M-Z A.A. 2005-06 ESERCITAZIONE SUL TEST
COGNOME NOME MATRICOLA DATA
COGNOME NOME MATRICOLA DATA 1. Scrivere la classe Automobile che ha i seguenti attributi colore: una stringa indicante il colore dell automobile, velocità: un numero con la virgola indicante la velocità
TIPI PRIMITIVI: LIMITI
TIPI PRIMITIVI: LIMITI I tipi primitivi sono i "mattoni elementari" del linguaggio In varie situazioni può però essere necessario trattare i tipi primitivi come oggetti quando una funzione pretende come
Metodi statici. Dichiarazione e chiamata di metodi statici
Metodi statici Dichiarazione e chiamata di metodi statici Cos è un metodo Un metodo è un blocco di istruzioni che fornisce una funzionalità e viene identificato con un nome Può avere dei parametri ed un
Esempi di programmi. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa E01. A. Miola Settembre 2007
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E01 Esempi di programmi A. Miola Settembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Esempi di programmi - 1 1 Contenuti
Informatica Ereditarietà Java. Ereditarietà
Ereditarietà L'ereditarietà consente allo sviluppatore di riutilizzare il codice già scritto creando sottoclassi a partire da classi già definite. La sottoclasse eredita tutti gli attributi e tutti i metodi
Fondazione ITS A. Volta linguaggi Flavia Lollis 1
Costruire una lampadina che possa essere nello stato spenta, accesa o rotta, e cambia stando facendo click su un bottone; ogni lampadina può cambiare stato un numero prefissato di volte, e con il bottone
Laboratorio di Programmazione Ottobre. Simone Zaccaria
Laboratorio di Programmazione 27 31 Ottobre Simone Zaccaria Esercizio di Ripasso Scrivere un programma che: 1. dichiari 2 variabili a e b; 2. inizializzi le 2 variabili con valori numerici a scelta; 3.
COGNOME NOME MATRICOLA DATA
COGNOME NOME MATRICOLA DATA 1. Scrivere la classe Distributore che ha i seguenti attributi marca: una stringa indicante la marca del distributore, numeropezzi un intero indicante il numero totale dei pezzi
Corso di Reti di Calcolatori T
Università degli Studi di Bologna Scuola di Ingegneria Corso di Reti di Calcolatori T Esercitazione 7 (svolta) Java RMI e Riferimenti Remoti Un RMI Registry Remoto Luca Foschini Anno accademico 2018/2019
Programmazione con Java
Programmazione con Java Classi e istanze in Java Definizione di classe in Java A meno che non si usino classi già scritte da altri, prima di poter creare un qualsiasi oggetto devo creare la sua rappresentazione:
STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe
STRINGHE IN JAVA In Java, le stringhe non sono pezzi di memo-ria con dentro dei caratteri, come in C: sono oggetti appartenenti alla classe String Una stringa Java rappresenta uno specifico valore e come
Fondamenti di informatica T-1 (A K) Esercitazione 4: controllo del flusso
Fondamenti di informatica T-1 (A K) Esercitazione 4: controllo del flusso AA 2018/2019 Tutor: Lorenzo Rosa lorenzo.rosa@unibo.it 2 Esercitazione 4 Introduzione al calcolatore e Java Linguaggio Java, basi
L oggetto creato. Creazione di Oggetti. Rectangle: il concetto 10. Costruzione. Lo spazio di memoria del linguaggio Java. Rectangle: l oggetto
Usare e costruire oggetti Variabili e Oggetti Lo spazio di memoria di Java Le API di Java Gli oggetti sono entità di un programma che si possono manipolare invocando i metodi System.out oggetto della classe
Fondamenti di informatica 2 Claudio Biancalana. Esercitazione capitolo 19 Array
Fondamenti di informatica 2 Claudio Biancalana Esercitazione capitolo 19 Array Contatti claudio.biancalana@dia.uniroma3.it Contenuto esercitazione Ricerca sequenziale Progettazione e Divide et Impera 2
Linguaggi di Programmazione I Lezione 9
Linguaggi di Programmazione I Lezione 9 Prof. Marcello Sette mailto://marcello.sette@gmail.com http://sette.dnsalias.org 6 maggio 28 Variabili 3 Ambiti................................................................
Enumerativi. Un esempio: tipo "direzione" Enum: cosa c'è sotto. Stato e Metodi. C enum vs Java enum. Fondamenti di Informatica T2 Modulo 2
Università degli Studi di Bologna Scuola di Ingegneria e Architettura Enumerativi A partire da Java 1.5 esiste il tipo enumerativo (enum) ben più completo e potente rispetto agli enum del C Fondamenti
IL LINGUAGGIO JAVA. Introduzione alla sintassi di Java La sintassi formalizza le regole sintattiche per scrivere frasi ben formate
Fondamenti di Informatica IL LINGUAGGIO JAVA Sintassi, Semantica, Input, Tipi Elementari e Istruzione Condizionale 1 Introduzione alla sintassi di Java La sintassi formalizza le regole sintattiche per
Corso di Fondamenti di Informatica Il sistema dei tipi in C++
Corso di Fondamenti di Informatica Il sistema dei tipi in C++ Anno Accademico Francesco Tortorella Struttura di un programma C++ // Programma semplice in C++ #include int main() { cout
Lezione 4 Casting, stringhe e caratteri, operatori relazionali, espressioni e variabili booleane
Lezione 4 Casting, stringhe e caratteri, operatori relazionali, espressioni e variabili booleane Barbara Rita Barricelli Corso di Laboratorio di Programmazione -Turno B (Cognomi M-Z) CdL in Informatica
Le basi del linguaggio Java
Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 10 Le basi del linguaggio Java Aprile 2010 Le basi del linguaggio Java 1 Prerequisiti Nozioni generali sulla sintassi e semantica del
Oggi. La programmazione strutturata - II. Riassunto (1/2) Riassunto (2/2) Sequenza e selezione. if e while. Stefano Mizzaro 1
La programmazione strutturata - Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 5 Oggi Video: http://code.org/
A. Ferrari. informatica. Java basi del linguaggio. Alberto Ferrari Informatica
informatica Java basi del linguaggio Alberto Ferrari Informatica struttura di un programma Java /** * Classe EsempioProgramma * Un esempio di programmazione in Java * @author 4A Informatica */ public class
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
3) Descrivere l architettura di un elaboratore tramite astrazione a livelli
Di seguito sono elencati una serie di domande tipo esonero ; i quiz vogliono dare un sistema di autovalutazione e di confronto allo studente che deve prepararsi alla prova di metà corso. Il numero e l
Java Classi wrapper e classi di servizio. Classi di servizio
Java Classi wrapper e classi di servizio 1 Classi wrapper Concetti di base In varie situazioni, può essere comodo poter trattare i tipi primitivi come oggetti. Una classe wrapper (involucro) incapsula
Basi della programmazione in Java. Anteprima. Uso delle variabili. Il concetto di variabile Uso delle variabili. Input da tastiera I tipi Esercizi
Basi della programmazione in Java Nicola Drago nicola.drago@univr.it Dipartimento di Informatica Università di Verona Anteprima Il concetto di variabile Uso delle variabili Dichiarazione Assegnamento Visualizzazione
GRAFI. Angelo Di Iorio Università di Bologna
GRAFI Angelo Di Iorio Università di Bologna Esercizio 1 Implementare una classe Java per memorizzare e manipolare un grafo orientato di nodi di tipo T (usando il framework Generics) Applicazioni: rete
Programmazione in Java
Programmazione in Java Settima lezione Cristian Del Fabbro Lezione di oggi Esercizio sull'utilizzo delle classi viste nella quarta lezione (Vector, StringTokenizer, file su disco, ecc.) Alcune classi per
Fondamenti di Informatica T-1
Fondamenti di Informatica T-1 Metodi Statici Tutor: Allegra De Filippo allegra.defilippo@unibo.it a.a. 2016/2017 Fondamenti di Informatica T-1 Allegra De Filippo 1 / 9 METODI STATICI Un metodo statico
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa E03 Esempi di algoritmi e programmi A. Miola Settembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Esempi di algoritmi e
Programmazione in Java e gestione della grafica (I modulo) Lezione 2: Prime nozioni di Java
Programmazione in Java e gestione della grafica (I modulo) Lezione 2: Prime nozioni di Java Programmi Un programma è un insieme di istruzioni che il computer deve seguire Usiamo programmi in continuazione
public protected private private package
Java nascondere l implementazione G. Prencipe prencipe@di.unipi.it Introduzione Un fattore importante nella OOP è la separazione tra le cose che possono cambiare e quelle che non devono cambiare Questo
Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011
Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario La classe String Lettura da input di dati numerici (tipo int) Stampa di dati numerici Uno sguardo al codice Esercizi 21/03/2011 2
Linguaggi di Programmazione I Lezione 10
Linguaggi di Programmazione I Lezione 10 Prof. Marcello Sette mailto://marcello.sette@gmail.com http://sette.dnsalias.org 8 maggio 2008 Array 3 Dichiarazione...........................................................
Usare e costruire oggetti. Concetti Fondamentali. Interfaccia Pubblica di una. Application Program Interface
Concetti Fondamentali Interfaccia pubblica di una classe Le API di Java Lo spazio di memoria della macchina astratta Java Blocchi e sottoblocchi Variabili di frame e loro visibilità Importazioni di classi
Laboratorio di Matematica e Informatica 1
Laboratorio di Matematica e Informatica 1 Matteo Mondini Antonio E. Porreca matteo.mondini@gmail.com porreca@disco.unimib.it Dipartimento di Informatica, Sistemistica e Comunicazione Università degli Studi
Laboratorio di programmazione
Laboratorio di programmazione 25 ottobre 2017 Da questo laboratorio, lo scheletro dei vostri programmi deve essere import java.io.*; import java.util.*; public class NomeClasse { public static void main(
Le date in java. Date, Calendar, GregorianCalendar, SimpleDateFormat
Le date in java Date, Calendar, GregorianCalendar, SimpleDateFormat classi obsolete la classe Date è obsoleta.. è stata sostituita dalla classe astratta Calendar Possiamo utilizzare una classe derivata
Basi della programmazione in Java
Basi della programmazione in Java Nicola Drago drago@sci.univr.it Dipartimento di Informatica Università di Verona Anteprima Il concetto di variabile Uso delle variabili Dichiarazione Assegnamento Visualizzazione
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa E03 Esempi di algoritmi e programmi A. Miola Novembre 2011 1 Contenuti q Progettazione di algoritmi q Problemi di ingresso - uscita
Fondamenti di Informatica T2 Modulo 2. Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009. Phone Plan
Università degli Studi di Bologna Facoltà di Ingegneria Fondamenti di Informatica T2 Modulo 2 Corso di Laurea in Ingegneria Informatica Anno accademico 2008/2009 Phone Plan Si desidera modellare il funzionamento
Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali:
1 Tipi di dati 1 Tipi di dati Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali: Tutto è un oggetto Tutto eredita implicitamente
I Metodi. Fondamenti di Informatica A-K
I Metodi Fondamenti di Informatica A-K Esercitazione 3 Introduzione al calcolatore e Java Linguaggio Java, basi e controllo del flusso I metodi: concetti di base Stringhe ed array Classi e oggetti, costruttori,
Costrutto switch. Come utilizzare il costrutto switch
Costrutto switch Come utilizzare il costrutto switch Costrutto switch (1/4) Il costrutto if-else permette di selezionare le istruzioni da eseguire tra due alternative, a seconda del valore di una condizione
Laboratorio di Programmazione 1. Docente: dr. Damiano Macedonio Lezione 5 31/10/2013
Laboratorio di Programmazione 1 1 Docente: dr. Damiano Macedonio Lezione 5 31/10/2013 Original work Copyright Sara Migliorini, University of Verona Modifications Copyright Damiano Macedonio, University
import java.io.*; double massa = 0.0; double velocità = 0.0; double coefficienteattrito = 0.0; int numeroveicoli = 0;
import java.io.*; public class Veicolo { private String nomeveicolo = ""; private final double g = 9.8; private double massa; private double velocità; private double coefficienteattrito; public static
Oggetti e classi. Cos è un oggetto
Oggetti e classi Cos è un oggetto Basta guardarsi intorno per scoprire che il mondo reale è costituito da oggetti: libri, biciclette, giocattoli, ma anche ragazzi, bambini, fiori, gatti, cani, fiumi, montagne,
Pag. 1 di 67. class Telefono implements Serializable { private String telefono = new String(""); private String descrizionetelefono = new String("");
import java.io.*; import java.text.dateformat; import java.util.arraylist; import java.util.calendar; import java.util.date; import java.util.locale; import java.util.timezone; /** * Programma per la gestione
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