programmi java - maurizio mancinijava è un linguaggio ad oggetti l'unità minima di...

117
queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html Programmi Java § Java è un linguaggio ad oggetti § l'unità minima di programmazione è la classe § un programma Java utilizza una o più classi § per ora, consideriamo programmi formati da una sola classe § un solo file sorgente § il nome del file coincide con il nome della classe § l'estensione del file è “.java”

Upload: others

Post on 08-Mar-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

ProgrammiJava

§  Java è un linguaggio ad oggetti §  l'unità minima di programmazione è la classe §  un programma Java utilizza una o più classi

§  per ora, consideriamo programmi formati da una sola classe §  un solo file sorgente §  il nome del file coincide con il nome della classe §  l'estensione del file è “.java”

Page 2: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

CodiceSorgente

§  i programmi Java sono scritti all'interno di "classi" §  ogni classe è definita in un file di testo con

estensione .java §  il nome del file deve coincidere con il nome della

classe

Page 3: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Unesempio

public class HelloWorld { // Il programma più semplice

public static void main(String[] args) { // Stampa un messaggio sul video

System.out.println(“Hello, world!”); }

}

HelloWorld.java

Page 4: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Compilazione

J

.java Codice

sorgente

1001 0110 110..

.class ByteCode

Scrittura Compilazione

Page 5: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Ilcompilatore

§  traduzione del sorgente in bytecode §  comando:

javac HelloWorld.java §  in Eclipse la compilazione è automatica e

nascosta all'utente

J 1001 0110 110..

Compilatore

Page 6: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Ambien:disviluppo

§  il codice sorgente Java è un testo semplice §  un editor di testo qualsiasi è sufficiente (Notepad)

§  si possono usare ambienti integrati per lo sviluppo (IDE) §  offrono strumenti per la scrittura, la compilazione,

l’esecuzione e la ricerca degli errori

Page 7: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Esempi

§  Eclipse §  http://www.eclipse.org

§  JCreator §  http://www.jcreator.com

§  BlueJ §  http://www.bluej.org

Page 8: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Stru=uradiunaclasse

§  una classe ha: §  un nome (che coincide col nome del file .java) §  un insieme di attributi (volendo vuoto) §  un insieme di metodi (volendo vuoto)

Page 9: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Schemadiunaclasse

NomeClasse

tipo1 nomeAttributo1 .... tipoN nomeAttributoN

metodo1 .... metodoM

Page 10: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Unaclassevuota

§  l'esempio più semplice di classe:

ClasseVuota

(insieme vuoto di attributi e metodi)

public class ClasseVuota{ }

Page 11: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Primeclassieilmetodomain

§  a scopo didattico è utile inizialmente considerare delle classi contenenti: §  zero attributi §  un solo metodo: il metodo "statico" main

§  dopo i primi programmi verranno considerate classi con insiemi non vuoti di attributi e metodi diversi dal metodo main

Page 12: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Primeclassieilmetodomain

NomeClasse

(insieme vuoto di attributi)

metodo main

Page 13: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Ilmetodomain

§  il metodo main: §  è una "funzione", un pezzo di codice Java §  è statico, cioè non dipende dall'oggetto all'interno del

quale si trova (vedremo i metodi statici più avanti) §  è pubblico (vedremo cosa significa più avanti) §  non ritorna nulla (void) §  riceve in input un array di stringhe §  viene richiamato automaticamente nel momento in cui

si avvia il programma Java §  sintassi:

§  public static void main(String [] args){}

Page 14: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Esercizio1

§  definire una classe con il solo metodo main che scrive sulla console di output la stringa "Hello, world!"

Page 15: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Esercizio1– passo1

§  per prima cosa disegno lo schema della classe:

HelloWorld

main

System.out.println("Hello, world!");

Page 16: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Esercizio1– passo2

§  poi inizio a tradurre lo schema in un programma Java §  la cornice più esterna diventa l'istruzione class:

HelloWorld

main

System.out.println("Hello, world!");

public class HelloWorld { }

Page 17: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

§  poi considero il metodo main e il suo contenuto:

Esercizio1– passo3

HelloWorld

main

System.out.println("Hello, world!");

public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, world!"); }

}

Page 18: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Dichiarazionedivariabile

§  precede obbligatoriamente l’utilizzo di una variabile

§  sintassi alternative: §  <tipo> <nome>;§  <tipo> <nome> = <valoreIniziale>;

§  esempi §  char c; §  int i = 10; §  long l1, l2;

Opzionale

Page 19: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Tipi

§  variabili (e parametri dei metodi, che vedremo più avanti) sono caratterizzati da un tipo che ne precisa/limita l’uso

§  le variabili possono contenere solo valori conformi al proprio tipo

primitivi o base

aggregati

byte omogenei eterogenei int

array classi

boolean char long

double short float

Page 20: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Tipibase

§  numerici interi §  byte, short, int, long

§  esempio: int a; //variabile chiamata "a" di tipo intero

§  numerici reali §  float, double

§  esempio: float b; variabile "b" di tipo reale

§  non numerici §  boolean, char

§  esempio: char c; variabile "c" di tipo singolo carattere

Page 21: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Tipinumericiinteri

§  valori ammissibili §  byte {-128 ... 127} §  short {-32768 ... 32767} §  int {-2147483648 ... 2147483647} §  long {-9.22 E18 ... 9.22E18}

