PROB Introduction au langage JAVA

Documents pareils
Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Plan du cours. Historique du langage Nouveautés de Java 7

Programmer en JAVA. par Tama

as Architecture des Systèmes d Information

TP1 : Initiation à Java et Eclipse

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Java Licence Professionnelle CISII,

PROGRAMMATION PAR OBJETS

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Langage Java. Classe de première SI

TD3: tableaux avancées, première classe et chaînes

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Généralités sur le Langage Java et éléments syntaxiques.

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Cours 1: Java et les objets

Chapitre I Notions de base et outils de travail

Java Licence Professionnelle CISII,

1. Langage de programmation Java

Programmation en Java IUT GEII (MC-II1) 1

Java c est quoi? Java pourquoi?

Utilisation d objets : String et ArrayList

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Initiation à JAVA et à la programmation objet.

Une introduction à Java

INITIATION AU LANGAGE JAVA

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Programmation Orientée Objets Le Langage JAVA

Introduction au langage C

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Apprendre Java en 154 minutes

TP, première séquence d exercices.

Tp 1 correction. Structures de données (IF2)

INF 321 : mémento de la syntaxe de Java

Algorithmique et Programmation, IMA

Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5

Chapitre 10. Les interfaces Comparable et Comparator 1

Notions fondamentales du langage C# Version 1.0

Bases Java - Eclipse / Netbeans

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

TP1 : Initiation à Java et Eclipse

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

ACTIVITÉ DE PROGRAMMATION

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

JAVA. Introduction à la programmation objet avec java 1/4. Nadir BOUSSOUKAIA

TP1. Outils Java Eléments de correction

RN2-Programmation Orientée Objet - JAVA CH 1 Introduction à la POO et Java

Introduction au langage Java

Héritage presque multiple en Java (1/2)

Eclipse atelier Java

Solutions du chapitre 4

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

Programmation Réseau. Sécurité Java. UFR Informatique jeudi 4 avril 13


Programmation Objet Java Correction

Exercices sur les interfaces

Annexe : La Programmation Informatique

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Cours d Algorithmique et de Langage C v 3.0

Anne Tasso. Java. Le livre de. premier langage. 6 e édition. Groupe Eyrolles, 2000, 2002, 2005, 2006, 2008, 2010, ISBN :

Programme Compte bancaire (code)

Projet de programmation (IK3) : TP n 1 Correction

Threads. Threads. USTL routier 1

Programmation Par Objets et Langage Java

Java DataBaseConnectivity

Auto-évaluation Programmation en Java

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

Structurer ses données : les tableaux. Introduction à la programmation

Package Java.util Classe générique

Introduction. Introduction au langage Java. Un livre de Wikilivres.

UE Programmation Impérative Licence 2ème Année

Corrigé des exercices sur les références

Java Licence professionnelle CISII,

COMPARAISONDESLANGAGESC, C++, JAVA ET

Introduction à Java. Philippe Genoud.

Programmation Orientée Objet

Derrière toi Une machine virtuelle!

Introduction à l algorithmique et à la programmation M1102 CM n 3

TP 1. Prise en main du langage Python

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Java - la plateforme

JAVA TD0. Prise en main du langage Environnement de base JAVA 1

Les bases de l informatique et de la programmation. École polytechnique

Traitement de données

Cours d initiation à la programmation en C++ Johann Cuenin

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

La technologie Java Card TM

Programmation Orientée Objet Java

La carte à puce. Jean-Philippe Babau

Programmation Orientée Objet application au langage Java Version Novembre 2007

Gestion distribuée (par sockets) de banque en Java

Aide mémoire UML & Java 1ère partie : Introduction. marc.lemaire@u-cergy.fr

STAGE IREM 0- Premiers pas en Python

Prendre le marteau, le tableau, le mètre, le crayon, la ficelle, le clou, la pointe ;

Premiers Pas en Programmation Objet : les Classes et les Objets

Transcription:

PROB Introduction au langage JAVA EPFC ULB 1

BACHELIER en INFORMATIQUE de Gestion PRMT(1) 120p. LAPR(2) 120p. PR(1) PROB(10) 120p. PR(1) PRDV(4) 40p. PR(2 ou 9) COFI(20) 60p. GBDR(5) 120p. LAOG(9) 120p. PR(1) INID(21) 20p. STO2(6) 60p. ORMA(8) SYS2(7) 100p. MAP2(3) 60p. GNET(12) 120p. PR(7) 40p. ANPM(11) GBS1 BSIS(15) 240p. ICOM(13) 40p. 80p. STAT(14) 40p. GBS2(16) 80p. DGUI(17) 40p. PR(5+10) GBS3(23) 80p. PR(16) ANC2(18) 120p. PR(5+11) DNE2(19) 40p. PR(5+10+12) BIEI(24) PR(1 à 23) SBIN(22) 120p. PR(2ou9+5+7+15) 1 er semestre 2è semestre 1 er semestre 2è semestre 1 er semestre 2è semestre PROB - A. Silovy et B. Verhaegen 2 «PR» étant le ou les pré-requis nécessaire(s) pour pouvoir accéder à l UF

