Mise à niveau en Java

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

Une introduction à Java

TP1 : Initiation à Java et Eclipse

Initiation à JAVA et à la programmation objet.

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

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Cours 1: Java et les objets

INITIATION AU LANGAGE JAVA

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

Programmer en JAVA. par Tama

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

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

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

Langage Java. Classe de première SI

Premiers Pas en Programmation Objet : les Classes et les Objets

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

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

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

Java Licence Professionnelle CISII,

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

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

Java c est quoi? Java pourquoi?

Chapitre 2. Classes et objets

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

Utiliser Java sans BlueJ

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

TP1 : Initiation à Java et Eclipse

PROGRAMMATION PAR OBJETS

Remote Method Invocation (RMI)

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

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

Chapitre I Notions de base et outils de travail

TP1. Outils Java Eléments de correction

TP, première séquence d exercices.

Chapitre 10. Les interfaces Comparable et Comparator 1

Programmation par les Objets en Java

Java - la plateforme

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

RMI le langage Java XII-1 JMF

Java Licence Professionnelle CISII,

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

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

ACTIVITÉ DE PROGRAMMATION

Bases Java - Eclipse / Netbeans

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

1 Définition d une classe en Java

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

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

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

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

Utilisation d objets : String et ArrayList

Classes et Objets en Ocaml.

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

Programmation Orientée Objet

NFP 121. Java et les Threads. Présentation : Thierry Escalarasse Mai 2007

Auto-évaluation Programmation en Java

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

IFT2255 : Génie logiciel

Les chaînes de caractères

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

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

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

Package Java.util Classe générique

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

Objets et Programmation. origine des langages orientés-objet

La technologie Java Card TM

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

Génie Logiciel avec Ada. 4 février 2013

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Présentation du PL/SQL

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

Machines Virtuelles. et bazard autour. Rémi Forax

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Systeme d'exploitation

Java DataBaseConnectivity

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)

Programmeur Java 1.4 et 5.0

Projet Active Object

Java 1.5 : principales nouveautés

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

La carte à puce. Jean-Philippe Babau

Machines virtuelles. Brique ASC. Samuel Tardieu Samuel Tardieu (ENST) Machines virtuelles 1 / 40

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

Derrière toi Une machine virtuelle!

Introduction au Génie Logiciel

Java Licence professionnelle CISII,

Programmation en Java IUT GEII (MC-II1) 1

7 Développement d une application de MapReduce

TD/TP PAC - Programmation n 3

Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée

Introduction au langage C

Synchro et Threads Java TM

Corrigé des exercices sur les références

OCL - Object Constraint Language

IRL : Simulation distribuée pour les systèmes embarqués

Transcription:

Mise à niveau en Java Cours 1 Stéphane Airiau Université Paris-Dauphine Cours 1 (Stéphane Airiau) Java 1

Programmation orientée Objet en Java Cours 1 (Stéphane Airiau) Java 2

Objets et Classes Un objet se définit par ses états (on peut aussi parler de ses caractéristiques) et son comportement. exemple d un objet voiture Etats marque modèle cylindrée quantité d essence niveau d huile pression des pneus nombre de tours Comportements accélerer passer rapport supérieur passer rapport inférieur tourner volant ouvrir porte fermer porte freiner Une classe est un plan ou un moule pour fabriquer des objets. les états d un objet vont être représentés par des variables les comportements d un objet seront representés par des méthodes. Un objet est une instance d une classe. Cours 1 (Stéphane Airiau) Java 3

Autrement dit Une classe est un type abstrait caractérisé par des propriétés (attributs et méthodes) communes à un ensemble d objets et permettant de créer des objets ayant ces propriétés. Un objet ou une instance de classe possède un comportement et un état qui ne peut être modifié que par les actions du comportement. On peut créer une classe Personnage car tous les personnages partagent les mêmes caractéristiques. Lorsqu on veut créer un personnage, on instancie la classe Personnage IMPORTANT par convention, le nom d une classe commence toujours par une majuscule. ce qui n est pas le nom d une classe commence par une minuscule Cours 1 (Stéphane Airiau) Java 4

