Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoLeonora Brescia Modificato 9 anni fa
1
© Copyright NTT DATA Italia – All Rights Reserved The information contained in this document is the property of NTT DATA Italia S.p.A. and the addressee of the document. The information is closely linked to the oral comments accompanying the same, and may be used only by those attending the presentation. Copying, publishing or divulging the material contained in this document is forbidden and may be illegal. ITIS A. Monaco Cosenza, 25 Marzo 2014 Introduzione a Java
2
© Copyright NTT DATA Italia – All Rights Reserved1 M052 - 04 ► Nascita di Java ► Caratteristiche principali ► Differenze tra C# e Java Sommario
3
© Copyright NTT DATA Italia – All Rights Reserved2 M052 - 04 Primo meseSecondo mese…………… Nascita di Java Nel 1991 un gruppo di Sun MicroSystems, guidato da James Gosling e Patrick Naughton, iniziò a lavorare ad un progetto per un nuovo linguaggio. L’idea di base era quella di creare un linguaggio semplice e neutrale rispetto all’architettura, in modo da poter essere eseguito su hardware diversi. La prima implementazione (Alpha) vide la luce nel 1995 per poi essere pubblicata, in versione stabile, nel 1996 come Java 1.
4
© Copyright NTT DATA Italia – All Rights Reserved3 M052 - 04 Primo meseSecondo mese…………… Caratteristiche e Java Development Kit Linguaggio di programmazione ad alto livello Semplice e robusto Orientato agli oggetti Indipendente dalla piattaforma Affidabile e sicuro Multithread Da allora Java è cresciuto a ritmo fenomenale: i programmatori lo hanno adottato per la sua elevata semplicità rispetto al rivale/progenitore (il C++). Inoltre la Sun rilasciava con Java, una libreria enormemente ricca, JDK – Java Development Kit, che forniva agli sviluppatori una innumerevole quantità di classi per i problemi più diversi.
5
© Copyright NTT DATA Italia – All Rights Reserved4 M052 - 04 Primo meseSecondo mese…………… Caratteristiche e Java Development Kit Linguaggio di programmazione ad alto livello Semplice e robusto Orientato agli oggetti Indipendente dalla piattaforma Affidabile e sicuro Multithread Da allora Java è cresciuto a ritmo fenomenale: i programmatori lo hanno adottato per la sua elevata semplicità rispetto al rivale/progenitore (il C++). Inoltre la Sun rilasciava con Java, una libreria enormemente ricca, JDK – Java Development Kit, che forniva agli sviluppatori una innumerevole quantità di classi per i problemi più diversi. Sintassi simile a C e C++ Eliminati i costrutti più "pericolosi" di C e C++ aritmetica dei puntatori preprocessore (#define) (de)allocazione esplicita della memoria Sintassi simile a C e C++ Eliminati i costrutti più "pericolosi" di C e C++ aritmetica dei puntatori preprocessore (#define) (de)allocazione esplicita della memoria
6
© Copyright NTT DATA Italia – All Rights Reserved5 M052 - 04 Primo meseSecondo mese…………… Caratteristiche e Java Development Kit Linguaggio di programmazione ad alto livello Semplice e robusto Orientato agli oggetti Indipendente dalla piattaforma Affidabile e sicuro Multithread Da allora Java è cresciuto a ritmo fenomenale: i programmatori lo hanno adottato per la sua elevata semplicità rispetto al rivale/progenitore (il C++). Inoltre la Sun rilasciava con Java, una libreria enormemente ricca, JDK – Java Development Kit, che forniva agli sviluppatori una innumerevole quantità di classi per i problemi più diversi. Rilevamento errori e typechecking a tempo di compilazione e di esecuzione Mascheramento dei puntatori all'utente Controllo automatico degli indici degli array Gestione delle eccezioni da parte dell'utente Gestione della memoria (allocazione & GC) Rilevamento errori e typechecking a tempo di compilazione e di esecuzione Mascheramento dei puntatori all'utente Controllo automatico degli indici degli array Gestione delle eccezioni da parte dell'utente Gestione della memoria (allocazione & GC)
7
© Copyright NTT DATA Italia – All Rights Reserved6 M052 - 04 Primo meseSecondo mese…………… Caratteristiche e Java Development Kit Linguaggio di programmazione ad alto livello Semplice e robusto Orientato agli oggetti Indipendente dalla piattaforma Affidabile e sicuro Multithread Da allora Java è cresciuto a ritmo fenomenale: i programmatori lo hanno adottato per la sua elevata semplicità rispetto al rivale/progenitore (il C++). Inoltre la Sun rilasciava con Java, una libreria enormemente ricca, JDK – Java Development Kit, che forniva agli sviluppatori una innumerevole quantità di classi per i problemi più diversi. Tutto all’interno di Java è un oggetto Fanno eccezione i tipi semplici (es. interi), considerati come non-oggetti a prestazioni elevate Incapsulamento, Ereditarietà, Polimorfismo Tutto all’interno di Java è un oggetto Fanno eccezione i tipi semplici (es. interi), considerati come non-oggetti a prestazioni elevate Incapsulamento, Ereditarietà, Polimorfismo
8
© Copyright NTT DATA Italia – All Rights Reserved7 M052 - 04 Primo meseSecondo mese…………… Caratteristiche e Java Development Kit Linguaggio di programmazione ad alto livello Semplice e robusto Orientato agli oggetti Indipendente dalla piattaforma Affidabile e sicuro Multithread Da allora Java è cresciuto a ritmo fenomenale: i programmatori lo hanno adottato per la sua elevata semplicità rispetto al rivale/progenitore (il C++). Inoltre la Sun rilasciava con Java, una libreria enormemente ricca, JDK – Java Development Kit, che forniva agli sviluppatori una innumerevole quantità di classi per i problemi più diversi. Lo stesso codice una volta compilato può essere eseguito su diverse piattaforme
9
© Copyright NTT DATA Italia – All Rights Reserved8 M052 - 04 Primo meseSecondo mese…………… Caratteristiche e Java Development Kit Linguaggio di programmazione ad alto livello Semplice e robusto Orientato agli oggetti Indipendente dalla piattaforma Affidabile e sicuro Multithread Da allora Java è cresciuto a ritmo fenomenale: i programmatori lo hanno adottato per la sua elevata semplicità rispetto al rivale/progenitore (il C++). Inoltre la Sun rilasciava con Java, una libreria enormemente ricca, JDK – Java Development Kit, che forniva agli sviluppatori una innumerevole quantità di classi per i problemi più diversi. Possibilità di controllare e impedire l’esecuzione di istruzioni pericolose
10
© Copyright NTT DATA Italia – All Rights Reserved9 M052 - 04 Primo meseSecondo mese…………… Caratteristiche e Java Development Kit Linguaggio di programmazione ad alto livello Semplice e robusto Orientato agli oggetti Indipendente dalla piattaforma Affidabile e sicuro Multithread Da allora Java è cresciuto a ritmo fenomenale: i programmatori lo hanno adottato per la sua elevata semplicità rispetto al rivale/progenitore (il C++). Inoltre la Sun rilasciava con Java, una libreria enormemente ricca, JDK – Java Development Kit, che forniva agli sviluppatori una innumerevole quantità di classi per i problemi più diversi. ??
11
© Copyright NTT DATA Italia – All Rights Reserved10 M052 - 04 Primo meseSecondo mese…………… Bytecode e Java Virtual Machine Una caratteristica che ha reso popolare Java è quella di essere indipendente dal Sistema Operativo su cui un programma viene scritto e compilato. Ma come è resa possibile questa cosa? Il compilatore Java produce un codice che non è il codice binario finale, ma un codice binario intermedio, indipendente dall’architettura, chiamato Bytecode. Questo codice intermedio è interpretato da una “macchina virtuale” che lo traduce in istruzioni macchina: la Java Virtual Machine (JVM). La JVM ha bisogno di conoscere il SO su cui sta girando. Per questo motivo la Sun mise a disposizione JVM per tutti i principali sistemi operativi: Windows, Linux, Unix, Mac ecc...
12
© Copyright NTT DATA Italia – All Rights Reserved11 M052 - 04 Primo meseSecondo mese…………… Write Once, Run Anywhere
13
© Copyright NTT DATA Italia – All Rights Reserved12 M052 - 04 Primo meseSecondo mese…………… javac.exe e java.exe Semplificando, un programma Java è un file di testo contenente del codice Java: class HelloWorld { public static main(String[] args) { System.out.println(“Hello World !!”); } Il file così creato ha estensione.java e deve essere passato al compilatore: C:\>javac HelloWorld.java questo software crea un file.class con lo stesso nome dell’originario: HelloWorld.class il file.class contiene il bytecode per la JVM. Il comando: C:\>java HelloWorld avvia l’esecuzione del metodo «main» della classe HelloWorld.class
14
© Copyright NTT DATA Italia – All Rights Reserved13 M052 - 04 Primo meseSecondo mese…………… javac.exe e java.exe
15
© Copyright NTT DATA Italia – All Rights Reserved14 M052 - 04 Primo meseSecondo mese…………… Sintassi e costrutti di base /** Esempio di classe */ public class VotiEsame { private int voti[]; // variabile di tipo vettore di interi public VotiEsame(int n) { voti = new int[n]; /* inizializza un vettore di lunghezza n */ } // genera un vettore contenente interi pseudo-casuali compresi tra 0 e 10 public void generaVoti() { Random r = new Random(); for (int i=0; i<voti.length; i++) { voti[i] = r.nextInt(11); } // stampa vettore public double calcolaMedia() { int somma = 0; for (int i=0; i<voti.length; i++) { somma += voti[i]; } return somma / voti.length; }
16
© Copyright NTT DATA Italia – All Rights Reserved15 M052 - 04 Primo meseSecondo mese…………… Sintassi e costrutti di base /** Esempio di classe */ public class VotiEsame { private int voti[]; // variabile di tipo vettore di interi public VotiEsame(int n) { voti = new int[n]; /* inizializza un vettore di lunghezza n */ } // genera un vettore contenente interi pseudo-casuali compresi tra 0 e 10 public void generaVoti() { Random r = new Random(); for (int i=0; i<voti.length; i++) { voti[i] = r.nextInt(11); } // stampa vettore public double calcolaMedia() { int somma = 0; for (int i=0; i<voti.length; i++) { somma += voti[i]; } return somma / voti.length; } Commenti
17
© Copyright NTT DATA Italia – All Rights Reserved16 M052 - 04 Primo meseSecondo mese…………… Sintassi e costrutti di base /** Esempio di classe */ public class VotiEsame { private int voti[]; // variabile di tipo vettore di interi public VotiEsame(int n) { voti = new int[n]; /* inizializza un vettore di lunghezza n */ } // genera un vettore contenente interi pseudo-casuali compresi tra 0 e 10 public void generaVoti() { Random r = new Random(); for (int i=0; i<voti.length; i++) { voti[i] = r.nextInt(11); } // stampa vettore public double calcolaMedia() { int somma = 0; for (int i=0; i<voti.length; i++) { somma += voti[i]; } return somma / voti.length; } Parole chiave
18
© Copyright NTT DATA Italia – All Rights Reserved17 M052 - 04 Primo meseSecondo mese…………… Sintassi e costrutti di base /** Esempio di classe */ public class VotiEsame { private int voti[]; // variabile di tipo vettore di interi public VotiEsame(int n) { voti = new int[n]; /* inizializza un vettore di lunghezza n */ } // genera un vettore contenente interi pseudo-casuali compresi tra 0 e 10 public void generaVoti() { Random r = new Random(); for (int i=0; i<voti.length; i++) { voti[i] = r.nextInt(11); } // stampa vettore public double calcolaMedia() { int somma = 0; for (int i=0; i<voti.length; i++) { somma += voti[i]; } return somma / voti.length; } Letterali
19
© Copyright NTT DATA Italia – All Rights Reserved18 M052 - 04 Primo meseSecondo mese…………… Sintassi e costrutti di base /** Esempio di classe */ public class VotiEsame { private int voti[]; // variabile di tipo vettore di interi public VotiEsame(int n) { voti = new int[n]; /* inizializza un vettore di lunghezza n */ } // genera un vettore contenente interi pseudo-casuali compresi tra 0 e 10 public void generaVoti() { Random r = new Random(); for (int i=0; i<voti.length; i++) { voti[i] = r.nextInt(11); } // stampa vettore public double calcolaMedia() { int somma = 0; for (int i=0; i<voti.length; i++) { somma += voti[i]; } return somma / voti.length; } Identificatori
20
© Copyright NTT DATA Italia – All Rights Reserved19 M052 - 04 Primo meseSecondo mese…………… Sintassi e costrutti di base /** Esempio di classe */ public class VotiEsame { private int voti[]; // variabile di tipo vettore di interi public VotiEsame(int n) { voti = new int[n]; /* inizializza un vettore di lunghezza n */ } // genera un vettore contenente interi pseudo-casuali compresi tra 0 e 10 public void generaVoti() { Random r = new Random(); for (int i=0; i<voti.length; i++) { voti[i] = r.nextInt(11); } // stampa vettore public double calcolaMedia() { int somma = 0; for (int i=0; i<voti.length; i++) { somma += voti[i]; } return somma / voti.length; } Operatori
21
© Copyright NTT DATA Italia – All Rights Reserved20 M052 - 04 Primo meseSecondo mese…………… Sintassi e costrutti di base /** Esempio di classe */ public class VotiEsame { private int voti[]; // variabile di tipo vettore di interi public VotiEsame(int n) { voti = new int[n]; /* inizializza un vettore di lunghezza n */ } // genera un vettore contenente interi pseudo-casuali compresi tra 0 e 10 public void generaVoti() { Random r = new Random(); for (int i=0; i<voti.length; i++) { voti[i] = r.nextInt(11); } // stampa vettore public double calcolaMedia() { int somma = 0; for (int i=0; i<voti.length; i++) { somma += voti[i]; } return somma / voti.length; } Separatori
22
© Copyright NTT DATA Italia – All Rights Reserved21 M052 - 04 Primo meseSecondo mese…………… Sintassi e costrutti di base
23
© Copyright NTT DATA Italia – All Rights Reserved22 M052 - 04 Primo meseSecondo mese…………… Sintassi e costrutti di base
24
© Copyright NTT DATA Italia – All Rights Reserved23 M052 - 04 Primo meseSecondo mese…………… Sintassi e costrutti di base
25
© Copyright NTT DATA Italia – All Rights Reserved24 M052 - 04 Primo meseSecondo mese…………… Differenze tra C# e Java.
26
© Copyright NTT DATA Italia – All Rights Reserved25 M052 - 04 Primo meseSecondo mese…………… Differenze tra C# e Java C# permette di avere più classi nello stesso file. Java richiede che il nome di un file sorgente corrisponda al nome della unica classe public contenuta al suo interno.
27
© Copyright NTT DATA Italia – All Rights Reserved26 M052 - 04 Primo meseSecondo mese…………… Differenze tra C# e Java In C# il codice viene “raggruppato” in namespaces: namespace il.mio.namespace; using System.IO; class MiaClasse { public static void Main(string[] args) { … } In Java il codice viene “raggruppato” in packages: package il.mio.package; import java.io.*; class MiaClasse { public static void Main(string[] args) { … }
28
© Copyright NTT DATA Italia – All Rights Reserved27 M052 - 04 Primo meseSecondo mese…………… Differenze tra C# e Java Package e Namespace In C# i namespace NON devono riflettere la struttura delle directory. In Java la struttura gerarchica dei package DEVE riflettere la struttura gerarchica delle directory. Es: I file del package: com.mionamespace.miopackage.* dovranno obbligatoriamente risiedere nella cartella:.\com\mionamespace\miopackage\*.*
29
© Copyright NTT DATA Italia – All Rights Reserved28 M052 - 04 Primo meseSecondo mese…………… Differenze tra C# e Java Standard output C#: Console.WriteLine(“testo !!!"); Java: System.out.println("testo !!!"); Riferimento alla classe parent C#: base.* Java: super.*
30
© Copyright NTT DATA Italia – All Rights Reserved29 M052 - 04 Primo meseSecondo mese…………… Differenze tra C# e Java Il “constructor chaining” in C#, viene inserito nella signature del metodo: public MyConstructor(int i) : this(i, -1) {... } public MyConstructor(int i, int j) {... } In Java, può essere usato all’interno del costruttore: public MyConstructor(int i) { this(i, -1);... }
31
© Copyright NTT DATA Italia – All Rights Reserved30 M052 - 04 Primo meseSecondo mese…………… Differenze tra C# e Java In C#, la distinzione tra implementazione di una interfaccia ed estensione di una classe non esiste: public class MyClass : MyParentClass, MyInterface {... } In Java, i due casi sono gestiti separatamente con due apposite keyword: public class MyClass1 extends MyParentClass implements MyInterface {... } public class MyClass2 implements MyInterface {... }
32
© Copyright NTT DATA Italia – All Rights Reserved31 M052 - 04 Primo meseSecondo mese…………… Differenze tra C# e Java Override In C#, il metodo di base sottoposto a override deve essere virtual, abstract o override. class MyParentClass { public virtual void MyMethod() {... } } Nella classe figlia è, poi, necessario usare la keyword override: class MyChildClass : MyParentClass { public override void MyMethod() {... } } In Java, tutti I metodi sono virtual di default virtual e se ne può fare sempre l’override.
33
© Copyright NTT DATA Italia – All Rights Reserved32 M052 - 04 Primo meseSecondo mese…………… Differenze tra C# e Java Riferimenti: http://www.codeproject.com/Articles/22854/Main-Differences-between-C-and-Java http://msdn.microsoft.com/en-us/library/ms836794.aspx http://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Java
34
33© Copyright NTT DATA Italia – All Rights Reserved M052 - 04 alessandro.galasso@nttdata.com
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.