Page 22: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Tipinumericiinteri

§  operazioni ammissibili §  aritmetiche

+, -, *, /, %, ++, --, >> §  logiche

^, &, |, ~, <<, >>> §  confronto

==, !=, >, >=, <, <=

Page 23: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Tipinumericireali

§  valori ammissibili: §  float {±3.403E38}

6 cifre significative §  double {±1.798E308}

15 cifre significative §  operazioni ammissibili:

§  aritmetiche (+, -, *, /) §  confronto (==, !=,

>, >=, <, <=)

Page 24: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Usarelevariabili

§  si può dichiarare una variabile ovunque nel corpo di un metodo §  la "visibilità" è limitata al blocco di istruzioni in cui è

dichiarata §  le variabili devono essere sempre inizializzate!

§  int a; §  int b = a;

la variabile "a" non è stata inizializzata, e il suo valore è casuale, ma attenzione: Eclipse non segnala alcun errore!

Page 25: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Usarelevariabili

§  ad una variabile può essere assegnato: §  un valore esplicito §  il risultato del calcolo di una formula

§  esempi §  int i = 1, j = 5; //valori semplici §  i = (5*j) % 10; //formula §  long l = 10L; //valore semplice §  char c1 = 'a', c2 = ‘\u0062’; //valori semplici §  boolean b = false; //valore semplice

Page 26: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Outputdida:suconsole

§  è il tipo più semplice di output §  permette di visualizzare testi e numeri nella

finestra in cui è stato avviato il programma Java §  formato:

§  System.out.println( ); §  System.out.print( );

§  tra le parentesi scriviamo il testo e/o le variabili da visualizzare

§  esempio: §  System.out.println("il valore di A è: "+A);

Page 27: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Outputdida:suconsole

§  il "+" ci permette di concatenare più di un testo o variabile: §  int A=10; int B=3; §  System.out.println("Il prodotto di A per B è "+(A*B)+"!");

§  nell'esempio viene prima calcolato A*B e poi il testo iniziale ("Il prodotto...") viene concatenato al risultato di A*B e al testo finale ("!") prima di essere visualizzato sulla console di output

Page 28: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Esercizio2–:pinumerici

§  scrivere un programma che: §  date due variabili intere "a" e "b" calcoli e visualizzi la

loro somma, prodotto, differenza, rapporto §  date due variabili di tipo float "c" e "d" calcoli e

visualizzi la loro somma, prodotto, differenza, rapporto §  data la variabile di tipo byte "e", assegnare alla

variabile il valore 1000 e verificare, che Eclipse segnala un errore in corrispondenza dell'assegnazione

§  che modifica occorre fare al programma per permettere di memorizzare nella variabile "e" il valore 1000?

Page 29: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

if-then-else

§  sintassi: §  if (<condizione>) {

<istruzioni da eseguire se la condizione è vera> } else { <istruzioni da eseguire se la condizione è falsa> }

§  le parentesi graffe si possono omettere nel caso racchiudano una singola istruzione

§  l'else e le relative parentesi si possono omettere (nel caso si tratta quindi di un if-then)

Page 30: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

if-then-else

§  permette di verificare se una condizione è vera §  esempio:

§  if (A>0) //la parola "then" è sottintesa! System.out.println("A è maggiore di 0"); else //l'else invece non è sottinteso System.out.println("A non è maggiore di 0");