Plan général du cours (tentative) Introduction au langage Java (+/- 3 séances) Java Orienté Objet (+/- 12 séances) Introduction aux interfaces graphiques (+/- 3 séances) Conception Orientée Objet (+/- 6 séances) Programmation concurrente (+/- 4 séances) 3

Evaluation Interrogations régulières Deux (ou trois) projets Examen en juin 4

? Langage de programmation orienté objet créé par Sun Microsystems, racheté récemment par Oracle. Points forts : langage portable entre différents OS. librairies standards (API Java) : String, Math, File, Zip, Network, Mail, Le code Java est compilé en un langage intermédiaire (bytecode) sur une machine virtuelle (JVM) multi plates-formes. Tout est objet (mis à part les types primitifs). 5

Pourquoi JAVA? 6

Terminologie Java JVM : Java Virtual Machine JRE : Java Runtime Environment Ensemble d outils pour exécuter des programmes Java sur toutes les plates-formes supportées. Est constitué d une JVM et d une bibliothèque standard à toutes les plates-formes. JDK : Java Development Kit JRE + outils de developpement comme le compilateur (javac) qui produit du bytecode qui sera interprété par la JVM. IDE : Integrated Development Environment Ensemble d outils pour le développement logiciel (Ex : Eclipse, NetBeans) 7

Documentation http://docs.oracle.com/javase/7/docs/ : toute la documentation des librairies Java. http://docs.oracle.com/javase/tutorial/ : très bon tutoriaux. 8

Un premier programme Fichier HelloWorld.java : public class HelloWorld { public static void main(string[] args) { System.out.println("Hello, World!"); } } Compilation (va créer un fichier HelloWorld.class) : $> javac HelloWorld.java Exécution : $> java HelloWorld 9

Commentaires Sur une ligne : //ceci est un commentaire Sur plusieurs lignes : /* commentaires */ 10

Types de base Types de valeur simple char : caractère ASCII 'a', '\t', '\n' int : entier sur 32 bits byte, short, long : autres entiers (8, 16, 64 bits) float, double : nombre réel boolean : valeur logique (vrai / faux) true, false Types de référence String : chaîne de caractères "hello", "12ab» Objets et tableaux 11

Opérations arithmétiques Addition (+), soustraction(-) Multiplication (*), division (/) Attention : entier / entier à entier Pour faire une division réelle, il faut qu un des deux opérants soit réel. Modulo (%) : reste de la division entière Ordre d évaluation : Parenthèses * / % puis + - 12

Variables Déclaration Crée une variable Une variable a un type et un nom String message; int somme; Assignation (=) message = "hello"; somme = 8+2; Initialisation (déclaration et assignation) : int somme = 0; Avant de lire une variable, une valeur doit lui être assignée. Sinon le compilateur déclenchera une erreur. 13

Conventions et bonnes pratiques Donner des noms «intelligents» aux variables, fonctions, etc. Définir une convention et s y tenir Exemples : lowercamelcase pour les variables et méthodes/fonctions. UpperCamelCase pour les classes Pour les constantes, mots en majuscules séparés par des '_' Style d indentation Placement des accolades 14

Blocs et visibilité Bloc d instructions contenus entre { } Un bloc est considéré comme une instruction (une instruction composée) Une variable déclarée dans un bloc est visible jusqu à la fin du bloc public static void main(string[] args) { { String message = "hello"; } System.out.println(message); } Est-ce que ce code compile? 15

Visibilité public static void main(string[] args) { String message = "Bonjour"; { String message = "hello"; } System.out.println(message); } Qu affiche(rait) ce programme? "Garde fou" en Java 16

Conversion des types Convertir des String en nombres : double a = Double.valueOf("10.5"); int b = Integer.valueOf("20"); //int b = Integer.parseInt("20"); double c = a + b; Convertir des nombres en String : int i = 123; String strnombre = String.valueOf(i); La classe Double est un Wrapper pour le type primitif double, Integer est un Wrapper pour int 17

Affichage (écriture) sur la console Affichage en terminal : System.out.println( ) Affiche du texte sur une ligne System.out.print( ) Affiche du texte mais ne passe pas à la ligne public class HelloWorld { public static void main(string[] args) { System.out.println("Hello, World!"); } } 18