Des classes déjà existentes Java possède une large librairie de classes. La librairie se compose de différents packages et sous-packages. Ce cite sera votre principale source de référence si vous voulez connaître quelque chose sur une classe Javaexistente. http://docs.oracle.com/javase/7/docs/api/ overview-summary.html Par exemple, le package java.lang contient des classes de bases du language Java. On y trouve aussi une classe pour manipuler les chaînes de caractères appelée String. Cours 1 (Stéphane Airiau) Java 5

Variables d instance et variables de classe variables d instance ou attributs : ces variables définissent les caractéristiques de l objet. autrement dit : la valeur de la variable est propre à un objet donné. initialisation optionnelle. accès : <nom objet>.<nom attribut> variables de classe : La valeur d une variable de classe est commune à toutes les instances de la classe, déclaration avec le mot clé static initialisation obligatoire accès : <nom de classe>.<nom variable de classe> exemple : classe Float pour encapsuler un nombre flottant float. variables de classes : MAX_VALUE, MAX_EXPONENT, NaN, etc. Cours 1 (Stéphane Airiau) Java 6

Méthodes d instance et méthodes de classe méthode d instance : ces méthodes permettent de modifier ou d accéder à l état de l objet. méthode de classe : ces méthodes ne modifient pas l état interne d un objet. exemple : la classe Float méthode d instance String tostring() retourne une représentation en chaîne de caractères de l objet courant méthode de classe static String tostring(float f) retourne une représentation en chaîne de caractères du float passé en paramètre 1 Float f; 2... 3 System.out.println(f.toString()); 4 System.out.println(Float.toString(3.1419)); Cours 1 (Stéphane Airiau) Java 7

Encapsulation Les comportements et les états d un objets peuvent être connus de tous public toute classe peut exécuter la méthode publique modifier ou accéder à un attribut publique cachés private la méthode ou l attribut ne peut être accédé que depuis l intérieur de la classe cacher un méchanisme interne (on pourra changer une implémentation sans que cela ait un impact sur la partie publique). protection Cours 1 (Stéphane Airiau) Java 8