§  se più di un'istruzione va eseguita nel then o nell'else si usano le parentesi graffe: §  if(A>0) {

System.out.println("A è maggiore di zero"); B=Math.sqrt(A);//B contiene la radice quadrata di A }

Page 31: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Esercizio3–:pinumerici

§  date due variabili di tipo intero X e Y §  se X>Y visualizzare "X è maggiore di Y" §  se Y>X visualizzare "Y è maggiore di X"

Page 32: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Esercizio4–:pinumerici

§  date tre variabili intere "a", "b" e "c": §  se a<0 stampare il risultato di b+c §  se a=0 stampare il risultato di b*c §  se a>0 stampare il risultato di b/c

§  nelle condizioni (ad esempio in quella dell'if) l'uguaglianza si scrive con il simbolo "=="

§  esempio: §  if(a==0) serve a controllare se il valore di a è uguale a

zero

Page 33: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Esercizio5

§  scrivere un programma Java che, dato un numero intero X, visualizza sulla console la parola "pari" se il numero è pari o "dispari" se non lo è

§  utilizzare l'operatore % che corrisponde all'operazione "resto della divisione per"

§  ad esempio: §  10%2=0 §  5%2=1

Page 34: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

while-do

§  sintassi: while (<condizione>){ <corpo del while> }

§  le parentesi graffe si possono omettere se racchiudono una singola istruzione

Page 35: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

while-do

§  permette di ripetere una sequenza di operazioni fintanto che una condizione è vera

§  esempio: §  int a=0; // a vale 0

while(a<10) // fintanto che a è minore di 10 {//la parola "do" è sottintesa! System.out.println(a+","); // visualizza a

a=a+1; // incrementa a di 1 }

§  come nel caso dell'if-then-else se la sequenza di istruzioni da ripetere è più lunga di 1 vanno usate e parentesi graffe per delimitarle

Page 36: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Esercizio6

§  scrivere un programma Java che data una variabile intera "a" di valore positivo calcoli e visualizzi la somma di tutti gli interi positivi minori o uguali ad "a"

§  esempio: §  a vale 9 §  il programma dovrà visualizzare 20 §  perché: 2+4+6+8=20 e 2<=9, 4<=9, 6<=9, 8<=9

§  modificare l'esercizio in modo da sommare solo gli interi positivi pari minori o uguali ad "a"

Page 37: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

do-while

§  sintassi: do { <corpo del do> } while (<condizione>);

§  le parentesi graffe si possono omettere se racchiudono una sola istruzione

Page 38: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

do-while

§  come il while-do, permette di ripetere una sequenza di operazioni fintanto che una condizione è vera ma, a differenza del while-do, questa sequenza viene eseguita almeno una volta

§  esempio: §  int a=0; // a vale 0

do{ System.out.println(a+","); // visualizza a

a=a+1; // incrementa a di 1 }while(a<=10);//ripeti il Do se a è <= 10

Page 39: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Esercizio7

§  scrivere un programma Java che data una variabile intera "a" di valore positivo maggiore di 2 calcoli "a!" (cioè "a fattoriale)

§  scrivere due versioni del programma: §  una che utilizza il while-do §  un'altra che utilizza il do-while

§  fattoriale: a!=a*(a-1)*(a-2)*......*2*1 §  esempio:

§  a=4 §  il programma deve visualizzare 24 §  perché: a!=4!=4*3*2*1=24

Page 40: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Tipinonnumerici:boolean

§  Valori §  {false, true}

§  Operazioni §  logiche (&&, ||, !) §  confronto (==, !=)

Page 41: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Esercizio8–:poboolean

§  date le variabili "a" e "b" intere e le variabili boolean: §  somma §  moltiplicazione §  sottrazione §  divisione

§  calcolare e visualizzare il risultato delle 4 operazioni base se e solo se le corrispondenti variabili booleane hanno valore "true"

Page 42: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Tipinonnumerici:char

§  Rappresentazione dei caratteri secondo lo standard Unicode §  Lettere di vari alfabeti

arabo, armeno, bengalese, cirillico, greco, latino, ... §  Simboli

diacritici, punteggiatura, matematici, tecnici, ... §  Operazioni

§  confronto (==, !=, >,>=, <, <=)

Page 43: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Esercizio9–:pochar

§  un certo contratto di lavoro può essere di tipo 'a' o 'b' §  se è di tipo 'a' lo stipendio mensile è di 1500€ §  se è di tipo 'b' lo stipendio mensile è di 2000€

§  assegnare ad una variabile char il tipo di contratto

§  a seconda del tipo di contratto assegnare ad una variabile intera l'ammontare mensile dello stipendio

§  visualizzare il reddito annuale complessivo

Page 44: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Commen:

§  Servono a documentare un programma (o una sua parte) §  Racchiusi da “/*” e “*/” §  “//” inizia un commento che termina a fine riga

§  Usati sempre troppo poco!

Page 45: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Esempio

public class max { public static void main(String[] args) { int x,y; /* x e y sono di tipo "int"*/ x=1; y=10; if(x>y) //questo è un if-then-else! System.out.println("X"); else System.out.println("Y"); }

}

max.java

Page 46: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Inputdatas:era

§  per leggere dei dati da tastiera in Java si usa l'oggetto Scanner

§  all'inizio del programma (prima della dichiarazione della classe) bisogna scrivere: import java.util.*;

§  esempio, lettura di una variabile intera: Scanner sc = new Scanner(System.in);System.out.println("Inserire il valore di N: ");int n = sc.nextInt();sc.close(); //l'oggetto di classe Scanner va chiuso quando non serve più

Page 47: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Inputdatas:era

§  permette di ricevere dei dati dall'utente per memorizzarli nelle variabili del programma

§  leggere un intero: §  int I = sc.nextInt();

§  leggere un double: §  double D = sc.nextDouble();

§  leggere un boolean: §  boolean B = sc.nextBoolean();

§  leggere un char: [è un caso particolare!] §  char C = sc.next().charAt(0);

Page 48: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Esercizio10

§  scrivere un programma java che legge da tastiera i valori di 4 varibaili: §  "i" di tipo intero, "d" di tipo double, "b" di tipo boolean e

"c" di tipo char §  il programma, dopo averli letti, deve visualizzare

sullo schermo i valori delle 4 variabili

Page 49: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Il:poString

§  in realtà non è un tipo base ma un aggregato costituito da una sequenza di char

§  tuttavia lo studiamo insieme ai tipi base §  si usa per trattare più di un carattere alla volta §  una stringa di testo (cioè una variabile di tipo

String) è una sequenza di caratteri (cioè una sequenza di char)

§  esempio: String s; //dichiarazione di una stringa

s="Hello world!"; //assegnazione del valore

System.out.println("valore di s: "+s); //visualizza s

Page 50: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Inserimentodistringhe

§  per inserire il valore di una stringa da tastiera: Scanner scanner = new Scanner(System.in);

String s; //dichiarazione di una stringa

s=scanner.next(); // <---inserimento da tastiera! System.out.println("valore di s: "+s); //visualizza s

Page 51: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Esercizio11

§  scrivere un programma Java che: §  chiede di inserire il Nome §  chiede di inserire il Cognome §  visualizza la frase "Ciao <Nome> <Cognome>!"

Page 52: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Confrontotrastringhe

§  l'uguaglianza (o differenza) tra stringhe non si controlla con == e !=

§  l'uguaglianza si controlla con: §  nome_stringa.equals("valore");§  controlla se la stringa nome_stringa vale "valore"

§  la differenza si controlla con: §  !nome_stringa.equals("valore");§  controlla se la stringa nome_stringa non vale "valore"

Page 53: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Esercizio12

§  come nell'esercizio 11 richiedere l'inserimento di nome e cognome

§  dopo aver inserito nome e cognome visualizzare: "ti chiami <nome> <cognome>, è corretto?"

§  se l'utente inserisce "sì" terminare il programma §  se l'utente inserisce qualsiasi cosa diversa da

"sì" ricominciare l'inserimento di nome e cognome da capo

Page 54: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Array

§  non è un tipo base, è un tipo aggregato contenente dati omogenei

§  un array, o vettore, è una sequenza indicizzata di elementi tutti dello stesso tipo

§  esempi: §  un array di 10 interi:

§  2,4,6,8,10,12,14,16,18,20 §  un array di 5 char:

§  'f','m','s','g','p' §  un array di 3 stringhe:

§  "casa","auto","albero"

Page 55: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Array(ove=ori)inJava

§  sintassi: <tipo> [] <nomeArray>; <nomeArray> = new <tipo>[<numeroElementi>];

§  esempio: §  int[] interi; //un array di interi§  String[] parole; //un array di stringhe di testo

§  un array va inizializzato usando l'operatore new, specificando quanti elementi contiene: §  interi=new int[10]; //l'array contiene 10 interi§  parole=new String[3]; //l'array contiene 3 stringhe di testo

Page 56: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Array(ove=ori)inJava

§  si usano le parentesi quadre per accedere ai singoli elementi dell'array, numerati da zero in poi: §  interi[0]=0; //il primo elemento dell'array vale zero §  parole[2]="hello"; //il terzo elemento dell'array

§  si può sapere quanti elementi contiene un array usando la funzione "length": §  interi.length; //restituisce la lunghezza dell'array: 10 §  parole.length; //restituisce la lunghezza dell'array: 3

Page 57: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Esercizio13

§  dichiarare e inizializzare un array di 10 interi §  utilizzando un ciclo while, chiedere in input da

tastiera uno alla volta i valori dei 10 interi §  dopo che tutti e 10 i valori sono stati inseriti

visualizzarli tutti di seguito, separati dalla virgola

Page 58: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Inizializzazionedire=a§  abbiamo visto che l'operatore new permette di

creare array di qualsiasi lunghezza: §  studenti=new String[75];§  esiste un altro modo per inizializzare un array

definendo direttamente i valori che contiene: <tipo> [] <nomeArray> = new <tipo> [] {e1, ..., eN};

§  esempio: int [] array = new int[] {100,200,300};

§  l'istruzione sopra dichiara un array e allo stesso tempo lo inizializza con tre valori; ciò equivale a: int [] array =new int[3]; array[0]=100;array[1]=200;array[2]=300;

Page 59: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Esercizio14

§  usando l'inizializzazione diretta dichiarare e inizializzare un array di 6 elementi interi contenente i valori 10, 22, 15, 43, 1, 18

§  leggere i valori dell'array con un ciclo while e visualizzarli

Page 60: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Esercizio15

§  dichiarare un array settimana di 7 elementi di tipo String contenente i seguenti valori nell'ordine indicato:

§  lunedì, martedì, mercoledì, giovedì, venerdì, sabato, domenica

§  visualizzare, grazie a un ciclo while, i giorni della settimana in ordine inverso, dalla domenica al lunedì

Page 61: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Scambiodivalore

§  problema: §  date due variabili dello stesso tipo V1 e V2 §  scambiare i loro valori

§  soluzione: §  creare una terza variabile "di appoggio" Vapp, e poi §  copiare V1 in Vapp (Vapp=V1;) §  copiare V2 in V1 (V1=V2;) §  copiare Vapp in V2 (V2=Vapp)

Page 62: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Esercizio16

§  scrivere un programma Java che: 1.  date due variabili dello stesso tipo 2.  richieda l'inserimento dei loro valori da tastiera 3.  visualizzi i loro valori 4.  effettui lo scambio tra i loro valori 5.  visualizzi i loro valori dopo lo scambio

Page 63: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Algoritmidiordinamento

§  semplice problema: §  dato un array di N elementi (siano numeri interi o con

la virgola, o stringhe) in ordine qualsiasi §  ordinare gli elementi in ordine crescente (o

decrescente) §  esistono numerose soluzioni:

§  selection (o simple) sort §  bubble sort §  quick sort §  ...

Page 64: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Selec:on(Simple)sort

§  il più semplice algoritmo di ordinamento §  idea:

§  cercare l'elemento più piccolo in tutto l'array §  scambiarlo con l'elemento in prima posizione §  partendo ora dal secondo elemento dell'array cercare

di nuovo l'elemento più piccolo (ignorando quindi quello in prima posizione)

§  scambiarlo con l'elemento in seconda posizione §  proseguire così fino all'esaurimento di tutto l'array

Page 65: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Esercizio17

§  scrivere un programma Java per: §  definire ed inizializzare un array A contenente

elementi di un qualsiasi tipo (usare la tecnica degli esercizi 14 e 15)

§  visualizzare il contenuto di A §  ordinare A usando l'algoritmo del Selection Sort §  visualizzare il contenuto di A

Page 66: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

MetodiinJava

§  un metodo è una funzione che permette di riutilizzare lo stesso codice in più punti di un programma senza doverlo riscrivere ogni volta da capo

§  in Java esistono due tipi di metodi: §  metodi statici §  metodi di classe (li vedremo più avanti in queste slide)

Page 67: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Metodista:ci

§  il main è un metodo statico §  un metodo statico esiste indipendentemente

dall'esistenza di oggetti della classe all'interno della quale è stato definito

§  un metodo statico consiste in una sequenza di istruzioni che svolgono un determinato compito: §  ha un nome §  può avere dei parametri §  può restituire un valore §  può contenere uno o più un commenti

§  è "simile" ad una funzione in C/C++

Page 68: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Metodista:ci§  sintassi:

§  dove: §  visibilità può essere: public, private, protected §  se la parola static è presente si tratta di un metodo statico §  il tipo può essere un qualunque tipo base o aggregato oppure il

tipo speciale void §  la lista dei parametri può essere vuota

// dichiarazione di un metodo:<visibilità> [static] <tipo> <nome> (<tipo1><par1>, ..., <tipoN> <parN>) {

// variabili locali...//istruzioni del metodo

}

Page 69: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Parametri

§  un metodo (statico o di classe) può avere dei parametri

§  servono a "passare" dei dati dall'esterno del metodo all'interno del metodo

§  per ogni parametro vanno specificati: §  nome §  tipo

§  all'interno del metodo il parametro viene gestito come una variabile locale

Page 70: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Parametri

§  esempio:

public class operazioni{ public static void add(int x, int y) { System.out.println("x+y="+(x+y)); } public static void sub(int x, int y) { System.out.println("x-y="+(x-y)); } public static void main(String[] args) { int n1=10,n2=15; add(n1,n2); sub(n1,n2); }

}

Page 71: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Variabililocali

§  i metodi (statici e di classe) possono utilizzare variabili: §  servono a memorizzare

risultati intermedi §  dichiarate nel corpo del metodo §  durata temporanea: quando termina l'esecuzione del

metodo, la variabile viene distrutta

Page 72: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Variabililocali

§  esempio:

§  la variabile locale "tara" viene definita e quindi può essere usata dentro al metodo "prezzo"

public class prodotto{ public static void prezzo(double g, int euro_g) { double tara=5; System.out.println("prezzo="+((g-tara)*euro_g)); }

}

Page 73: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Variabilidiritorno

§  un metodo (che sia statico o di classe) può restituire un valore (o più valori) di ritorno

§  il valore di ritorno di un metodo viene usato dal metodo chiamante

§  va specificato il tipo del valore restituito dal metodo

§  se il metodo non torna nessun valore va specificato il tipo void §  il main è un metodo che non ritorna nulla

Page 74: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

public class Test { //questo metodo calcola il //quadrato di una variabile static int quadrato(int a) { int c = a*a; return c; } public static void main(String[] args) {

int i = quadrato(12); System.out.println(i);

} }

Page 75: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Esercizio18

§  scrivere un metodo statico ipocalc che date le lunghezze dei cateti di un triangolo rettangolo calcoli la lunghezza dell'ipotenusa e la restituisca

§  chiamare il metodo statico ipocalc nel metodo main passando i valori dei cateti al metodo ipocalc e visualizzare la lunghezza dell'ipotenuta calcolata dal metodo

Page 76: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Esercizio19

§  nell'esercizio 17 (ordinamento di un vettore) definire un metodo statico ordinaVettore con due parametri: §  un vettore di interi §  un intero che indica la lunghezza del vettore

§  spostare le istruzioni dell'algoritmo di ordinamento all'interno del metodo

§  chiamare il metodo per ordinare il vettore

Page 77: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Esercizio20

§  definire due metodi con lo stesso nome: contaVocali §  il primo metodo contaVocali prende in input un vettore di

char e la lunghezza del vettore §  il secondo metodo contaVocali prende in input una

stringa di testo §  entrambi i metodi restituiscono il numero di vocali

contenute nel vettore di char (il primo metodo) o nella stringa di testo (il secondo metodo)

§  per la stringa sfruttare i due metodi seguenti: §  nomeStringa.length(); che ritorna la lunghezza della stringa

nomeStringa §  nomeStringa.charAt(N); che ritorna il carattere alla posizione N

all'interno della stringa nomeStringa

Page 78: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Convenzionisuinomi

§  le classi hanno nomi che iniziano con la lettera maiuscola

§  metodi, attributi e variabili hanno l’iniziale minuscola §  se un qualsiasi nome è composto da più parole

attaccate e senza spazi, l’iniziale di ogni parola successiva alla prima è maiuscola

§  int contatoreNumeroOccorrenze = 0; §  class CentraleTelefonica { }

Page 79: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Esercizio21–annobises:le

§  un anno è bisestile se è divisibile per 4 e inoltre: §  qualora sia divisibile per 100 deve essere anche

divisibile per 400 §  2004 è bisestile

§  perché è divisibile per 4 e non per 100 §  1900 non è bisestile

§  perché è divisibile per 4, è divisibile per 100 ma non per 400

§  2000 è bisestile §  perché è divisibile per 4, per 100 e per 400

Page 80: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Esercizio21–annobises:le

§  seguendo le convenzioni sui nomi di Java §  definire un metodo bisestile che

§  dato un anno A §  restituisce true se l'anno A è bisestile §  o false altrimenti

Page 81: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

ProgrammazioneadoggeV

§  paradigma di programmazione §  basato sulla nozione di oggetto:

§  stato §  un insieme di attributi che determinano in quale stato si trova

in un certo momento l'oggetto §  esempio: l'oggetto semaforo ha un attributo "colore" che può

valere "rosso", "arancione" o "verde"

§  comportamento §  un insieme di metodi che provocano la variazione degli

attributi (e quindi dello stato) dell'oggetto §  esempio: dopo che l'oggetto semaforo quando si trova nello

stato "rosso" per 1 minuto passa allo stato "verde"

Page 82: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Classi

§  una classe costituisce il “progetto” di un oggetto: §  nome della classe §  nomi e valori iniziali degli attributi §  nomi, e parametri metodi

§  una classe non è un tipo base ma un tipo aggregato contenente dati non omogenei

§  in java una classe si definisce con: §  <visibilità> class <nomeClasse> { ..... } §  dove la visibilità può essere private o pubblic §  e la descrizione della classe è scritta tra le parentesi

graffe

Page 83: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

ClassieoggeV

§  una classe è quindi un tipo §  un oggetto è una variabile di un tipo classe §  può essere utile ricordare il seguente parallelo

tra tipi base e classi:

tipo base variabile classe oggetto

Page 84: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

OggeV

§  definita una classe, è possibile costruire uno o più oggetti di quella classe §  gli oggetti vengono detti “istanze” della classe §  in Java per costruire un oggetto si usa l'operatore

new: §  new NomeClasse ( );

§  ogni nuovo oggetto “vive” all’interno della memoria del calcolatore §  qui viene memorizzato il suo stato §  oggetti differenti occupano spazi differenti nella

memoria

Page 85: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

TipibaseVs.classi

§  a livello intuitivo: §  una classe è un tipo "non-base" §  un oggetto è una variabile che ha come tipo una

classe (invece di un tipo base)

tipo base

classe

variabile

oggetto

Page 86: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

TipibaseVs.classi

§  esempio:

§  anche se un oggetto è comunque una variabile e che una classe è comunque un tipo (composto, non omogeneno)

TIPO VARIABILE int numero

CLASSE OGGETTO Automobile auto

Page 87: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Dichiarazionediunaclasse

§  sintassi: <visibilità> class <nome>{

<visAtt1> <tipoAtt1> <nomeAtt1>; ... <visAttN> <tipoAttN> <nomeAttN>; <dichiarazione metodo1> ... <dichiarazione metodoM>

}

§  dove: §  la visibilià può essere public, private o protected §  gli attributi e i metodi sono tutti opzionali §  le dichiarazioni dei metodi seguono la sintassi precedentemente

riportata (vedere slide sui metodi statici)

Page 88: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Dichiarazionediunogge=o

§  sintassi: <classe> <oggetto>; <oggetto> = new <classe>(<parametri>);

§  dove: §  la classe deve essere stata precedentemente

dichiarata §  i parametri sono opzionali, dipendono dalla definizione

del costruttore della classe (vedere slide relative)

Page 89: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Operatorenew

§  a differenza delle variabili di tipo base gli oggetti vanno esplicitamente creati prima di essere usati (o inizializzati)

§  tipo base: §  int a=10;§  definisce ed assegna un valore all'intero "a"

§  classe: §  className ABC;§  definisce una variabile di classe "className" §  prima di poter usare la variabile ABC dovremo creare un nuovo

oggetto di classe "className": §  ABC=new className();

Page 90: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

A=ribu:

§  sono delle variabili locali o interne all'oggetto §  hanno un tipo ciascuna (di base o classe) §  hanno una visibilità: public o private o protected

§  esempio: §  public class Automobile{ public String marca,modello; public int cilindrata; Passeggero[] pass; }

§  un oggetto di classe "Automobile" è descritto da una "marca" e un "modello" di tipo testuale, da una "cilindrata" di tipo numerico intero e da un array "pass" di oggetti di classe Passeggero

Page 91: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Schemadiunaclasse(a=ribu:)

§  nello schema di una classe gli attributi vengono elencati prima dei metodi:

NomeClasse

visibilità1 tipo1 nomeAttributo1; .... visibilitàN tipoN nomeAttributoN;

(metodi)

Page 92: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Usodeglia=ribu:

§  all'interno della classe §  vengono richiamati come se fossero variabili locali §  si possoo richiamare sia quelli pubblici che privati

§  all'esterno della una classe §  si possono richiamare solo gli attributi pubblici §  vengono richiamati facendo precedere il nome

dell'attributo dal nome dell'oggetto e dal'operatore "." (punto)

Page 93: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Esempio

public class Automobile{ public String marca, modello; public int cilindrata;

}

Automobile

String marca, modello; int cilindrata

Page 94: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Esempio§  posso definire un oggetto della classe

Automobile nel main di un'altra classe e accedere ai suoi attributi usando l'operatore "."

public class Concessionario{ public static void main (String [] args){ Automobile A; A=new Automobile(); A.marca="Opel"; A.modello="Corsa"; A.cilindrata="1200"; }

}

Page 95: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Metodi(diclasse)

§  abbiamo visto in precedenza cosa sono e come si usano i metodi statici

§  la sintassi è la stessa dei metodi statici ma nel caso dei metodi di una classe la parola static va omessa

§  un metodo di classe è una "funzione" applicabile solo agli oggetti della classe in cui viene dichiarato §  ha accesso a tutti gli attributi della classe (anche a

quelli privati!)

Page 96: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Esempio

public class Studente{ public int numeroEsami; //attributo public void superaEsame(){ //metodo numeroEsami=numeroEsami+1; }

}

Studente

public int numeroEsami;

superaEsame

numeroEsami=numeroEsami+1;

Page 97: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Metodi

§  un metodo (di classe), in generale, può operare liberamente sull’oggetto su cui viene invocato §  modificandone lo stato (cioè gli attributi) §  chiamando altri metodi §  effettuando calcoli §  restituendo risultati

Page 98: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Dichiarazionediunmetodo

§  sintassi: <visibilità> [static] <tipo> <nome>(<parametri>){ ... }

Page 99: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Eseguireunmetodo

§  a partire dal nome di un oggetto di una certa classe, è possibile eseguire i relativi metodi con la notazione: §  nomeOggetto.nomeMetodo(...);

§  nelle parentesi si indicano gli eventuali parametri §  il metodo è definito da un insieme di istruzioni

specificate nella classe §  il chiamante (chi richiama il metodo) attende il

completamento del metodo, poi prosegue la propria elaborazione

Page 100: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Parametri

§  un metodo (di classe o statico) può avere parametri §  il loro valore viene fornito dal chiamante

§  come le variabili, i parametri hanno un tipo §  nel caso di parametri di tipo primitivo

§  all’interno del parametro viene memorizzata una copia del valore indicato dal chiamante

§  eventuali modifiche compiute dal metodo sul valore non si ripercuotono sul chiamante

§  se il tipo non è primitivo (una classe ad esempio) §  il parametro contiene una copia del riferimento all’oggetto

passato come parametro §  le eventuali modifiche sullo stato dell’oggetto sono visibili al

chiamante

Page 101: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Schemadiunaclasse(metodi)Corso

private String Nome; private boolean Attivo;

cambiaStato

Attivo=NuovoStato;

boolean NuovoStato

la freccia provieniente dall'esterno indica la presenza di parametri di un metodo (e

ster

no d

ella

cla

sse)

Page 102: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Schemadiunaclasse(metodi)Corso

private String Nome; private boolean Attivo;

cambiaStato

Attivo=NuovoStato;

boolean NuovoStato

(est

erno

del

la c

lass

e)

public class Corso{ private String Nome; private boolean Attivo; public void cambiaStato(boolean NuovoStato){ Attivo=NuovoStato; }

}

Page 103: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Valoridiritorno

§  i metodi (di classe o statici) possono restituire un valore §  il tipo del valore ritornato viene dichiarato prima del nome del

metodo §  double calcolaPerimetro() { … }

§  il valore ritornato può essere assegnato ad una variabile §  occorre che la variabile sia compatibile con il tipo del valore

ritornato

§  alcuni metodi non ritornano nulla §  in questo caso dichiarano di ritornare il tipo predefinito void §  void setRaggio(double r) { … }

Page 104: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Schemadiunaclasse(metodi)Corso

private String Nome; private boolean Attivo;

verificaStato Attivo

la freccia diretta verso l'esterno indica la presenza di un valore di ritorno per il metodo, in questo caso è il valore dell'attributo indicato sopra la freccia

(est

erno

del

la c

lass

e)

Page 105: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Schemadiunaclasse(metodi)Corso

private String Nome; private boolean Attivo;

verificaStato Attivo

(est

erno

del

la c

lass

e)

public class Corso{ private String Nome; private boolean Attivo; public boolean verificaStato(){ return Attivo; }

}

Page 106: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Metodidi:poseteget

§  metodi di tipo set §  servono ad alterare lo stato dell’oggetto §  di solito hanno parametri e non ritornano nulla §  per convenzione hanno un nome tipo:

§  void setXyz(<parametri>); §  metodi di tipo get

§  permettono di conoscere lo stato di un oggetto §  di solito non hanno parametri e ritornano il valore letto §  per convenzione hanno un nome tipo:

§  <tipoRitornato> getXyz();

Page 107: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Costru=ore

§  metodo particolare che di solito (ma non necessariamente) inizializza gli attributi di una classe

§  sintassi particolare: §  ha lo stesso nome della classe §  non indica nessun tipo di ritorno, non restituisce valori

class Cerchio { double r; Cerchio() { r=1.0; } }

Page 108: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Costru=oreeparametri

§  il costruttore assegna valori di default agli attributi

§  se ha dei parametri può usarli per assegnare dei valori particolari agli attributi §  chi invoca il costruttore in questo caso deve fornire

i parametri richiesti §  una classe può avere molti costruttori

§  sono distinguibili attraverso il numero ed il tipo di parametri richiesti

Page 109: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Costru=oreeparametri

class Poligono { double lato; int numeroLati; Poligono(int n) { numeroLati=n; lato=1.0; } } Poligono p;

p= new Poligono(3);

Page 110: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

A=ribu:pubblici

§  se un attributo è pubblico: §  si può accedere al valore di quell'attributo (leggerlo,

modificarlo) da qualsiasi classe §  esempio:

§  public class Bicicletta{ public String nomeModello; ... } public class Veicolo{ public Bicicletta B1; Veicolo(){ B1.nomeModello="nessuno"; } }

file: Bicicletta.java

file: Veicolo.java

Page 111: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

A=ribu:priva:

§  se un attributo è privato: §  si può accedere al valore di quell'attributo (leggerlo,

modificarlo) solo nella classe di cui fa parte §  esempio:

§  public class Bicicletta{ private String nomeModello; public void setNomeModello(String nome){ nomeModello=nome; } } public class Veicolo{ public Bicicletta B1; Veicolo(){ B1.nomeModello="nessuno"; } }

file: Bicicletta.java

file: Veicolo.java

Page 112: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

A=ribu:priva:

§  se un attributo è privato: §  si può accedere al valore di quell'attributo (leggerlo,

modificarlo) solo nella classe di cui fa parte §  esempio:

§  public class Bicicletta{ private String nomeModello; public void setNomeModello(String nome){ nomeModello=nome; } } public class Veicolo{ public Bicicletta B1; Veicolo(){ B1.setNomeModello("nessuno"); } }

file: Bicicletta.java

file: Veicolo.java

Page 113: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Esercizio22

§  definire una classe Studente con i seguenti attributi pubblici: §  nome, cognome, matricola (testuali) §  anno di iscrizione e numero di esami superati (numerici)

§  definire: §  un costruttore che, dati nome, cognome e matricola dello studente,

assegni di default ogni nuovo studente al primo anno con zero esami superati

§  un metodo rinnovaIscrizione() che aumenta di 1 il numero di anno di iscrizione dello studente

§  un metodo esameSuperato() che aumenta di 1 il numero di esami superati dello studente

