SlideShare a Scribd company logo
www.googleslidesppt.com _ 30+ Ready Made Google Slides & PowerPoint Presentation for Free
Dal C/C++ a Java (in 3*30 minuti)
Se sapete già programmare...non riscopriamo l'acqua calda!
Parte 1
Marcello Missiroli (prof.missiroli@gmail.com)
Di
che
si
tratta?
01
02
03
04
Ipotesi
Voi conoscete già un linguaggio di
programmazione (C e/o C++)
Tesi
Non occorre rispiegare tutto daccapo:
applicheremo un insegnamento differenziale
Metodologia
Trasformeremo un programma che ben
conoscete (in C/C++) in un programma Java
Verifica
Poi toccherà a voi convertire un programma!
Hello world (C++)
Uno Hello world classico.
#include <iostream>
using namespace std;
int main()
{
cout << "Hello, World!"<<endl;
return 0;
}
Passo 1
Eliminamo gli include
#include <iostream>
using namespace std;
int main()
{
cout << "Hello, World!"<<endl;
return 0;
}
Passo 1
Eliminamo gli include
#include <iostream>
using namespace std;
int main()
{
cout << "Hello, World!"<<endl;
return 0;
}
Java possiede un meccanismo
equivalente chiamato import,
ma in questo caso non serve
Passo 2
Eliminamo i namespaces
#include <iostream>
using namespace std;
int main()
{
cout << "Hello, World!"<<endl;
return 0;
}
Passo 2
Eliminamo i namespaces
#include <iostream>
using namespace std;
int main()
{
cout << "Hello, World!"<<endl;
return 0;
}
Passo 2
Eliminamo i namespaces
#include <iostream>
using namespace std;
int main()
{
cout << "Hello, World!"<<endl;
return 0;
}
Java possiede i package,
un modo elegante per organizzare
i programmi, ma non
sono esattamente la stessa cosa
Passo 3
Indichiamo i modificatori alla funzione (metodo in Java)
#include <iostream>
using namespace std;
public static int main()
{
cout << "Hello, World!"<<endl;
return 0;
}
Passo 3
Indichiamo i modificatori di funzione (metodo)
#include <iostream>
using namespace std;
public static int main()
{
cout << "Hello, World!"<<endl;
return 0;
}
Java possiede vari modificatori di accesso:
public, package, protected, private
(in ordine di “ristrettezza”)
static indica che si tratta di
un metodo statico,
Ovvero legato alla classe
e non a un oggetto.
Passo 4
Cambiamo l'intestazione del metodo, piuttosto diversa
#include <iostream>
using namespace std;
public static void main(String[] args)
{
cout << "Hello, World!"<<endl;
return 0;
}
Passo 4
Cambiamo l'intestazione del metodo, piuttosto diversa
#include <iostream>
using namespace std;
public static void main(String[] args)
{
cout << "Hello, World!"<<endl;
return 0;
}
Parametro obbligatorio. Notare che String fa parte
del core del linguaggio
Il metodo è di tipo void, va quindi tolto
il valore di ritorno obbligatorio.
Passo 5
Cambiamo il modo con cui si stampa
#include <iostream>
using namespace std;
public static void main(String[] args)
{
System.out.println("Hello, World");
return 0;
}
Passo 5
Cambiamo il modo con cui si stampa
#include <iostream>
using namespace std;
public static void main(String[] args)
{
System.out.println("Hello, World");
return 0;
}
Non esistono gli stream. println (e print) sono metodi
(o funzioni) che richiedono come parametero una stringa
Passo 6
I metodi sono sempre all'interno di una classe.
Il file deve avere lo stesso nome della classe (.java)
public class HelloWorld
{ <iostream>
public static void main(String[] args)
{
System.out.println("Hello, World");
return 0;
}
}
Agenda Style
Riassunto
l Il programma si avvia tramite
il metodo main
l Si usano virgolette per
delimitare le stringhe e le
graffe per racchiudere i
blocchi.
l I tipi di dati fondamentali
sono assai simili (int, float,
double, perfino void)
l Case-sensitive.
l Si possono importare librerie
(con diversa sintassi)
Similitudini
l Le funzioni si chiamano
metodi
l Il main ha parametri diversi
(I/O)
l Ci sono particolari regole di
accesso
l L'I/O su console è integrato
nel linguaggio e ha sintassi
diversa
l I metodi si possono essere
statici o dinamici
l Non esistono metodi “liberi”.
Sono sempre inseriti
all'interno di una classe, a
sua volta contenuta in un file
.java dallo stesso nome
(attenti alle maiuscole,
ANCHE se usate Windows)
Differenze
Agenda Style
Riassunto
#include <iostream>
using namespace std;
int main()
{
cout << "Hello,
World!";
return 0;
}
C++
public class
HelloWorld
{
public static void
main(String[] args)
{
System.out.println("He
llo, World");
}
}
Java
Grazie
per l'attenzione
Spero di essere stato chiaro....
Agenda Style
Compito
#include <iostream>
using namespace std;
int main()
{
int a=2, b=3;
cout << "Risultato: ";
cout << a+b << endl;
return 0;
}
C++
?
Java

More Related Content

Similar to Dal C a Java (1/3)

Programmazione a oggetti tramite la macchina del caffé (pt. 2)
Programmazione a oggetti tramite la macchina del caffé (pt. 2)Programmazione a oggetti tramite la macchina del caffé (pt. 2)
Programmazione a oggetti tramite la macchina del caffé (pt. 2)Marcello Missiroli
 
Javaday 2006: Java 5
Javaday 2006: Java 5Javaday 2006: Java 5
Javaday 2006: Java 5Matteo Baccan
 
Let's give it a GO!
Let's give it a GO!Let's give it a GO!
Let's give it a GO!MarioTraetta
 
Qt Lezione3: un visualizzatore di immagini
Qt Lezione3: un visualizzatore di immaginiQt Lezione3: un visualizzatore di immagini
Qt Lezione3: un visualizzatore di immaginiPaolo Sereno
 
Programmazione a oggetti tramite la macchina del caffé (pt. 3)
Programmazione a oggetti tramite la macchina del caffé (pt. 3)Programmazione a oggetti tramite la macchina del caffé (pt. 3)
Programmazione a oggetti tramite la macchina del caffé (pt. 3)Marcello Missiroli
 
Java 8: le nuove-interfacce di Ezio Sperduto
Java 8: le nuove-interfacce di Ezio SperdutoJava 8: le nuove-interfacce di Ezio Sperduto
Java 8: le nuove-interfacce di Ezio SperdutoVitalij Zadneprovskij
 
Django: utilizzo avanzato e nuove funzionalità
Django: utilizzo avanzato e nuove funzionalitàDjango: utilizzo avanzato e nuove funzionalità
Django: utilizzo avanzato e nuove funzionalitàskam
 
Design pattern template method
Design pattern template methodDesign pattern template method
Design pattern template methodNelson Firmani
 
Lezione design patterns 2011 (Peron)
Lezione design patterns 2011 (Peron)Lezione design patterns 2011 (Peron)
Lezione design patterns 2011 (Peron)lukebonham
 

Similar to Dal C a Java (1/3) (20)

Programmazione a oggetti tramite la macchina del caffé (pt. 2)
Programmazione a oggetti tramite la macchina del caffé (pt. 2)Programmazione a oggetti tramite la macchina del caffé (pt. 2)
Programmazione a oggetti tramite la macchina del caffé (pt. 2)
 
Applicazioni native in java
Applicazioni native in javaApplicazioni native in java
Applicazioni native in java
 
Javaday 2006: Java 5
Javaday 2006: Java 5Javaday 2006: Java 5
Javaday 2006: Java 5
 
Java codestyle & tipstricks
Java codestyle & tipstricksJava codestyle & tipstricks
Java codestyle & tipstricks
 
Pycon Jungle
Pycon JunglePycon Jungle
Pycon Jungle
 
Let's give it a GO!
Let's give it a GO!Let's give it a GO!
Let's give it a GO!
 
Qt Lezione3: un visualizzatore di immagini
Qt Lezione3: un visualizzatore di immaginiQt Lezione3: un visualizzatore di immagini
Qt Lezione3: un visualizzatore di immagini
 
introduzione a symfony 2
introduzione a symfony 2 introduzione a symfony 2
introduzione a symfony 2
 
Corso Java
Corso JavaCorso Java
Corso Java
 
Programmazione a oggetti tramite la macchina del caffé (pt. 3)
Programmazione a oggetti tramite la macchina del caffé (pt. 3)Programmazione a oggetti tramite la macchina del caffé (pt. 3)
Programmazione a oggetti tramite la macchina del caffé (pt. 3)
 
Pycon
PyconPycon
Pycon
 
Java 8: le nuove-interfacce di Ezio Sperduto
Java 8: le nuove-interfacce di Ezio SperdutoJava 8: le nuove-interfacce di Ezio Sperduto
Java 8: le nuove-interfacce di Ezio Sperduto
 
Django: utilizzo avanzato e nuove funzionalità
Django: utilizzo avanzato e nuove funzionalitàDjango: utilizzo avanzato e nuove funzionalità
Django: utilizzo avanzato e nuove funzionalità
 
Corso Java 2 - AVANZATO
Corso Java 2 - AVANZATOCorso Java 2 - AVANZATO
Corso Java 2 - AVANZATO
 
Java Lezione 1
Java Lezione 1Java Lezione 1
Java Lezione 1
 
Design pattern template method
Design pattern template methodDesign pattern template method
Design pattern template method
 
Lezione design patterns 2011 (Peron)
Lezione design patterns 2011 (Peron)Lezione design patterns 2011 (Peron)
Lezione design patterns 2011 (Peron)
 
Testing
TestingTesting
Testing
 
Vb.Net
Vb.NetVb.Net
Vb.Net
 
What's new in C# 7
What's new in C# 7What's new in C# 7
What's new in C# 7
 

More from Marcello Missiroli (20)

Workshop: Introduzione ad TDD
Workshop: Introduzione ad TDDWorkshop: Introduzione ad TDD
Workshop: Introduzione ad TDD
 
Variabili
VariabiliVariabili
Variabili
 
Sviluppo degli algoritmi
Sviluppo degli algoritmiSviluppo degli algoritmi
Sviluppo degli algoritmi
 
5 stadi dello sviluppo di un gruppo
5 stadi dello sviluppo di un gruppo5 stadi dello sviluppo di un gruppo
5 stadi dello sviluppo di un gruppo
 
Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!
 
Big O Notation
Big O NotationBig O Notation
Big O Notation
 
Insegnare Agile
Insegnare AgileInsegnare Agile
Insegnare Agile
 
The Sequel to sql
The Sequel to sqlThe Sequel to sql
The Sequel to sql
 
L'avvento del programmatore sociale
L'avvento del programmatore socialeL'avvento del programmatore sociale
L'avvento del programmatore sociale
 
Il ciclo for
Il ciclo forIl ciclo for
Il ciclo for
 
Lo stack: tipo di dato astratto e implementazione in Java
Lo stack: tipo di dato astratto e implementazione in JavaLo stack: tipo di dato astratto e implementazione in Java
Lo stack: tipo di dato astratto e implementazione in Java
 
Controllo di versione e Git
Controllo di versione e GitControllo di versione e Git
Controllo di versione e Git
 
Ruby in 25 minuti
Ruby in 25 minutiRuby in 25 minuti
Ruby in 25 minuti
 
Moodle: i compiti (homework)
Moodle: i compiti (homework)Moodle: i compiti (homework)
Moodle: i compiti (homework)
 
Uefi: l'eterna lotta tra il bene e il male
Uefi: l'eterna lotta tra il bene e il maleUefi: l'eterna lotta tra il bene e il male
Uefi: l'eterna lotta tra il bene e il male
 
Corso Moodle: presentazione
Corso Moodle: presentazioneCorso Moodle: presentazione
Corso Moodle: presentazione
 
Corso Moodle: perché?
Corso Moodle: perché?Corso Moodle: perché?
Corso Moodle: perché?
 
Il sistema binario
Il sistema binarioIl sistema binario
Il sistema binario
 
Routing dinamico
Routing dinamicoRouting dinamico
Routing dinamico
 
Investire nelle user story
Investire nelle user storyInvestire nelle user story
Investire nelle user story
 

Dal C a Java (1/3)

  • 1. www.googleslidesppt.com _ 30+ Ready Made Google Slides & PowerPoint Presentation for Free Dal C/C++ a Java (in 3*30 minuti) Se sapete già programmare...non riscopriamo l'acqua calda! Parte 1 Marcello Missiroli (prof.missiroli@gmail.com)
  • 2. Di che si tratta? 01 02 03 04 Ipotesi Voi conoscete già un linguaggio di programmazione (C e/o C++) Tesi Non occorre rispiegare tutto daccapo: applicheremo un insegnamento differenziale Metodologia Trasformeremo un programma che ben conoscete (in C/C++) in un programma Java Verifica Poi toccherà a voi convertire un programma!
  • 3. Hello world (C++) Uno Hello world classico. #include <iostream> using namespace std; int main() { cout << "Hello, World!"<<endl; return 0; }
  • 4. Passo 1 Eliminamo gli include #include <iostream> using namespace std; int main() { cout << "Hello, World!"<<endl; return 0; }
  • 5. Passo 1 Eliminamo gli include #include <iostream> using namespace std; int main() { cout << "Hello, World!"<<endl; return 0; } Java possiede un meccanismo equivalente chiamato import, ma in questo caso non serve
  • 6. Passo 2 Eliminamo i namespaces #include <iostream> using namespace std; int main() { cout << "Hello, World!"<<endl; return 0; }
  • 7. Passo 2 Eliminamo i namespaces #include <iostream> using namespace std; int main() { cout << "Hello, World!"<<endl; return 0; }
  • 8. Passo 2 Eliminamo i namespaces #include <iostream> using namespace std; int main() { cout << "Hello, World!"<<endl; return 0; } Java possiede i package, un modo elegante per organizzare i programmi, ma non sono esattamente la stessa cosa
  • 9. Passo 3 Indichiamo i modificatori alla funzione (metodo in Java) #include <iostream> using namespace std; public static int main() { cout << "Hello, World!"<<endl; return 0; }
  • 10. Passo 3 Indichiamo i modificatori di funzione (metodo) #include <iostream> using namespace std; public static int main() { cout << "Hello, World!"<<endl; return 0; } Java possiede vari modificatori di accesso: public, package, protected, private (in ordine di “ristrettezza”) static indica che si tratta di un metodo statico, Ovvero legato alla classe e non a un oggetto.
  • 11. Passo 4 Cambiamo l'intestazione del metodo, piuttosto diversa #include <iostream> using namespace std; public static void main(String[] args) { cout << "Hello, World!"<<endl; return 0; }
  • 12. Passo 4 Cambiamo l'intestazione del metodo, piuttosto diversa #include <iostream> using namespace std; public static void main(String[] args) { cout << "Hello, World!"<<endl; return 0; } Parametro obbligatorio. Notare che String fa parte del core del linguaggio Il metodo è di tipo void, va quindi tolto il valore di ritorno obbligatorio.
  • 13. Passo 5 Cambiamo il modo con cui si stampa #include <iostream> using namespace std; public static void main(String[] args) { System.out.println("Hello, World"); return 0; }
  • 14. Passo 5 Cambiamo il modo con cui si stampa #include <iostream> using namespace std; public static void main(String[] args) { System.out.println("Hello, World"); return 0; } Non esistono gli stream. println (e print) sono metodi (o funzioni) che richiedono come parametero una stringa
  • 15. Passo 6 I metodi sono sempre all'interno di una classe. Il file deve avere lo stesso nome della classe (.java) public class HelloWorld { <iostream> public static void main(String[] args) { System.out.println("Hello, World"); return 0; } }
  • 16. Agenda Style Riassunto l Il programma si avvia tramite il metodo main l Si usano virgolette per delimitare le stringhe e le graffe per racchiudere i blocchi. l I tipi di dati fondamentali sono assai simili (int, float, double, perfino void) l Case-sensitive. l Si possono importare librerie (con diversa sintassi) Similitudini l Le funzioni si chiamano metodi l Il main ha parametri diversi (I/O) l Ci sono particolari regole di accesso l L'I/O su console è integrato nel linguaggio e ha sintassi diversa l I metodi si possono essere statici o dinamici l Non esistono metodi “liberi”. Sono sempre inseriti all'interno di una classe, a sua volta contenuta in un file .java dallo stesso nome (attenti alle maiuscole, ANCHE se usate Windows) Differenze
  • 17. Agenda Style Riassunto #include <iostream> using namespace std; int main() { cout << "Hello, World!"; return 0; } C++ public class HelloWorld { public static void main(String[] args) { System.out.println("He llo, World"); } } Java
  • 18. Grazie per l'attenzione Spero di essere stato chiaro....
  • 19. Agenda Style Compito #include <iostream> using namespace std; int main() { int a=2, b=3; cout << "Risultato: "; cout << a+b << endl; return 0; } C++ ? Java

Editor's Notes

  1. 2