Cours1 +Cours 2. Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1



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

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

Programmer en JAVA. par Tama

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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

as Architecture des Systèmes d Information

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

PROGRAMMATION PAR OBJETS

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

Initiation à JAVA et à la programmation objet.

Java Licence Professionnelle CISII,

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

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

TP1 : Initiation à Java et Eclipse

Cours 1: Java et les objets

Langage Java. Classe de première SI

Java Licence Professionnelle CISII,

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

INITIATION AU LANGAGE JAVA

COMPARAISONDESLANGAGESC, C++, JAVA ET

Chapitre I Notions de base et outils de travail

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

Une introduction à 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

Flux de données Lecture/Ecriture Fichiers

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

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

ACTIVITÉ DE PROGRAMMATION

1. Langage de programmation Java

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

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

Introduction au langage C

Programmation en Java IUT GEII (MC-II1) 1

Java Licence professionnelle CISII,

Java c est quoi? Java pourquoi?

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

Programmation Orientée Objet

Java - la plateforme

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

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

INF 321 : mémento de la syntaxe de Java

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

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

TP1. Outils Java Eléments de correction

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

Introduction au langage Java

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

La technologie Java Card TM


Apprendre Java en 154 minutes

Programmation Objet Java Correction

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

La carte à puce. Jean-Philippe Babau

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

Algorithmique et Programmation, IMA

Solutions du chapitre 4

Vulgarisation Java EE Java EE, c est quoi?

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

4. Groupement d objets

Traitement de données

Notions fondamentales du langage C# Version 1.0

CPR Informatique. (poste 3159 ou 3164) Septembre 2002

Bases Java - Eclipse / Netbeans

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

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

Utilisation d objets : String et ArrayList

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Programmation Orientée Objets Le Langage JAVA

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

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

TP, première séquence d exercices.

Auto-évaluation Programmation en Java

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

Java au cœur de la base de données Oracle

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

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

Introduction à Java. Philippe Genoud.

CIE303 - Programmation Orientée Objet en Java

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

Initiation à la programmation orientée-objet avec le langage Java

JAVA 8. JAVA 8 - Les fondamentaux du langage. Les fondamentaux du langage Java. Avec exercices pratiques et corrigés JAVA 8 29,90.

TP1 : Initiation à Java et Eclipse

Environnements de développement (intégrés)

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

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

TP 1. Prise en main du langage Python

Support de cours et TD Programmation Orientée Objet

UE C avancé cours 1: introduction et révisions

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

Programmeur Java 1.4 et 5.0

Premiers Pas en Programmation Objet : les Classes et les Objets

Cours d Algorithmique et de Langage C v 3.0

Conventions d écriture et outils de mise au point

Tutoriel BlueJ. Michael Kölling Mærsk Institute University of Southern Denmark. Version 1.4 fr-2 par le groupe Sigma 1 pour BlueJ Version 1.2.

Claude Delannoy. 3 e édition C++

Initiation à la Programmation Java

Remote Method Invocation (RMI)

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

Transcription:

Cours1 +Cours 2 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1

Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types outils de modélisation Réutilisation et extension des composants programmation modulaire C++, Java,... POO 2

Le langage Java Charon (Edition Hermes) Java 5 R. Chevallier (Edition Pearson) La programmation objet en Java M.Divay (Edition Dunod) Exercices en java C. Delannoy (Edition Eyrolles) Effective Java G. Steele (Edition Addison Wesley) Java tutorial http://java.sun.com/tutorial Absolute Java W. Savitch(Edition Pearson) POO 3

JAVA: langage orienté objet portable sans compilation du fichier source Programme en Java ----> Compilateur Java ----> Bytecode Bytecode ----> Interpréteur Java ----> Exécution Interpréteur Java = machine virtuelle Java (JVM)+ bibliothèques de classes (API) exécution à distance interprétation est plus lente que l exécution en langage machine POO 4

Il existe 2 types de programmes avec la version standard de Java les applications (stand alone program): exécutées sous le contrôle d un Système d Exploitation méthode main est appelée par JVM les applets: applications chargées par un navigateur intégrées à une page HTML, visualisées par un navigateur ou appletviewer POO 5