§  in un file separato definire il main ed istanziare uno o più oggetti di classe studente e testare il corretto funzionamento di costruttore e metodi

Page 114: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Esercizio23

§  nell'esercizio 22 rendere privati gli attributi nome, cognome e matricola

§  definire dei pubblici metodi per leggere il contenuto degli attributi privati: §  getNome() §  getCognome() §  getMatricola()

§  modificare di conseguenza il main in modo da usare i 3 metodi definiti sopra

Page 115: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

ArraydioggeV

§  come con i tipi primitivi anche con le classi si possono definire degli array: §  Automobile[] parcoAuto;§  la variabile parcoAuto è un array di oggetti di classe Automobile

§  l'inizializzazione si fa come per i tipi primitivi: §  parcoAuto=new Automobile[10];§  la variabile parcoAuto è un array di 10 oggetti di classe

Automobile

§  ma trattandosi di oggetti ogni singolo elemento dell'array va poi creato a parte: while (c<10){

parcoAuto[c]=new Automobile();c=c+1;

}

Page 116: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

si consideri la seguente interazione: Quanti professori? 2Inserimento professore numero 0:Nome? maurizioCongome? manciniEmail? [email protected]: dibrisAnzianità: 8

Inserimento professore numero 1:Nome? marioCongome? rossiEmail? [email protected]: dimeAnzianità: 2

