[PDF] [PDF] Les bases de la programmation orientée objet avec Java - IGM

Dans la technologie Java, on a donc besoin ➢ Du langage de programmation et du compilateur ➢ Et plein de commandes bien utiles: jar, javap, javadoc, etc



Previous PDF Next PDF





[PDF] Apprenez à programmer en Java - grug

8 jan 2013 · Java est un langage de programmation moderne développé par Sun Microsystems (aujourd'hui racheté par Oracle) Il ne faut surtout pas le 



[PDF] Apprenez à programmer en Java

24 sept 2011 · Java est un langage de programmation moderne développé par Sun Microsystems (aujourd'hui racheté par Oracle) Il ne faut surtout pas le 



[PDF] Programmer en Java - LIRMM

AUX EDITIONS EYROLLES Du même auteur C DELANNOY – Exercices en Java N°11989, 2e édition, 2006, 340 pages C DELANNOY – Apprendre le C++



[PDF] Apprenez à programmer en Java Cyrille Herby - Le blog

30 mar 2011 · Apprenez à programmer en Java de Cyrille Herby aborde le langage de programmation incontournable des professionnels Grâce à 40 chapitres 



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

Le langage Java est un langage généraliste de programmation synthétisant les Le meilleur moyen d'apprendre à écrire des interfaces graphiques est de 



[PDF] Résumé du cours de Programmation Java - CNRS

Cette section couvre une partie du programme de deuxième année On peut également définir ses propres objets C'est ce que nous allons apprendre à faire ici, 



[PDF] Les bases de la programmation orientée objet avec Java - IGM

Dans la technologie Java, on a donc besoin ➢ Du langage de programmation et du compilateur ➢ Et plein de commandes bien utiles: jar, javap, javadoc, etc



[PDF] Apprendre Java et C++ en parallèle - Academie pro

Apprendre à programmer avec des applications graphiques Ces deux langages de programmation, Java et C++, sont très semblables, tout au moins



[PDF] La Programmation en Java - www6inrafr

Un premier programme Page 10 II La syntaxe du langage Java II 1 Un premier programme public class PremProg { public static void main(String args[])

[PDF] apprenez ? programmer en javascript pdf

[PDF] apprendre ? programmer en java cyrille herby pdf

[PDF] apprenez ? programmer en c++ pdf

[PDF] apprenez ? programmer en java (2e édition) telecharger

[PDF] apprenez ? programmer en java - 2e édition pdf

[PDF] exercices ev3

[PDF] capteur ultrason ev3

[PDF] techniques calcul mental ce1

[PDF] objectif du calcul mental

[PDF] techniques calcul mental cycle 3

[PDF] apprendre caricature gratuitement

[PDF] dessin portrait pdf

[PDF] cours de dessin pdf gratuit

[PDF] technique de dessin au crayon visage

[PDF] apprendre ? dessiner le corps humain pdf

Les bases de la

programmation orientée objet avec Java

Etienne Duris

Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée2Bibliographie et sources ➢Les cours de R

émi Foraxhttp://igm.univmlv.fr/~forax/

➢Le cours de MariePierre B

éalhttp://igm.univmlv.fr/~beal/

➢Java et Internet G. Roussel, E. Duris, N. Bedon et R. Forax. Vuibert 2002. ➢Documentations Java Oracle http://docs.oracle.com/javase/ ➢The Java Language Specification, Third Edition: http://java.sun.com/docs/books/jls/ ➢The Java Virtual Machine Specification, Second Ed: http://java.sun.docs/books/jvms Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée3Il existe diff érents styles de programmation➢Style applicatif ➢Fond

é sur l'évaluation d'expressions qui ne dépendent que de la valeur des arguments, et non de l'

état de la mémoire ➢On parle aussi de programmation fonctionnelle ➢Proche des notations math ématiques, utilise beaucoup la récursivité➢Accepte des arguments, produit un r ésultat (pas d'" effet de bord »)➢Ex: Lisp, Caml, ML, Haskel ➢Style imp

ératif➢Fond

é sur l'exécution d'instructions qui modifient l'état de la m

émoire➢Utilise beaucoup les it

érations et autres structures de contrôle➢Les structures de donn ées sont fondamentales➢Ex: Fortran, C, Pascal Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée4Le style objet ➢C'est un style de programmation o ù l'on considère que des composants autonomes (les objets) disposent de ressources et de moyens d'interactions entreeux. ➢Ces objets repr ésentent des données qui sont modélisées par des classes qui d éfinissent des types ➢un peu comme typedef struct en C ➢En plus de la mani ère dont sont structurés leurs objets, les classes d éfinissent les actions qu'ils peuvent prendre en charge et la mani ère dont ces actions affectent leur état➢ce sont des " messages » ou des " m

éthodes ».

➢Java n'est pas le seul langage objet ➢Simula, Smalltalk, C++, OCaml...

Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée5Les avantages de la programmation objet

➢Les caract éristiques de bases précédemment décrites peuvent ê tre mises en oeuvre dans un style impératif, mais des fonctionnalit és propres au style objet favorisent:➢la programmation modulaire ➢l'abstraction ➢la sp écialisation➢L'objectif est de produire du code ➢facile à développer, à maintenir, à faire évoluer, ➢r éutilisable, tout ou en partie, sans avoir besoin de le dupliquer➢g énérique, et dont les spécialisations sont transparentes Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée6Programmation modulaire ➢La conception par classes, repr ésentant à la fois les données, les actions et les responsabilit

és des objets de cette classe,

permet de bien distinguer et s

éparer les concepts➢Le fait de d

éfinir des " interfaces »,

au sens " moyens et modalit

ésde communication avec l'ext

érieur »permet de cacher les d

étails d'impl

émentation et d'éviterles d

épendances trop fortes➢Tout

ça favorise la réutilisabilité etla composition / d

élégation:

l'assemblage des composants en respectant leurs responsabilit és Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée7L'abstraction et la sp

écialisation➢L'abstraction demande

à séparer la définition (d'un type,

d'une classe, d'une m éthode) de l'implémentation➢Permet d'identifier un mod èle commun à plusieurs composants➢Ce mod

èle commun pourra être partagé via le m

écanisme d'héritage➢La sp

écialisation traite

des cas particuliers, mais elle doit autant que possible rester transparente: ➢C'est possible gr

âce à

la dérivation? Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée8Le langage Java: ➢est n é en 1995 chez Sun Microsystems ➢Version actuelle Java 8, actuellement Oracle ➢est orient

é objet➢est fortement typ

é➢Toute variable doit

être déclarée avec un type➢Le compilateur v

érifie que les utilisations des variables sont compatibles avec leur type (notamment via un soustypage correct)

➢Les types sont d'une part fournis par le langage, mais

également par la d

éfinition des classes➢est compil

é➢En bytecode, i.e., code interm

édiaire indépendant de la machine➢est interpr

été ➢Le bytecode est interp

été par une machine virtuelle Java

Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée9Premier exemple ➢Dans un fichier de nom HelloWorld.java ➢R ègle: toute classe publique doit être dans un fichier qui a le m

ême nom que la classe➢R

ègle: tout code doit être à l'intérieur d'une classe➢Ç a définit une classe, qui est une unité de compilation➢Comme il y a une m éthode main, cette classe est " exécutable »public class HelloWorld { /* Un style de commentaire sur plusieurs lignes. */ public static void main(String[] args) { // Un commentaire sur une seule ligne

System.out.println("Bonjour à vous les IR1!");

Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée10Compilation, bytecode et JVM ➢Compilation du langage source > ex

écution du bytecodeFichier HelloWorld.java

public class HelloWorld { /* Un style de commentaire sur plusieurs lignes. */ public static void main(String[] args) { // Un commentaire sur une seule ligne

System.out.println("Bonjour

à vous les IR1!"); }

javac HelloWorld.java

Fichier HelloWorld.class

Compiled from "HelloWorld.java"

public class HelloWorld extends java.lang.Object{ public HelloWorld(); Code:

0:aload_0

1:invokespecial#1; //Method java/lang/Object."":()V

4:return

public static void main(java.lang.String[]); Code:

0:getstatic#2; //Field java/lang/System.out:Ljava/io/PrintStream;

3:ldc#3; //String Bonjour

à vous les IR1! 5:invokevirtual#4; //Method java/io/PrintStream.println:(Ljava/lang/String;)V

8:return

}java HelloWorld

Compilation

(une seule fois)Interpr étation / exécution (write once, run everywhere)Linux

Java Virtual MachinePileTasBonjour

à vous les IR1!Windows

Java Virtual MachinePileTasBonjour

à vous les IR1!java HelloWorld

Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée11Le bytecode ➢Le langage source Java est d

éfini par la JLS (Java Language

Specification)

éditée par SunOracle➢Dans sa syntaxe et sa s émantique➢Le code source d'une classe contenue dans un fichier est compil

é avec la commande javac

➢Cela produit un code interm édiaire, appelé bytecode, qui est le " langage machine » de la machine virtuelle Java ➢Le bytecode d'une classe est destin

é à être chargé par une

machine virtuelle qui doit l'ex

écuter avec la comande java

➢Soit par interpr étation, soit par compilation " juste à temps » (justintime ou JIT) ➢L'argument est le nom de la classe (sans l'extension .class) Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée12La machine virtuelle (JVM) ➢Son r ôle est d'abstraire le comportement d'une machine ➢Pour le rendre le + possible ind épendant de la plateforme➢Son comportement est d éfini par la JVM Spec édité par SunOracle ➢Une JVM est une impl

émentation de cette spec➢Qui peut

être adaptée à une plateforme d'accueil (Windows, Linux, Mac...) ➢Qui peut

être développée par Sun (HotSpot: open source GPL depuis 2006) ou par d'autres: IBM, Jikes, etc.

➢Une JVM traduit le bytecode dans le langage machine de la plateforme d'accueil

Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée13Java: un langage et une plateforme

➢Dans la technologie Java, on a donc besoin ➢Du langage de programmation et du compilateur ➢Et plein de commandes bien utiles: jar, javap, javadoc, etc ➢De la JVM et des APIs (Application Programming Interfaces) regroup ées dans une " plateforme »:➢Java SE (Java Platform, Standard Edition): Java SE 6 pour applications classiques, desktop ➢Java EE (Java Platform, Enterprise Edition): Java EE 6 pour d

évelopper et déployer des applications serveur, Web services, etc.➢Java ME (Java Platform, Micro Edition): J2ME pour les applications

embarqu ées, PDA, téléphones, etc.➢Si on veut juste ex

écuter, il suffit du JRE (Java Runtime

Execution) par opposition au JDK (Java Developpement Kit)

Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée14Java SE 7 Plateform at a Glance (http://docs.oracle.com/javase/7/docs/)

Etienne DURIS © ESIPEMLV Université ParisEst MarnelaVallée15Le langage Java ➢Les variables, les op érateurs, les expressions, instructions, blocs, contr ôle de flot sont très proches de ceux du C➢Les exceptions sont une nouveaut é➢Les types primitifs ont une taille et une repr

ésentation normée➢S'y ajoutent des sp

écificités syntaxiques liées à la programmation objet, aux classes, à l'héritage...➢Un style de nommage (tr ès fortement) conseillé➢Style " chameau » (CamelCase) pour les indentificateurs ➢Premi ère majuscule pour les classes (class HelloWorld) ➢Premiquotesdbs_dbs13.pdfusesText_19