Java est livré avec un grand ensemble de classes (bibliothèque de classes) appelé API (Application Programming Interface). Le pseudocode est relativement petite, car les bibliothèques de classe ne sont liées à l exécution java.lang (les classes plus centrales du langage, classe Object) java.io (classes pour I/O) java.net (programmation à travers réseau) java.awt (composants graphiques de base) javax.swing (classes pour interfaces graphiques) java.applet (applet, application téléchargeable du Web) http://www.javasoft.com POO 6

trois plateformes d'exécution (ou éditions) Java Standard Edition (J2SE / Java SE) : environnement d'exécution et ensemble complet d'api sert de base en tout ou partie aux autres plateformes Java Enterprise Edition (J2EE / Java EE): environnement d'exécution reposant intégralement sur Java SE pour le développement d'applications d'entreprises Java Micro Edition (J2ME / Java ME): environnement d'exécution et API pour le développement d'applications sur appareils mobiles et embarqués POO 7

1996 Java Development Kit JDK 1.0.1(Sun))... 2006 (déc.) Java SE 6.0 2009(déc.) Java EE 6.0 2010 (janv.) rachat de Sun par Oracle 2011 (juillet) Java SE 7.0 La documentation au format HTML des API de Java est fournie séparément. Elle est indispensable pour obtenir des informations complètes sur les classes Les outils Sun: javadoc, jar,... Les outils libres: netbeans, eclipse, ant, POO 8

import java.io.*; public class Program1 { public static void main(string[] args) { System.out.println( "hello"); } } Nom du fichier: Program1.java Compilation: javac Program1.java Pour chaque classe=un ficher compilé avec le même nom suivi de.class Exécution: java Program1 String et System sont des classes définies dans java.lang (inclus par défaut) import java.io.* :inclure les classes de la bibliothèque I/O POO 9