Quanti studenti?

3Inserimento studente numero 0:Nome? luigiCongome? bianchiEmail? [email protected]: 123456

Esercizio24

Inserimento studente numero 1:Nome? giuseppeCongome? verdiEmail? [email protected]: 1111Inserimento studente numero 2:Nome? antonioCongome? gialliEmail? [email protected]: 9999999

***UniversitàProfessoriNome: maurizioCognome: manciniEmail: [email protected]: dibrisAnzianità: 8

Nome: marioCognome: rossiEmail: [email protected]: dimeAnzianità: 2

StudentiNome: luigiCognome: bianchiEmail: [email protected]: 123456Anno di iscrizione: 1Esami sostenuti: 0

Nome: giuseppeCognome: verdiEmail: [email protected]: 1111Anno di iscrizione: 1Esami sostenuti: 0

Nome: antonioCognome: gialliEmail: [email protected]: 9999999Anno di iscrizione: 1Esami sostenuti: 0

Page 117: Programmi Java - Maurizio ManciniJava è un linguaggio ad oggetti l'unità minima di programmazione è la classe un programma Java utilizza una o più classi per ora, consideriamo

queste slide sono un'elaborazione delle slide di M. Mirto: http://sara.unisalento.it/~mirto/beniculturali/page3/page3.html

Esercizio25

§  scrivere un programma Java che permetta di inserire professori e studenti di un'università e poi li visualizzi

§  ogni professore o studente: §  ha nome, cognome, indirizzo email

§  ogni studente: §  ha matricola, anno di iscrizione, esami sostenuti

§  ogni professore: §  appartiene ad un dipartimento, ha una certa anzianità

§  per le caratteristiche comuni (nome, cognome, email) definire un'unica classe "anagrafica" da usare sia per i professori che per gli studenti