of 448/448
C/C++/JAVA Refresh rapido

Riepilogo Java C/C++

  • View
    35

  • Download
    13

Embed Size (px)

DESCRIPTION

Short introduction to most popular programming languages

Text of Riepilogo Java C/C++

  • 1. C/C++/JAVA Refresh rapido

2. Cominciamo col C 3. Struttura di un programma C /* This isa comment */ // This is a one-line comment # include /* includes header files */ main() /* Must have a main function. First function{ printf ("Hello World!"); /* stdio functions */ } 4. Tipi

  • int - stores integers (-32767 to +32768)
  • unsigned int 0 to 65535
  • char holds 1 byte of data (-127 to 128)
  • unsigned char holds 1 byte (0 to +255)
  • long usually double int (signed)
  • unsigned long positive double int
  • float floating point variable
  • double twice of a floating point variable

5. printf

  • printf (%d,i);
  • Usual variable typeDisplay
    • %ccharsingle character
    • %d (%i)int signed integer
    • %e (%E)float or doubleexponential format
    • %ffloat or doublesigned decimal
    • %g (%G)float or doubleuse %f or %e as required
    • %oint unsigned octal value
    • %ppointeraddress stored in pointer
    • %sarray of charsequence of characters
    • %uint unsigned decimal
    • %x (%X)int unsigned hex value

6. Operatori

  • +addition
  • - subtraction
  • *multiplication
  • /division
  • %mod or remainder (e.g., 2%3 is 2), also called 'modulo'
  • >right-shift
  • &bitwise AND
  • |bitwise OR
  • ^bitwise exclusive-OR
  • && logical AND (returns 1 if both operands are non-zero; else 0)
  • ||logical OR (returns 1 if either operand is non-zero; else 0)
  • >greater than
  • = greater than or equal
  • ==equals
  • !=does not equal

7. Incremento e decremento

  • ++Increment operator
  • -- Decrement Operator
  • k++ or k-- (Post-increment/decrement)
  • k = 5;
  • x = k++; // sets x to 5, then increments k to 6
  • ++k or --k (Pre-increment/decrement)
  • k = 5;
  • x = ++k; // increments k to 6 and then sets x to the
  • // resulting value, i.e., to 6

8. Funzioni e prototipi #include int add1(int); void main() { int x; x=5; x=add1(x); printf("%d,x); } int add1(int i) { int y; y=i+1; return (y); } 9. Operatori sui bit

  • >right shift
  • |bitwise OR
  • &bitwise AND
  • ^bitwise XOR
  • ~bitwise NOT

10. Tabella di verit 11. Esempio shifting 12. Condizionali

  • if(expression)statement
  • else statement
  • while (expression) statement
  • do statement while (expression)
  • for( initialization; expression; increment )
  • statement
  • switch (expression)
  • { case item1:
  • statement1;
  • break;
  • default:
  • statement;
  • break;
  • }

13. Array int x[10]; double y[15]; x[10]=10; char c[15]; 14. Puntatori!!! int a, *b, c; // b is a pointer b = &a; // Store in b the address of a c = *b; // Store in c the value at// address b (i.e., a) 15. Puntatori a caratteri e array char *y; char x[100]; y = &x[0]; y = x; // Does the same as the line above *(y+1) gives x[1] *(y+i) gives x[i] 16. Ancora puntatori int x,y; int *p1,*p2; 1000 1004 1008 1012 x y p1 p2 17. Ancora puntatori(2) x=-42; y=163 1000 1004 1008 1012 x y p1 p2 -42 163 18. Ancora puntatori(3) p1=&x; p2=&y; 1000 1004 1008 1012 x y p1 p2 -42 163 1000 1004 19. Ancora puntatori(4) *p1=17; 1000 1004 1008 1012 x y p1 p2 17 163 1000 1004 20. Ancora puntatori(5) p1=p2; 1000 1004 1008 1012 x y p1 p2 17 163 1000 1004 21. Ancora puntatori(6)

  • Passaggio di parametri per riferimento
  • Aritmetica dei puntatori
  • malloc
  • free