Fichier source avec extension.java Il peut contenir plusieurs classes mais au plus une classe avec modificateur de visibilité public Cette classe doit contenir la méthode main public static void main(string[] args) {//données et instructions } Le nom du fichier source est celui de cette classe suivi de l extension.java POO 10

Une classe est définie par un un ensemble d attributs (champs, variables, propriétés) et d un ensemble de méthodes (fonctions). Une classe génère en général un modèle d objet. Objet = une instance (réalisation) de classe Il existe des règles de visibilité entre les classes et entre les attributs et les méthodes qu elles contiennent. Les classes elles-mêmes sont regroupées en unités logiques cohérentes appelées paquetages (package). POO 11

import.; //mettre les noms des classes prédéfinies à utiliser class //mettre le nom de la classe {. //mettre les déclarations des attributs... //mettre le code des méthodes } //fin de la déclaration de la classe. public class //mettre comme nom de classe le nom du fichier texte { public static void main(string args[]) //écriture obligatoire {.. //ici le code de la fonction main.. } } POO 12

Déclaration d une classe Le nom de la classe est spécifié après le mot clé «class» Le corps de la classe est délimité par des accolades On définit dans le corps les attributs et les méthodes qui constituent la classe } class Test { < corps de la classe > POO 13

Définition d une méthode Une méthode est constituée de : D un nom D un type de retour De paramètres (éventuellement aucun) D un bloc d instructions Un paramètre est constitué : D un type D un nom «void» est le mot-clé signifiant que la méthode ne renvoie pas de valeur class Test { int calculer (int taux, float delta) { < corps de la méthode > } } POO 14

Déclaration d une variable Une variable possède un type et un nom Le type peut être un type de base ou une classe L initialisation d une variable peut se faire au moment de la déclaration { } int compteur; int indice = 0; Voiture golf; Voiture twingo = new Voiture(); POO 15

Portée d une variable La portée d une variable s étend jusqu à la fin du bloc dans lequel elle est définie { { } int compteur; // compteur est accessible } // compteur n est plus accessible POO 16

class Personne { private String nom; private int annee_n; private int salaire; //les attributs public Personne(String n, int a, int s) { nom=n; annee_n=a; salaire=s; } //méthode constructeur public void affiche() { System.out.println(nom+" "+ annee_n+" "+salaire); } public void calcul_age() { int age=2006-annee_n; System.out.println(" age=" +age); }} POO 17

public class Person1 { public static void main(string args[]) { Personne p1= new Personne("dupont ",1961, 1700); Personne p2= new Personne("bernard",1981, 1400); p1.affiche(); p2.affiche(); p1.calcul_age(); p2.calcul_age(); p1.calcul_age(); } } POO 18

Les attributs sont private : ils ne seront accessibles que par les méthodes de l objet Les méthodes sont public : elles peuvent être appelées depuis une autre classe (Par exemple par la méthode main) Chaque classe a une méthode constructeur qui porte le même nom que la classe est déclarée public ne retourne rien p1= new Personne("dupont",19561,1700) new est une instruction qui alloue la mémoire pour l objet appelle la méthode constructeur retourne l adresse de l objet ainsi construit POO 19

Noms de classes commencent par une majuscule Noms de méthodes commencent par une minuscule 2 types de variables ordinaires : entiers: byte(8 bits), short (16),int (32), long(64) réels : float (32) double(64) caractères : unicode booléen type classe : a pour valeur l adresse de l objet POO 20

Types de données primitifs Copyright 2008 Pearson Addison-Wesley. All rights reserved POO 21

le transtypage (cast): byte -->short-->int-->long-->float-->double byte b; short p; int n; long q; float x; double y; b=n; erreur b=25; b=500; erreur x=2*q; p=b*b; (int) 2.9 vaut 2 int i= (int) 5.5; POO 22

Syntaxe similaire au C Commentaire : // commentaire jusqu à la fin /* Commentaire */ Constantes : variables précédées par final final double PI =3.1415926535; Opérateurs arithmétiques : +, -, *, /, +=, -=, *=, /= %(modulo), ++, -- Opérateurs de comparaison := >, >=, <, <=, ==,!= Opérateurs logiques : &&,,! Opérateurs de décalage : <<, >> Règles de précédence : -, ++, -- (opérateurs avec 1 seul argument) *,/, % (opérateurs multiplicatifs avec 2 arguments) +, - (opérateurs additifs avec 2 arguments) POO 23

Classe String Il n y a pas de type primitif (ordinaire) string String: une classe prédéfinie String a = "bonjour"; concaténation: + a+ "Bonjour"; bonjourbonjour String greeting = "Hello"; int count = greeting.length(); System.out.println("Length is " + greeting.length()); POO 24

Objet System.out Méthodes : println, print System.out.println("The answer is " + 42); à partir de la version 5.0 printf double prix = 19.8; System.out.print("$"); System.out.printf("%6.2f", prix); $ 19.80 POO 25

POO 26 Copyright 2008 Pearson Addison-Wesley. All rights reserved

Classe Scanner à partir de la version 5.0 import java.util.scanner Scanner keyboard = new Scanner(System.in); ou Scanner x = new Scanner(System.in); int n = keyboard.nextint(); double d1 = keyboard.nextdouble(); String word1 = keyboard.next(); (délimiteur: espace) String line = keyboard.nextline(); String line = keyboard.nextline(); POO 27

Scanner keyboard = new Scanner(System.in); int n = keyboard.nextint(); String s1 = keyboard.nextline(); String s2 = keyboard.nextline(); si on tape 2 bonjour ca va salut quelles sont des valeurs de n, s1, s2? POO 28

if (Expression booléenne) { } else { } else facultatif max = (n1 > n2)? n1 : n2; switch (i){ case 1: a=5; break; case 2: case 3: a=6; break; default : a=7; //facultatif break; //facultatif } POO 29

for (i=0;i<10;i++){ } while (Expression booléenne ) { } do{ } while (Expression booléenne ) break: sortir de la boucle ou switch le plus proche continue: annule l itération en cours System.exit(n): sortir du programme n=0 exécution normale POO 30