Lecture au clavier import java.util.*; //importer la librairie "util" public class Program { public static void main(string[] args) { //creation d'un Scanner Scanner s = new Scanner(System.in); //lecture d'une ligne (String) String message = s.nextline(); } } System.out.println(message); Il existe d autres méthodes de Scanner comme nextint(), nextdouble(), 19

Démonstration Lire un entier en console et lui ajouter 10. 20

Opérateurs logiques == : égalité (ne pas confondre avec =)!= : différence (non égalité) && : conjonction (et) : disjonction (ou) <, <=, >, >= : comparaison! : négation Expression logique : a une valeur logique (boolean) (a >= 0 && a <= 100) 21

Un peu de logique == && == et == == ou ==! == non Lois de De Morgan : a b a b a b true true true true true false false true false true false true false false false false a a true false false true 22

Instructions de branchement if(condition) instruction1 instruction2 Les conditions sont des expressions logiques Si la condition est vraie, on exécute instruction1 et instruction2. Si elle est fausse, on exécute seulement instruction2 23

Instructions de branchement if(condition) instruction1 else instruction2 instruction3 24

Composition if(condition1) if(condition2) instruction1 else instruction2 instruction3 if(condition1) instruction1 else if(condition2) instruction2 instruction3 25

Bonnes pratiques Un conseil : écrire les instructions conditionnelles dans un bloc même s il n y en a qu une aide à réduire les erreurs futures. 26

Boucles Permet d exécuter une suite d instructions plusieurs fois Boucle for : Initialisation Condition Changement for(int i=0; i<10; i++) { System.out.println(i); } i++ correspond à i = i+1 27

Boucle while while(condition) instruction 1. La condition est évaluée 2. Si la condition est vérifiée, l instruction est exécutée et 3. on retourne au point 1. 4. Sinon on sort de la boucle. 28

Boucle while String msg = monscanner.nextline(); while(! msg.equals("stop") ) { } System.out.println(msg); msg = monscanner.nextline(); 29

Boucle do while do instruction while(condition); 1. L instruction est exécutée 2. La condition est évaluée 3. Si la condition est vérifiée, on retourne au point 1, sinon on sort de la boucle. L instruction est exécutée au moins une fois 30

Fonctions Groupe d instructions A un type, un nom, prend des paramètres et renvoie une valeur public static int somme(int a, int b) { } int reponse = a + b; return reponse; Remarque : pour l instant, toutes nos fonc5ons sont accompagnées du modificateur static return arrête la fonc,on et renvoie la valeur à l instruc,on appellante. void main() est la fonction principale, le point d entrée du programme Appel d une fonction : int d = somme(15,5); 31

Exemple complet (Demo) 32

Passage de paramètres Les types primitifs (int, double, boolean, char, ) sont passés automatiquement par valeur (copie) aux fonctions. Les types références (String, tableaux, objets, ) sont automatiquement passés par référence (voir plus loin) 33

Passage de paramètres Par valeur : l expression donnée comme argument est évaluée et assignée à la variable locale. public static void main() { int j = -3; System.out.println(abs(j)); System.out.println(j); } public static int abs(int i) { //ici, i vaut -3 if(i<0){ i = -i; } return i; //renvoie 3 } sortie : 3-3 34

Tableaux (array) Tableau d objets du même type (vecteur) Sa taille est fixe int[] tableau = new int[10]; int[] tableau2 = {1,2,3,4}; Les cases sont indicées de 0 à n-1 tableau[0] = 1; montableau.length renvoie la taille du tableau length et pas length() contrairement aux Strings Remarques : Un tableau est passé par référence à une fonction. C est à dire qu une fonction qui reçoit un tableau peut modifier ce tableau. Attention à ne pas lire à l extérieur du tableau 35

Parcours d un tableau int[] tableau = {1,2,3,4}; for(int i=0; i<tableau.length; i++) { } System.out.print(tableau[i]); System.out.print("\n"); 36

Boucle Foreach Autre façon de parcourir un tableau dans son ordre naturel (ou plus généralement, une collection) 37

Classe String En Java, les chaînes de caractères sont des objets immuables. Création : String greeting = "Hello world!"; Longueur : int longueur = greeting.length(); Accès à un caractère : char c = greeting.charat(2); Concaténation : String string3 = string1.concat(string2); String machaine = Hello, + world +! ; Affichage en console : System.out.println( I say : + greeting); 38

Comparaison de strings En Java, les chaînes de caractères sont des objets immuables. Pour rappel, String n est pas un type primitif. string1.equals(string2) renvoie true si les deux chaines sont égales Attention : s1 == s2 n est pas équivalent à s1.equals(s2) ne pas utiliser == pour comparer des strings s1.compareto(s2) renvoie -1 si s1 est avant s2 0 si s1 est égal à s2 +1 si s1 est après s2 39