22. Strutture struct emprec { char name[25]; int age; int pay; }; struct emprec employee; employee.age=32; 23. C++ extend C

  • Le classi, con funzioni virtuali ed ereditariet multipla
  • Le eccezioni
  • Le variabili di riferimento
  • I namespace
  • I template di classe
  • I template di funzione
  • La libreria di ingresso/uscita
  • La libreria per gestire stringhe
  • La libreria per gestire contenitori

24. Introduzione al C++ e alla programmazione ad oggetti 25. Introduzione

  • Le due componenti principali dei programmi:
    • Algoritmi : linsieme delle istruzioni che svolgono un particolare compito
    • Dati : ci su cui gli algoritmi agiscono per produrre una soluzione unica
  • La relazione fra queste componenti definisce ilparadigma di programmazione
    • Programmazione procedurale : problemi modellati dagli algoritmi. Dati immagazzinati in aree comuni o passate agli algoritmi
    • Programmazione ad oggetti : problemi modellati dalle relazioni fra tipi di dati astratti ( ADT, Abstract Data Types ), chiamati generalmenteoggetti

26. Il rapporto Dato-Algoritmo LinguaggioBitsBits macchina ProgrammazioneDatiAlgoritmi Livello di astrazione AssemblersSymbolicOp-code Words CompilatoriVariables &StatementsTypes LinguaggiDataSubroutines strutturatistructures Ada (Modula)AbstractPackagesData Types(Modules)Object OrientedObjectsObjects 27. Cos unoggetto ?

  • N pi n meno di quello che potreste trovare scritto in un vocabolario
    • Un oggetto unentit che si possa immaginare dotata di determinatecaratteristicheefunzionalit .
  • Lostatodi un oggetto rappresentato da dati che ne descrivono le caratteristichein un certo istante
  • Le funzionalit di un oggetto sono le operazioni che pu svolgere quando glie lo si richiede (cio quando riceve unmessaggio )
  • Nella nostra vita quotidiana siamo molto pi abituati a ragionare per oggetti che non in modo strutturato!

28. Un esempio... 29. Soldato 30. cos unoggetto :

  • Un insieme di dati e funzioni:

Funzione Funzione Funzione Codice funzione Codice funzione Codice funzione DatoDatoDato 31. Incapsulazione

  • Netta divisione frainterfacciaeimplementazione
  • Da fuori si vede solo linterfaccia che definisce imessaggiaccettati dalloggetto
  • I dettagli dellimplementazione (dati e codice delle funzioni) sono invisibili dallesterno
  • Ogni oggetto ha in se tutto ci che gli serve per rispondere alle chiamate (o deve sapere a chi chiedere)
  • Ilconfinamentodi informazioni e funzionalit in oggetti permette livelli maggiori diastrazionee semplifica la gestione di sistemi complessi.

32. Approccio OO

  • Sono le strutture di dati che svolgono le azioni, non lesubroutines
  • Il lavoro svolto dalserver , non dalclient
  • Cos ?Com fatto?
  • Data Oriented
  • Cosa pu fare per me?
  • Object Oriented

33. Perch programmareper oggetti ?

  • Programmareper oggettinon velocizza lesecuzione dei programmi...
  • Programmareper oggettinon ottimizza luso della memoria...
  • E allora perch programmareper oggetti ?
  • Programmareper oggettifacilita la progettazione e il mantenimento di sistemi software molto complessi!

34. Caratteristiche del softwarenon mantenibile

  • Rigidit
    • non pu essere cambiato con facilt
    • non pu essere stimato limpatto di una modifica
  • Fragilit
    • una modifica singola causa una cascata di modifiche successive
    • i bachi sorgono in aree concettualmente separate dalle aree dove sono avvenute le modifiche
  • Nonriusabilit
    • esistono molte interdipendenze, quindi non possibile estrarre parti che potrebbero essere comuni

35. Programmazione ad oggetti

  • La programmazione ad oggetti, attraverso l incapsulazione , consente di:
    • ridurre la dipendenza del codice di alto livello dalla rappresentazione dei dati
    • riutilizzare del codice di alto livello
    • sviluppare moduli indipendenti luno dallaltro
    • avere codice utente che dipende dalleinterfaccema non dallimplementazione

36. C++e Object Orientation

  • IlC++pu essere usato come linguaggio procedurale o per programmazione ad oggetti
  • Object Orientation implementata attraverso il concetto diclasse
  • Prima di affrontare il problema della programmazione OO conC++dobbiamo:
    • capire dove la programmazione procedurale fallisce
    • affrontare la sintassi delC++

