KHARKIV National University of Economic Université Lumière … · 2019. 6. 17. · Organisation...
Transcript of KHARKIV National University of Economic Université Lumière … · 2019. 6. 17. · Organisation...
![Page 1: KHARKIV National University of Economic Université Lumière … · 2019. 6. 17. · Organisation du projet. Environnement NetBeans (2) Code source Environnement NetBeans (3) ...](https://reader033.fdocuments.in/reader033/viewer/2022060908/60a27acded75ce75b1249c95/html5/thumbnails/1.jpg)
Introduction au
Langage JavaMaster Informatique 1ère année
Julien Velcinhttp://mediamining.univ-lyon2.fr/velcin
Université Lumière Lyon 2KHARKIV National University of Economic Plan du cours
• Introduction au langage Java• Programmation Orientée Objet• Notions complémentaires• Quelques API standards• Interface graphique en Java FX• API pour la recherche d’information
Historique du langagehttps://www.baeldung.com/oracle-jdk-vs-openjdk
• Java 1.0 (1995) : Oak...
• Java 1.5.0 (2004) ou Java 5.0 : Tiger• Java 1.6.0 (2006) ou Java 6 : Mustang• Java 7 (2012) : Dolphin
Oracle JDK• Java SE 8 (2014)
free public updates -> 2020...
• Java SE 11 (sept. 2018)(dernière LTS)
OpenJDK(JDK project)• OpenJDK 8 (2014)...• OpenJDK 9 (2017)• JDK 10 (mars 2018)• JDK 11 (sept 2018)
2010
Et aussi
• Trois versions : JavaEE, JavaME et JavaSE
• Différence entre Java Runtime Environment(JRE) et Java SDK (JDK)
• Oracle JDK– Oracle Binary Code License Agreement -> GPL v2 + CPE
– besoin d’une licence commerciale
– plus stable
• Open JDK– GNU General Public License (GNU GPL)
– complètement open source, utilisable librement
– développé par Oracle, JDK et la communauté Java
![Page 2: KHARKIV National University of Economic Université Lumière … · 2019. 6. 17. · Organisation du projet. Environnement NetBeans (2) Code source Environnement NetBeans (3) ...](https://reader033.fdocuments.in/reader033/viewer/2022060908/60a27acded75ce75b1249c95/html5/thumbnails/2.jpg)
Caractéristiques
• Langage interprété (bytecode)WORA : Write Once Run Anywhere
• Langage orienté objet• Gestion des exceptions• Garbage collector
Code Byte-Code
Pseudo compilateurjavac
Machine virtuelle(JVM) java
Exécution
â haut niveauâ portabilité
â réutilisabilitéâ extensibilité
â robustesseâ intégrité
Dans le fichier Hello.java, écrire :
• Ouvrir la ligne de commande (DOS, bash)• Se placer dans le répertoire de travail (cd nom_repertoire)• Tapez javac Hello.java (création du pseudo code)• Puis java Hello (interprétation du pseudo code)
public class Hello{
public static void main(String [] arg){System.out.print(" Hello world ");}
}
Mon premier programme
Variables d�environnementSous Windows :• Mise à jour du chemin de la JVM :
set path=%path%;c:\Program Files\Java\jdk1.5.0_06\bin
• Mise à jour du chemin de recherche des classes : set classpath=%classpath%;.
Sous Linux ou MacOS (architecture UNIX) :• Mise à jour du chemin de recherche des classes :
export CLASSPATH=$CLASSPATH:.
Environnement NetBeans (1)
Organisation du projet
![Page 3: KHARKIV National University of Economic Université Lumière … · 2019. 6. 17. · Organisation du projet. Environnement NetBeans (2) Code source Environnement NetBeans (3) ...](https://reader033.fdocuments.in/reader033/viewer/2022060908/60a27acded75ce75b1249c95/html5/thumbnails/3.jpg)
Environnement NetBeans (2)
Code source
Environnement NetBeans (3)
Exécution (texte) du programme
Environnement NetBeans (4)
• Quelques raccourcis TRES utiles :
– Ctrl + Shift/Cmd + i : import automatique
– Cmd + Shift + C : toggle comments
– Clic droit + Insert Code
– St + tab : String
– sout + tab : System.out.println…
– ifelse : if (cond.) {} else {}
Environnement ECLIPSE (1)
Organisation du projet
![Page 4: KHARKIV National University of Economic Université Lumière … · 2019. 6. 17. · Organisation du projet. Environnement NetBeans (2) Code source Environnement NetBeans (3) ...](https://reader033.fdocuments.in/reader033/viewer/2022060908/60a27acded75ce75b1249c95/html5/thumbnails/4.jpg)
Environnement ECLIPSE (2)
Code source
Environnement ECLIPSE (3)
Organisation de la classe
Environnement ECLIPSE (4)
Exécution (texte) du programme
Types de données simples (1)• Entiers (1, 2, 3, …) : int
Opérateurs : + - * / % (reste de la divistion)
Exemple : 5/2 = 2 et 5%2 = 1
• Réels (2.4, 3.1416, …) : doubleOpérateurs : + - * /Exemple : 5.0/2.0 = 2.5
• Booléens (true, false) : booleanOpérateurs : && (and), || (or), ! (not)Exemple : !true = false
Note : pas de type simple pour les chaînes de caractères
![Page 5: KHARKIV National University of Economic Université Lumière … · 2019. 6. 17. · Organisation du projet. Environnement NetBeans (2) Code source Environnement NetBeans (3) ...](https://reader033.fdocuments.in/reader033/viewer/2022060908/60a27acded75ce75b1249c95/html5/thumbnails/5.jpg)
Types de données simples (2)
Type Codage DomaineChar 2 octets caractère Unicode
int 4 octets [-231, 231-1]
long 8 octets [-263, 263 -1]
byte 1 octet [-27 , 27 -1]
short 2 octets [-215, 215-1]
float 4 octets [3.4 10-38, 3.4 10+38] en valeur absolue
double 8 octets [1.7 10-308 , 1.7 10+308] en valeur absolue
boolean 1 bit true, false
String référence d'objet chaîne de caractères
Date référence d'objet date
Caractères spéciaux\ caractère d�échappement pour introduire caractères spéciaux
'\t' tabulation'\n' nouvelle ligne'\r' retour chariot retour arrière'\f' saut de page…
'\\' '\�' '\"�
�\u03a9� ( \u suivi du code hexadécimal à 4 chiffres d�uncaractère Unicode)
Types de données simples (3)
i
10i
11i
Valeurs
• Déclaration de variables :
int i; Nom de la variable,représente un espace mémoire.
Type de la variable,ce que peut contenir l’espace mémoire.
• Affectation :i = 10;i = i + 1;
int j = 11;
Types de données simples (4)• Opérateurs de comparaison :<, <=, >, >=, !=, ==
boolean ¬ var_type_1 opérateur var_type_1
Exemple :
boolean b = (5<2); // b = false
â ne pas confondre avec =
commentaire
![Page 6: KHARKIV National University of Economic Université Lumière … · 2019. 6. 17. · Organisation du projet. Environnement NetBeans (2) Code source Environnement NetBeans (3) ...](https://reader033.fdocuments.in/reader033/viewer/2022060908/60a27acded75ce75b1249c95/html5/thumbnails/6.jpg)
Opérateurs d�entrées / sorties• Sortie :System.out.print("Ecrit à l'écran");System.out.println("Et passe à la ligne");
• Entrée :System.in.read( … );
Utiliser la classe Scanner du package java.util :Scanner scan = new Scanner(System.in);int i = scan.nextInt();String s = scan.nextLine();
Structures de contrôle (1)• Branchement conditionnel :
Syntaxe :
(facultatif)
if (condition){
instructions}else{instructions}
if (condition)
instruction
else
instruction
Structures de contrôle (2)Exemple (saisie d’information) :
public class Saisie {
public static void main(String [] arg) {System.out.println(“Pause ?");int reponse = Lire.i();if (reponse==1)
System.out.println(“Non, continuons.");else
System.out.println(“Oui, dans 1 heure.");}
} Tous les autres cas
Ne pas oublier !
Structures de contrôle (3)• Branchement multiple :
Syntaxe :
switch (variable_énumérable) {case valeur_1 :
instructionsbreak;
case valeur_2 :instructionsbreak;
default :instructions
}
Nouveauté Java 7 : String supportée
![Page 7: KHARKIV National University of Economic Université Lumière … · 2019. 6. 17. · Organisation du projet. Environnement NetBeans (2) Code source Environnement NetBeans (3) ...](https://reader033.fdocuments.in/reader033/viewer/2022060908/60a27acded75ce75b1249c95/html5/thumbnails/7.jpg)
• Boucles indicées :L�exécution est contrôlée par un indice Þ nombre d�itérations
connu à l�avance.Syntaxe :
Exemple :
Structures de contrôle (4)
for (indice=0; indice<30; indice++) {System.out.println(indice); // réalisée 30 fois}
Exécuté 1 fois Exécuté à chaque fois
Continue tant que condition = vrai
for ( initialisation ; condition_de_boucle ; évolution ) {instructions;}
Structures de contrôle (5)• Boucles conditionnelles :L�exécution est contrôlée par une condition
â nombre d�itérations inconnu par avance.Syntaxe :
while ( condition ){instructions;}
Continue tant que condition = vrai
do {instructions;} while ( condition )
(On peut ne pas rentrer) (On rentre au moins une fois)
Fonctions et procédures (1)• Problème :
o Programme trop longo Copier/Coller
• Solution :Créer des blocs isolés réutilisables = fonctions et procédures
Syntaxe :public class nom_classe {
…public static type_retour nom_fonction(type_param nom_param1, …){
instructions; return valeur;
}…
}
Fonctions et procédures (2)Exemple :
public class UneFonction {
public static double la_fonction(int param_1) {System.out.println("Paramètre de la fonction: "+ param_1);return param_1*2;
}
public static void main(String arg[]) {System.out.println("Avant l'appel");int pour_fonction = 23;int resultat_fct = la_fonction(pour_fonction);System.out.println("Résultat de la fonction: "+resultat_fct);
}}
Avant l’appelParamètre de la fonction: 23Résultat de la fonction: 46
![Page 8: KHARKIV National University of Economic Université Lumière … · 2019. 6. 17. · Organisation du projet. Environnement NetBeans (2) Code source Environnement NetBeans (3) ...](https://reader033.fdocuments.in/reader033/viewer/2022060908/60a27acded75ce75b1249c95/html5/thumbnails/8.jpg)
Fonctions et procédures (3)• Procédure :
o Type retour vide â voido Pas d’instruction return
Exemple :
public static void main( … )
Tableaux (1)• Déclaration :
type[] nom_tableau; Û type nom_tableau [];
Ex.: double[] t_d;
• Instanciation :nom_tableau = new type [taille];
Ex.: t_d = new double[4];
• Accès aux cellules du tableau :o Ecriture : t_d[0] = 3.2;
o Lecture : double d = t_d[0];
3.2
d
t_d
t_d
t_d
3.2
t_d[3]t_d[0]
Æ
Tableaux (2)• Autres :
o Instanciation à la volée :double t_d[] = {0.3,9.0,1.2,4.6 };
o Taille du tableau :t_d.length
Exemple :
for (int i=0;i<t_d.length;i++){
System.out.println("valeur case " + i + ":"+ t_d[i]);
}
Projet : une base d’actualité
• Objectif des TDs :– Construire un système d’information pour stocker et
interroger des news– Noyau du projet qui sera demandé pour l’évaluation
de cet enseignement
• Plusieurs étapes :– TD1 : squelette du SI sans interface graphique– TD2 : héritage, flux, manipulation de chaînes de
caractères, ajout d’une interface graphique– TD3 : indexation des textes avec Lucene
![Page 9: KHARKIV National University of Economic Université Lumière … · 2019. 6. 17. · Organisation du projet. Environnement NetBeans (2) Code source Environnement NetBeans (3) ...](https://reader033.fdocuments.in/reader033/viewer/2022060908/60a27acded75ce75b1249c95/html5/thumbnails/9.jpg)
Petite démonstration Plan du cours
• Introduction au langage Java• Programmation Orientée Objet• Notions complémentaires• Quelques API standards• Interface graphique en Java FX• API pour la recherche d’information