Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
/I
publlc dau CI_Principale CluwPrlnclpale
publk das.s
I publlc ltalk vold mal n(S tril,lg[J '1'8') I publlc stalle vuld !TI.Iln(Strl ng[] IrgS)
I C
•• sseS«ond ....
la t a l ; I CllI$$fStcondlriaZ fSlj
alSK5«ondar1al a~ndarlal a l :
f;52;
Il •.. Il ",
- primo compila, con generazione del file ClDuePrincipale,closs,
C&.c;o:
ClasseSecoruluna l .class, ClasseSecondariD2.clan
(rispetto
- secondo caso al primo caso, nel metodolPlain() sono In\'e rtile le due istruzioni):
• CluneSecondaria2 .
non compila, In quanto non tTO\'S nessun fil e di nome
• Soluzione sicura:
- classe princi pale: contenuta in un file avente lo stesso nome della principale;
ellISSe
secondaria: della
- dlllO.'ile contenu ta o nel file classe p rincipale, o In un proprio file
annte nome della dasse secondaria stessa.
il G. Frosini Slide 6
CODIFICA UNICODE
• Caratteri unicode:
su
- codificati su 16 bit;
I primi 128 caratteri più 7 bit significativi, numeri 0- 127) coincidono
(al
caraU~ri
i
con ASCO, anche se le loro codifiche usano un numero diverso
bit
di
- I primi 256 caratteri (al più 8 bit significativi, numeri O - 2SS) coincidono
latin-l ,
con caratteri anche se le loro codifiche usano un numero diverso
i
di bit espresso
unicode
- un carattere può anche essere con una sequenza di
che usa solo caratteri ASCO:
cscape, cifra
\uaaaa a
con ASC II esadecimale
• lett~rali
Commenti, identificatori, carattere e letterali stringa:
unicode
- utilizzano caratteri (o sequenze di escape).
• Altri elementi di un programma:
- utilizzano caratteri ASCII.
• G. Frosini Slide 10 •
TIPI
• Tipo: insieme di valori e insieme di operazioni su quei valori
• Linguaggio Java:
~ostanti, tipo
variabili, espressioni hanno tutte un nolo a tempo di
- slrongly IJped:
compilanonl',
• Tipi primilivi:
- tlpo boolealli
- Ilpl numerid:
ttn''':
IIpl "ln1
_ Il,,, in' blt),chor
(int eri 8 bit)"hUN (inttri Ili bil), (illl.,ri 32 bili, lo", (Interi 64 (earalleri In
codil'ie. unicode, natunli su bi t);
Il 16
Ilpl " n oa tina" :
(ll H\KInen le);
/1001 bit: 24 IIUInlissa, 8 ",ponente), d/JuM, (M hll: mantlga , Il
- §j
• Tipi riferimento:
- tipi enumerazione (non fraU atl) •
- tipi array;
- tipi classe;
tlpllnterfacc:Ja. il il (che stringhe
i Slri"g
tipo
• Nota: Cra tipi classe, compreso rappresenta
costanti). G. Froslni Sfide 11
ESPRESSIONI •
• Espressione: assignalo
producc un valore che viene (come nuol'O contenuto) a una l'arlablle:
b,~:
h)l r , a.
r • (a+b)·c;
• Conversione di tipo:
di tipo
- valore un operando (esempio: renderlo deUo stesso dell'altro operando);
s'esso
- valore prodotlo un'espressione (esempio: renderlo dello di quello deUa
tipo
da c.-\.o
variahile~uil'ieneassegnato). ~Co ~~ ., ;o;..o.(.. ~~
,.- '..... .....
• Conversione automatica di tipo (wide"ing conversion):
- nell'ambito degli interi e dei noating, \'erso quelli che usano un maggior numero di bit per
rappr~ntazione,
la con nessuna perdita di infonnazione:
- da IDtero a noating (non viccl'ersa), con nessuna perdita sull'ordine di grandezza, ma con
una eventuale perdita di precisione.
Casting
• Conversione esplicita di tipo o nuovo tipo fra parentesi tonde):
(il
tipo
- da un tipo numerico a un altro quaiunque numerico:
Inl I: doublt d:
C~é: ; -(;"~
_
_
'
)<LiL-__ ____________-----'
;, =- •
G. Frosini Sfide 13
FORMA DI UNA CLASSE (3)
• Membro (variabile, costruttore, metodo):
comunque visibile dal costruttore e dai metodi della classe;
con modificatore accesso (o assenza modificatori accesso): visibile
public
di di di
anche alle altre classi;
con modificatore accesso visibile alle altre classi.
di D't"
pril'ate:
• Situazione tipica
variabili: modificatore private;
costruttore: modificatore publicj
metodi:
• se operazioni sugli oggetti c1as;>c, modlf1catore
rapp~ntano Pllblic;
• se costituiscono funzioni utilità, modificatore
di private.
• Overloading: •
Costruttore e metodi possono essere sovrapposti:
stesso nome, ma dh'crsafinna (argomenti diversi in numero clo_tipo eLo_OI:dine) (non
il
è influente tipo del risultato). G. Frosini Slide 6
5nll ".., . 1\
"Ntlo>
",I("
pY:~ll~e... \W.v-vbV<l
n
G .. otto
V.blic.. "'
J. re)
(uLe.'\;"O(.; ~
0re..l+.
Se DC;c;t\J1 c.\àO
ç"
v.;O..kc..o
p"bl'c
Q...~ ~.(.,l) wN~otJ i 1.J1l'~Th-
l''''" s€... tH
VALORE INIZIALE DELLE VARIABILI •
• Classe: tipo
le variabili assumono un ,:alore iniziale di default (O se di numerico,Jal5e se di
~rim ~);
null
tipol!,ooleano, se di un tipo
le variabili possono avere un valore iniziale determinato da un'espressione;
quando viene creato un oggetto classe, la copia delle variabili di quell'oggetto
.valore iniziale default o quello determinato dal calcolo delle
assume anzitutto il
di
espressioni inizializzazione, che può poi essere aggiornato dal costruttore:
class UnII
prinlte a., 5; private b ., 1;
int lnl
public Uno()
=
I b 2; I
publlc void s!ampaO ,
Console.scnvHnt~ro(a);
I Consolc.scriviIntcro(bl: I
1/ ••. b
alfa
publlc cLass ProvaU ~
Siampa()
I public static void main(String/"] args)
( Uno alfa" ncw Uno();
Il
IIlfa.stampaO: stampa 5 e 2 •
SIide7
G. Frosini
D:lDatilwolkspaccINetBeansProlcctslMiolsrcNalorelnizialeDeraulljava
l / ,
2 • VALORE I NIZIALE DELLE VARIABILI
3 '/
4
5 / '
6 • Valore di default:
• O (zero) se di tipo numeri co
7 • false se booleano
8
• • null se riferimento
,/
O
,
l clasa Uno{
I/Var. Membro Private:
3 1/ visibili dal costruttore e metodi della classe
4
• 1/ Non Visibili da altre classi
5
6 pr ivate i nt a _ 5;
7 private int b • l;
8
• / I
O Costruttore
Il
, Se visibil ità non specificata . public di default
l ~<L 4R<;o~"".,-i
.....->e... roR'HA.lA.·
publi c Uno(){
3 Il
b • 2; Sovrascrive il valore iniziale di b
4 Il
}
5 Ogni vol t a che viene invocato il costru ttore
6 1/ Me todo pubblico che nn ritorna risul tati (voidl
7
~8
• public void stampa() {
O
, Cons ole.scrlviStr(~a~");
l Console.scrivilntero(al;
Conaole.8c r i viStr ("b:"1;
3 Console.scrivilntero(bl;
4
5 IllF ine Uno
class
6
7 Il
8 CLASSE principale publica
9 publ ic class ValoreInizialeDefault {
O
1 Il Funzione ma in() pubblica s tat ica vuota
2 publi c stati c void main (String arge[l l {
3 Il
4 Definizione di varo classe
• or 2
l.l 2010.02.1 7 12:08:34 ..
D:/DalllworksoaceINeIBeansProlectsIMiofsrclVaiorelnizialeDefaull.lava
5
6 Uno alfa;
7
• Il Creazione oggetto classe
...-Se-~
9 Il stampa a _S, b _ 2
alfa - new Uno () ;
O
1 Il
2 Oppure contestualmente
Il
3 Uno alfa . new Uno;
4 Il
5 Richiamo il metodo stampa tI
6 Il specificando la varo classe che rifer isce l'ogget t o classe
Il
7 e applicando il metodo stampa() tramite la notazione a punto
8 a lfa.stampa() ; •
9 /I
O } Fine main ()
.~. (~~>e P", vc;..~
f
Il
1 } •
•
or
2.1 2 2010.02. 17 12:08:34
COSTRUTTORI
• Classe: può non avere alcun costruttore (esplicito): (costrullor~ d~/dUIl);
questo caso esiste un costruttore è
- ID Implicito
costruttore auone.
- Il Implicito IlQn ha argomenti e non compie alcuna
può avere un solo costrullore (anche senza argomenti);
può avere plil costruitori, che differiscono in elo tipo elo ordine degli
nU[J)ero
Ho .
(o~erloadi1tg). ~ ~
ronnall Ccc;fvV
argomenti
• Classe senza costruttore, o con un costruttore senza argomenti
formali:
- la creazione di un 'istanza avviene senza specificare argomenti attuali:
gli
= UnaCIa.~;
UnaClasse new
DC
• Classe con uno o più costruttori, tutti con argomenti formali:
• è
non lecito creare un'istanza senza specificare gli argomenti attuali:
=
AltraClasse ae new AltraCIassc(argomentiAltuall); G. Frosini Slide 8
METODI
• Metodo: membro di una classe che ha forma di funzione.
- Intestazione e corpo.
• Valore di ritorno di un metodo (che non sia un metodo costruttore):
~old;
il
- può non essere presente, e In questo caso metodo viene definilo
Pllbllc void lInMttodo(lnl n)
I ... I è
- può essere presente, e in questo caso costituito dall'espressione che compare in una
istruzione retUni presente nel metodo stesso:
Pllblie doublt IlltroMttodo{doubLt ;>;) UittoJ.:, ( )
I /I •• '
bit y;
dOli +
nlum ;>;·x y.y: \
retum:
• Istruzione \{.-tU
- provoca la terminHzione di un mctodo; Vv_ . .
l'
un metodo possono esservi più istruzioni return;
- in 1
- l'espressione può non essere presente, e in questo ca....o Il metodo non produce
rfsuUato;
• - può essere usata anche in un costruttore, purché senza CSI)cessione •
G. Frosini Slide 9 •
CLASSE Punto
• Esempio:
cllISS Punlo
( priVIIlt doublt x, SlalO
y; 1/
Il
publle Punlo (dooblc a, doublc b) «ISlrullor/:"
( x '" a;
y _ b;
I 11
publlc double dislanll O dlstJinza
mtIMO: calcolllia dllU'originr
I Math.sqrt(x·x y·y),
+
rflum
I Irasllllon~doobl e Il
publlc vold I) metodo: IrllSla le coordinale de{ punlo d ella I
qUllDlitll'
( J.-Il
+-
Y I;
• Gli dal costruttore;
oggetti classe vengono creati
è...fublic. •
gli
- poiché Il costruttore oggetti possono venir creati fuori della classe.
• Per oggetti classe creati fuori della classe:
gli I
- si possono utilizzare metodi e In quanto
<