37. Programmazione procedurale

  • Esempio: cinematica relativistica

COMMON /MYDATA/ P1(4), P2(4),+P3(4), P4(4) REAL P1(4), P2(4), P3(4), P4(4) COSTHETA12 = (P1(1)*P2(1) + P1(2)*P2(2) + +P1(3)*P2(3))/... COSTHETA13 = (P1(1)*P3(1) + P1(2)*P3(2) + +P1(3)*P3(3))/... COSTHETA14 = (P1(1)*P4(1) + P1(2)*P4(2) + +P1(3)*P4(3))/... FUNCTION COSTHETA(P1, P2) REAL P1(4), P2(4) COSTHETA = (P1(1)*P2(1) + P1(2)*P2(2) + +P1(3)*P2(3))/... END COMMON /MYDATA/ P1(4), P2(4),+P3(4), P4(4) REAL P1(4), P2(4), P3(4), P4(4) COSTHETA12 = COSTHETA(P1, P2) COSTHETA13 = COSTHETA(P1, P3) COSTHETA14 = COSTHETA(P1, P4) Idea:perch non usare una function? 38. Evoluzione del codice

  • Se cambia il formato del common block?

COMMON /MYDATA/ P1(4), P2(4), P3(4), P4(4) COMMON /MYDATA/ P(4), E(4), THETA(4), PHI(4)

  • Bisogna cambiare la funzione (gli argomenti sono diversi)

COMMON /MYDATA/ P(4), E(4),+THETA(4), PHI(4) COSTHETA12 = COSTHETA1(THETA(1),THETA(2), +PHI(1), PHI(2)) COSTHETA13 = COSTHETA1(THETA(1),THETA(3), +PHI(1), PHI(3)) COSTHETA14 = COSTHETA1(THETA(1),THETA(4), +PHI(1), PHI(4)) FUNCTION COSTHETA1(THETA1, THETA2,+PHI1,PHI2) COSTHETA1 = SIN(THETA1)*SIN(THETA2) * +COS(PHI1-PHI2) + COS(THETA1)*COS(THETA2) END

  • ...e il codice!

39. Il concetto di dipendenza

  • Nellesempio precedente il codice di analisi ( alto livello ) dipende dai dettagli della struttura dati ( basso livello ).

COMMON /MYDATA/ P1(4), P2(4),+P3(4), P4(4) COSTHETA12 = COSTHETA(P1, P2) COSTHETA13 = COSTHETA(P1, P3) COSTHETA14 = COSTHETA(P1, P4 ) FUNCTION COSTHETA(P1, P2) REAL P1(4), P2(4) COSTHETA = (P1(1)*P2(1) + P1(2)*P2(2) + +P1(3)*P2(3))/... END COSTHETA dipende dalla struttura dei dati P1 eP2 Il codice di analisi dipende dalla struttura del common block MYDATA 40. OO riduce le dipendenze!

  • Riduce la dipendenza del codice di alto livello dalla rappresentazione dei dati Permette il riutilizzo del codice di alto livello
  • Nasconde i dettagli di implementazione Supporta tipi di dati astratti( vedere seguito ... )

41. Sintassi:FORTRAN vs C / C++

  • Struttura del programma