Constructeurs Une classe est un plan ou un moule pour fabriquer un objet, ce qu on appelle instancier un objet. Les méthodes pour instancier un objet sont appelées des constructeurs. Un constructeur porte le nom de la classe n a pas de type de retour. On appelle constructeur par défaut le constructeur sans arguments : 1 public class <nom classe> { 2 // déclaration des variable d instances et 3 // variables de classe.... 5 // constructeur par défaut 6 public <nom classe>(){ 7 // corps de la méthode 8 } 9 } Cours 1 (Stéphane Airiau) Java 9

Exemple La surcharge permet d avoir des constructeurs avec des signatures différentes. Pour une classe Personnage, on peut donc écrire : 1 public class Personnage { 2 public String nom; 3 4 // constructeur par défaut 5 public Personnage(){ 6 nom = Inconnu"; 7 } 8 8 // constructeur avec un argument 9 public Personnage(String name){ 10 nom = name; 11 } 12 } Cours 1 (Stéphane Airiau) Java 10

Création d un objet Déclaration : comme pour les types primitifs : <Nom de la classe> <nom objet>; Création/initialisation à l aide du mot clé new et appel du constructeur : new <Nom de classe>(<liste d arguments>); comme pour les types primitifs, on peut déclarer et initialiser plusieurs objets du même type en même temps. 1 Personnage asterix = new Personnage("Astérix"); 2 Personnage obelix = new Personnage("Obelix"), 3 idefix = new Personnage( Idéfix ), 4 romain = new Personnage(); Cours 1 (Stéphane Airiau) Java 11

Plusieurs notion d Egalité 1 Personnage asterix = new Personnage("Astérix"); 2 Personnage asterixbis = asterix; 3 Personnage asterixter = new Personnage("Astérix"); 4 if (asterix == asterixbis) 5 System.out.println("Bleu"); 6 else 7 System.out.println("Rouge"); 8 if (asterix == asterixter) 9 System.out.println("Bleu"); 10 else 11 System.out.println("Rouge"); Quel est le résultat de l exécution de ce code? Cours 1 (Stéphane Airiau) Java 12

Plusieurs notion d Egalité Une variable désigne en fait une référence vers l objet en mémoire et non l objet lui-même == désigne l égalité de la référence : o1 == o2 sera vrai si o1 et o2 désignent le même objet en mémoire. pour tester l égalité entre les propriétés de l objet, on utilise la méthode d instance boolean equals(object o). if asterix.equals(asterixter) System.out.println("mêmes propriétés"); Cours 1 (Stéphane Airiau) Java 13

Destruction d un objet La destruction des objets est prise en charge par Java à l aide d un garbage collector (GC). Le GC détruit les objets (i.e. efface la mémoire) qui ne sont référencés par aucun autre objet. Les destructions sont asynchrones et il n y a pas de garanties que les objets soient détruits. Une méthode optionnelle nommée finalize() est appelée lorsque l objet est détruit. Elle peut par exemple s assurer que des fichiers ou des connexions sont bien fermées avant la destruction de l objet. Cours 1 (Stéphane Airiau) Java 14

sous mac OS Compilation, exécution, machine virtuelle Java n est pas seulement la description d un language et une bibliothèque de classe. Java dispose d outils pour générer et exécuter du code. Code Source.java sous windows sous linux Compilation javac Bytecode.java machine virtuelle Exécution java machine windows machine linux machine apple portable android Cours 1 (Stéphane Airiau) Java 15

Compilation Chaque classe <MaClasse> est enregistrée dans un fichier <MaClasse>.java : il porte le même nom que la classe et possède l extension.java. Le développeur doit compiler l ensemble de classes à l aide d un programme appelé javac. Le compilateur traduit le code écrit par le développeur en un language plus simple qui pourra être exécuté. Pour Java, le compilateur produit un code dans le language bytecode. Le résultat de la compilation est un fichie nommé <MaClasse>.class Cours 1 (Stéphane Airiau) Java 16

Compilation Pour simplifier, il y a deux étapes lors de la compilation : analyse syntaxique : le code est lu, on forme un arbre de syntaxique. on vérifie la syntaxe du code (i.e. on vérifie la grammaire du code). analyse sémantique : l arbre syntaxique est analysé et traduit en bytecode. les références à des classes extérieures sont vérifiées (on cherche si la classe existe bien, si elle a besoin d être compilée, etc). Cours 1 (Stéphane Airiau) Java 17

Exécution On exécute une méthode spéciale appelée main. Cette méthode se trouvera dans une classe de votre choix. Si la méthode main se trouve dans une classe MaClasse, on lancera l exécution en lançant l application Java : java MaClass (on peut taper cette commande sous linux ou mac os) La méthode main a une signature fixée par convention 1 public static void main(string[] args) public : pour être appelée de l extérieur de la classe static : pour être appelée sans avoir instancié un objet void : la méthode ne retourne rien String[] args : lors du lancement de l exécution, on peut ajouter du texte et chaque mot sera inséré dans un tableau de String qui peut servir à paramétrer l exécution. Cours 1 (Stéphane Airiau) Java 18

Machine virtuelle Java fournit une machine virtuelle : c est un programme qui lit du code en bytecode et interprète ce code dans le language de la machine pour l exécuter : Lors de l exécution java MaClass on lance un programme appelée java se programme interprète le code lancé à partir de la méthode main de la classe MaClasse Cours 1 (Stéphane Airiau) Java 19

Machine Virtuelle avantages : le code est portable : On peut écrire, compiler et exécuter sur des machines d architectures différentes. (ordinateur windows, apple, linux, téléphone mobile, caisse enregistreuse, etc). la machine virtuelle permet de partager d une manière sécurisée une machine le code est généralement plus compact (pas besoin d inclure les bibliothèques comme en C ou C++). la machine virtuelle donne l impression que l on dispose d une machine entière (la machine réelle donner du temps processeur à la machine virtuelle). inconvenients : coût en ressources de la machine virtuelle. Cours 1 (Stéphane Airiau) Java 20