PROGRAMTEST C esempio di programma ... END int main() { // esempio di programma ... return 0;// fine } INTEGER I INTEGER*4 J REAL X REAL*8 D int i; long j; float x; double d; InC/C++non necessario un particolare formato il codicespazi... Il C/C++ case sensitiveIstruzioni separate da ; 42. Il main program

  • Ogni programma inC++ , per essere eseguibile, deve contenere una funzionemain()da cui lesecuzione comincer
  • main()deve avere un tipo (decidere quale compito del programmatore). Regola generale chemain()ritorni un intero, a significare ilreturn codedellapplicazione

int main() { //il piu` semplice programma in C++ return 0; } 43. I/O: lettura e scrittura

  • Non esiste nelC++nativo. Si usa:iostream
    • Gli operatorisono usati per definire la direzione del flusso
    • cin ,coutecerrrappresentano lo standard input, output e error del programma

#include int main() { return 0; } direttiva alpreprocessore end of line #include cout modifica lo stato moneta 288. Alcune differenze tra OO e procedurale OOP: dati e comportamento contenuti in un oggetto singoloProcedurale: dati e comportamento sono separatiOOP: divide il problema in oggetti separati che realizzano azioni relazionadosi o utilizzando altri oggettiProcedurale: ad alte complessit si evidenzia un cedimento del sistemaOOP: manutenzione, riusabilit e modifiche possono essere eseguite in modo pi semplice della programmazione procedurale 289. Esempio: conto correnteProgrammazione procedurale:Decomposizione funzionale del problemaDivisione del problema in moduliStruttura dati (Numero correntista, Nome correntista, SaldoImplementazione delle funzioni per operare sui dati:Deposito(ID, #)Prelievo(ID, #)CaolcoInteressi(ID)...... 290. Esempio: conto correnteProgrammazione ad OggettiDati e funzioni non sono entit separateProgramma: insieme di oggetti, che sono istanze di un tipo di dato astratto ContoCorrente NumeroCorrentista NomeCorrentista Saldo NumeroOperazioni Deposita(valore) Preleva(valore) CalcolaInteressi() IncrementaNumeroOperzazioni LeggiNumeroOperazioni() 291. OOPEsempio oggetto ContoCorrenteUn particolare conto corrente una istanza del tipo dati astrattiOgni oggetto deve essere creato per essere utilizzatoEsempio:ContoCorrente cc = new ContoCorrente();cc.Deposito(1000); 292. Modelli orientato agli OggettiModello ad oggettiIl mondo viene visto come un sistema di cose Comportamento visibile Un oggetto Stato interno nascosto Oggetto = stato + comportamento + identit 293. Passi per la modellazioneIdentificare gli oggettiIdentificare il comportamento degli oggettiIdentificare le relazioni tra gli oggettiRealizzare gli oggetti 294. Approccio orientato agli oggettiCaratteristiche di un oggetto:Attributi (Struttura dati)ComportamentoCaratteristiche richiesto da un approccio orientato agli oggettiIdentitPolimorfismoEreditariet 295. Approccio orientato agli OggettiIdentitOggetti sono distinti: ogni oggetto ha la sua identit anche se i suoi attributi sono identiciEsempio: due mele anche se di colore e forma identiche sono due oggetti distintiOggetti sono definiti tramite un linguaggio di programmazione 296. Approccio orientato agli OggettiPolimorfismoAncora persto per capire tale caratteristicaIl poliformismo, nella programmazione orientata agli oggetti, permette diversi comportamenti da parte della stessa operazione 297. Approccio orientato agli OggettiEreditarietCreazione di una gerarchia tra gli oggetto oclasseEsistenza di una super classe, un oggetto che contiene tutti gli altri oggettiLa superclasse fattorizza le propriet comuni di diverse classiUn oggetto o classe eredita tutte le propriet della super classe e aggiunge altre proprietNormalmente le propriet della super classe non sono ripetute nelle sottoclassise ripetute, in alcuni casi,si hanno degli effetti di Polimorfismo 298. Parliamo di ClassiPossiamo definire una classe per produrre oggetti specificiAd esempio: una classe per simulare il lancio di una monetaScriviamo la classeMonetaper rappresentare il modello di unamoneta 299. Cose una classeUna classe contiene la dichiarazione dei dati e dei metodi Dichiarazioni di dati stato Dichiarazioni di metodi comportamento int x, y; char ch; 300. Classi e istanza faccia 0 moneta_1 class Moneta Moneta faccia 1 moneta_2 Moneta Moneta() lancia() dammiFaccia () int faccia ; 301. RiassuntoProgrammi per computer sono simulazioni digitali di modelli concettuali e fisiciUn oggetto una singola istanza di una classe, che contiene la struttura e il comportamento definiti dalla classeSpesso ci si riferisci a tali oggetti come istanze di una classe 302. Programmazione ad oggettiOggettiClassiInterazione tra oggettiIncapsulamentoInterfacciaAccesso agli attributi 303. ClassiPossono esistere pi oggetti che hanno gli stessi attributi, anche con valori diversi, e che dispongono degli stessi metodi. Si dice che questi oggetti appartengono alla stessa classeUna classe specifica gli attributi, senza indicarne il valore, e i metodi che devono avere gli oggetti che appartengono alla classeLa classe quindi crea pi oggetti tutti con gli stessi attributi e gli stessi metodi. Gli oggetti creati a partire da una classe vengono chiamati istanze della classeDue istanze della stessa classe sono distinguibili solo per il valore dei loro attributi, mentre il loro comportamento (metodo) lo stessoLezione 2 304. ClassiLa struttura di una classe la seguente: Lezione 2 Diagrammadelle classi 305. ClassiEsempio:Lezione 2 Avviati Accelera Fermati Gira Cambia marcia RiforniscitiVelocit Colore Numero di porte Marca Automobile 306. INTERFACCIA E IMPLEMENTAZIONEL' interfaccia esprime unavista astratta di un ente computazionale,nascon-dendonel'organizzazione internai dettagli di funzionamentoL' implementazioneesprimelarappresentazione dello stato internoil codicedi un ente computazionale 307. ASTRAZIONESi focalizza sulfunzionamento osservabiledi un enteAbstraction helps people to think about what they are doinglastruttura internadi un servitore inessenziale agli occhi del clientebasta assicurare ilrispetto delcontratto stabilito dall interfaccia. 308. INCAPSULAMENTOSi focalizza sull implementazionedi un enteEncapsulation allows program changes to be reliably made with limited effortAstrazione e incapsulamento sono concetticomplementari . 309. INDIPENDENZA DALLA RAPPRESENTAZIONEIncapsulamentocomporta che larappresentazione concretadi un datopu esseremodificatasenza che vi siano ripercussionisul resto del programma. 310. DAL DIRE AL FARE ...In assenza di precisi supporti linguistici,in fase di codifica si pu percompromettereil livello di astrazionee con esso la modularit e la riusabilit della soluzione. 311. RAPPRESENTAZIONE & ASTRAZIONEAttraverso icostruttori di tipo( array,struct ,enum , etc.) il progettista pudefinire strutture datiche siano larappresentazione concretadelleastrazioniche ha in mente.Occorrecatturare lasemanticadelle astrazioni di dato, cercando diimpedire laccesso diretto alla rappresentazione concreta del dato. 312. Java 313. JAVA: obiettivi di progetto del linguaggio Notastorica : Il linguaggio JAVA (inizialmenteOak ) stato progettatoin origine per programmare i microchip di elettrodomestici REQUISITI PROGETTUALI PRINCIPALIfamiliareobject-orientedrobustoefficientesicuroportabilesempliceconcorrentedinamicodistribuito 314. JAVA ha una sintassi familiareI progettisti di JAVA sapevano che un nuovo linguaggionon avrebbe preso piede se non avesse avesse avuto unasintassi familiare ai programmatori professionisti, cosscelsero di utilizzare quanto pi possibile una sintassisimile al C++-JAVA non comunque la versione per Internet di C++E un linguaggio fondato sulle necessit e sulle esperienzedi veri programmatori 315. JAVA object-orientedJAVA risponde allesigenza di realizzare sistemi softwarefacili da modificare e manutenere-JAVA consente alti livelli diriusabilitdel codice- JAVA fornisce unarsenale di classi per lo sviluppo diinterfacce utente e di applicazioni Internet impiegabili conrelativa facilit 316. JAVA robustoUna delle principali fonti dicrashdei programmi scritti inC/C++ luso scorretto dellaritmetica dei puntatori:JAVA non fornisce tipi puntatori, n tanto meno laritmeticadei puntatori 317. Linguaggi compilati e interpretati linguaggiocompilatoIl compilatore produce un eseguibile incodice macchina . Lesecuzione sar moltovelocema lo stesso eseguibilenon pu essere usato su piattaforme diverse. linguaggiointerpretatoIl codice indipendente dalla piattaforma , madeve essere eseguito attraverso uninterpretechein genere moltopoco efficiente .Javaha un compilatore ed un interprete. 318. JAVA efficienteSebbene leseguibile prodotto dal compilatore JAVA siauna sequenza di comandi per un interprete, ci rende iprogrammi JAVA mediamente poco pi lentidi corrispondenti programmi C++.La perdita di efficienza che ne deriva pi che accettabileper il tipo di applicazioni cui solitamente applicato JAVA,tipicamente programmi altamente interattiviAltri linguaggi interpretati quali BASIC, Tcl, PERL,presentano livelli di inefficienza tali da limitarne decisamentela possibilit di utilizzo 319. JAVA sicuroIl rischio di infezione virale o di introduzione di cavalli diTroia nelleseguire sul proprio computer programmiconvenzionali di provenienza incerta molto alto. Cirendeva la pratica di scaricarsi programmi eseguibili daInternet qualcosa di poco sicuro e da evitareJAVA offre un ambiente di esecuzione sicuro confinandoil programma scaricato da Internet in un firewall da cuinon possibile accedere ad altre parti del computer 320. JAVA portabile (indipendente dalla piattaforma)Programmi scritti in linguaggi convenzionali quali il C e ilC++ sono, almeno in teoria, portabili da una piattaformaallaltra, a patto di ricompilarli per la nuova piattaformaDei programmi scaricabili da Internet si ha a disposizionespesso solo leseguibile, specifico per ciascun tipo di CPU sesi tratta di programmi scritti in C/C++Se pure fosse disponibile il sorgente del programma,saremmo costretti a ricompilarlo prima di poterlo eseguire-JAVA: la magia del Bytecode 321. JAVA portabile: bytecode e macchina virtuale Codicesorgente Compilatore Codiceoggetto CPU Compilatore convenzionale Codicesorgente Compilatore Bytecode Macchina virtuale per computer A Compilatore JAVA Macchina virtuale per computer B Macchina virtuale per computer C 322. JAVA sempliceJAVA facile da imparare e da impiegare in manieraproduttiva, soprattutto se si conosce la filosofia di fondodella programmazione a oggetti e/o il linguaggio C++Le caratteristiche pi complesse di C++ sono state escluseda JAVA, oppure realizzate in maniera pi sempliceJAVA non comprende caratteristiche insolite o sorprendenti:esiste sempre un numero ridotto di modi ben chiari e definitiper eseguire un determinato compitoA differenza di altri linguaggi sovraccarichi di caratteristiche(esempio, ADA), JAVA ha un numero minimo di caratteristichedi base, estensibili se necessario con luso di librerie 323. JAVA concorrenteJAVA fornisce gli strumenti per gestire flussi di controlloconcorrenti: i Threade i meccanismi di sincronizzazioneLapproccio facile alla concorrenza offerto da JAVApermette di concentrarsi sul comportamento specifico delprogramma, piuttosto che sul come realizzare e gestire ilmutlitasking 324. JAVA dinamicoI programmi JAVA gestiscono estensivamente informazionidi tipo run-time per laccesso agli oggetti durantelesecuzione (es. binding dinamico) 325. JAVA distribuitoJAVA gestisce i protocolli TCP/IP: accedere ad una risorsatramite un URL del tutto analogo allaccedere a un file- Invio di messaggi remoti: programmazione client/server 326. Programmazionein JavaApplicazione : programma eseguito dal sistema operativoApplet : applicazione, allegata ad una pagina ipertestuale HTML ed eseguita dal visualizzatore di pagina (browser)Servlet : applicazioni eseguita sul lato server in seguito ad una specifica richiesta 327. La classeUnit fondamentale della programmazione orientata agli oggettiUna classe costituita da almeno unnome , che la identifica in modo univoco, e una coppia di parentesi graffe { } che dovranno contenere il corpo della classe (dichiarazioni e istruzioni) 328. I metodiLe istruzioni devono essere contenute in particolari moduli dettimetodiunmetodoha una struttura simile a quella della classe: definito tramite unnomee una coppia di parentesi graffe (blocco)I nomi dei metodi e delle classi possono essere preceduti da altri termini (es. public, static, ecc.) 329. ApplicazioniUnapplicazione deve sempre contenere il metodomain(principale) entro al quale inserire le istruzioni dalle quali avr inizio l'esecuzione del programma. Ad esempio:public class Vuota {public static void main(String args[ ]) {// Inserire le istruzioni del programma}} 330. Commenti /* Commento di pi righe Commento di pi righe Commento di pi righe */ //Commento di una riga /**Commento di documentazione (Javadoc) 331. IdentificatoriDesignano gli elementi della programmazionePossono essere composti da lettere, cifre, il carattere _ e il carattere $Non possono iniziare con una cifraSimboli maiuscoli e minuscoli sono trattati come caratteri diversi (case sensitive)Alcuni identificatori hanno un significato prestabilito: parole chiave e riservate; questi identificatori non possono essere ridefiniti 332. Parole chiave e riservate abstract boolean break byte case catch char class const 2 continue default do double else extends false 1 final finally float for goto 2 if implements import instanceof int interface long native new null 1 package private protected public return short static strictfp super switch synchronized this throw throws transient true 1 try void volatile while 1 . parole riservate;2 . parole al momento non utilizzate 333. Tipi di dati (primitivi) (*) tipocharunicode a 16 bit compatibile con i numeri interi Interi long 64 () int 32 () short 16 () byte 8 () tipo bit Virgola mobile (reali) 64 32 bit double float tipo Logico Carattere char(*) (16 bit) boolean Tipo 334. Dichiarazioni final floatIVA = 0,20; Costanti import awt.*; Librerie V a r i a b i l i intn; floatx; charc; booleanenunciato; intv[] =new int [3]; String parola; Esempi 335. Operatori aritmetici --n ;n-- Decremento ++n ;n++ Incremento / Divisione % Modulo * Moltiplicazione - Sottrazione + Addizione Simbolo Operatore 336. Operatori logici Simbolo Operatore ! Negazione || Disgiunzione Inclusiva && Congiunzione ^ Disgiunzione esclusiva 337. Operatori bitwise Operano su numeri interi bit per bit^ Disgiunzione esclusiva Simbolo Operatore | Disgiunzione Inclusiva & Congiunzione ~ Complemento 338. Operatori bitwise(Esempi)110&010010 110 | 010 110 110 ^ 010 100 ~101 = 010 339. Operatori di scorrimento (shifting) Operano su numeri interi bit per bitSimbolo Operatore > Scorrimento a destra con estensione del bit di segno da sinistra >>> Scorrimento a destra con riempimento di zeri a sinistra 340. Operatori di assegnazione e relazione Simbolo Operatore = Di assegnazione < Minore > Maggiore != Diverso == Uguale = Non minore 341. Forme abbreviate (esempi con operatori aritmetci) Possono essere utilizzate anche con altri operatori binari a = a / b a /= b Divisione a = a * b a *= b Moltiplicazione a = a - b a -= b Sottrazione a = a + b a += bAddizione equivale a Forma abbreviata Operazione 342. Caratteri speciali (Sequenze escape) Tabulazione A capo (new line) Inizio riga (carriage return) Cancella a sinistra (backspace) Barra inversa Avanzamento pagina (form feed) f Apice Virgolette Descrizione Carattere 343. Conversioni di tipo inti = 24; longn = i; A un tipo pi capiente viene assegnato un tipo meno capiente doublefloatlongintcharshortbyte esempio Implicita (automatica) longn = 24; inti = ( int ) n; Si indica di fronte alla variabile il nuovo tipo tra parentesi :(nuovo_tipo) variabile ; esempio Esplicita (casting) 344. Applicazioni: classe Hello public classHello { // Una classe per cominciare a lavorare con Java public static voidmain(String[] args){ // Mostra la stringa Ciao, come stai? System.out.println("Ciao, come stai?"); } } 345. Applicazioni: classe Somma public classSomma { // Calcola la somma di 4 e 5 public static voidmain(String[] args) { // dichiarazione variabili e assegnazione valori int a = 4; int b = 5; // Mostra il risultato della somma System.out.println(a+b = + (a+b)); } } 346. Selezione if(condizione) istruzione; if if(condizione) { istruzione; istruzione; ; } else {istruzione; istruzione; ; } if else (blocco) if(condizione) istruzione; else i struzione; if else 347. Selezione multipla switch(i) // i variabile byte o short o int o char { case1: istruzione; break; case2: { istruz; istruz; ; } break; case3: { istruz; istruz; ; } break; default : { istruz; istruz; ; } } switch 348. Ciclo enumerativo Nota: si possono usare le istruzionibreakocontinueper uscire dal ciclo o riprenderlo for for(int i=start; i