as Architecture des Systèmes d Information



Documents pareils
Programmer en JAVA. par Tama

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

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

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

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

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Langage Java. Classe de première SI

Une introduction à Java

Initiation à JAVA et à la programmation objet.

Cours 1: Java et les objets

Java Licence Professionnelle CISII,

TP1 : Initiation à Java et Eclipse

Programmation en Java IUT GEII (MC-II1) 1

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

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

Java Licence Professionnelle CISII,

PROGRAMMATION PAR OBJETS

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

Java c est quoi? Java pourquoi?

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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

COMPARAISONDESLANGAGESC, C++, JAVA ET

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

INITIATION AU LANGAGE JAVA

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

La technologie Java Card TM

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

Introduction au langage C

Auto-évaluation Programmation en Java

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

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

INF 321 : mémento de la syntaxe de Java

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

Programmation Orientée Objets Le Langage JAVA

Apprendre Java en 154 minutes

Introduction au langage Java

Bases du langage. Historique Applications et applets Éléments de base du langage Classes et objets Les exceptions

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

Premiers Pas en Programmation Objet : les Classes et les Objets

Utilisation d objets : String et ArrayList

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

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

Programmation Orientée Objet

Bases Java - Eclipse / Netbeans

TP1. Outils Java Eléments de correction

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

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

Chapitre I Notions de base et outils de travail

TP1 : Initiation à Java et Eclipse

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

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

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

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)

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

Chapitre 10. Les interfaces Comparable et Comparator 1

ACTIVITÉ DE PROGRAMMATION

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

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

CIE303 - Programmation Orientée Objet en Java

Programmation Orientée Objet Java

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Notions fondamentales du langage C# Version 1.0

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

Programme Compte bancaire (code)

Java - la plateforme

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

La carte à puce. Jean-Philippe Babau


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

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

Programmation Objet Java Correction

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

Derrière toi Une machine virtuelle!

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

Programmation par composants (1/3) Programmation par composants (2/3)

1 Définition d une classe en Java

2 e édition JAVA 5 et 6. Jérôme Bougeault. TSoft et Groupe Eyrolles, 2003, 2008, ISBN :

Chapitre 2. Classes et objets

1. Langage de programmation Java

Threads. Threads. USTL routier 1

2. Comprendre les définitions de classes

Projet de programmation (IK3) : TP n 1 Correction

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

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

Package Java.util Classe générique

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

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

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

Programmation avec des objets : Cours 7. Menu du jour

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

Eclipse atelier 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

Java DataBaseConnectivity

Utiliser Java sans BlueJ

4. Groupement d objets

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

Initiation à la Programmation Java

Remote Method Invocation (RMI)

Un ordonnanceur stupide

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Transcription:

Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes Variables 3 Structures de contrôle Alternative Itération 4 Classe Description En java 5 Organisation Fichiers et packages Commandes Exemple 6 La classe Ampoule 7 La classe ClassMain 8 Organisation as Architecture des Systèmes d Information as Architecture des Systèmes d Information Programmation - Introduction - 1 / 38 Programmation - Introduction - 2 / 38 Introduction Qu est ce que Java? Introduction Présentation Caractéristiques Part I Introduction à Java Ce n est pas une danse une île une ville des États Unis une province de Géorgie C est un langage de Programmation Orienté Objet (POO) Programmation - Introduction - 3 / 38 Programmation - Introduction - 4 / 38 cm01-intro.pdf March 14, 2005 1

Historique... Introduction Présentation Caractéristiques Introduction Présentation Caractéristiques 1991 Green Project projet chez SUN 1 ayant pour but d embarquer une technologie dans différents appareils (TV, électroménager,... ) permettant de les piloter et de les faire communiquer entre eux 1992 démonstration d une télécommande (nom: *7) capable de piloter des appareils électroménager, mais pas de marché pour ce système. Un langage plus léger et facile que le C++ fut créé : Oak (chêne) rebaptisé ensuite Java Entre temps internet se développe rapidement 1995 création d un navigateur WebRunner qui allait s appeler plus tard HotJava démonstration d applications tournant dans un navigateur (molécules 3D,... ): les applets mise a disposition du code source à la communauté des développeurs (succès immédiat)... essor très important du langage qui était multiplateforme, petite taille des applications : idéal pour le web Netscape décide d intégrer cette technologie dans son navigateur 1996 Java Development Kit 1.0 1997 JDK 1.1 : amélioration de la syntaxe et des exceptions, refonte de l interface graphique (listener) Netscape Communicator supporte la totalité de l API 1998 Java 2 (=J2SE 1.2) : apport du multimédia, une nouvelle interface graphique incorporée : Swing 2004 Java 2 5.0 (=J2SE 1.5) : ajout de fonctionnalités : types génériques, autoboxing, types énumérés, nouveau look,... 1 http://www.sun.com Programmation - Introduction - 5 / 38 Programmation - Introduction - 6 / 38 Portabilité... Introduction Présentation Caractéristiques Portabilité Introduction Présentation Caractéristiques Langage classique Langage Java : Compile one time, run anywhere! " # Programmation - Introduction - 7 / 38 Programmation - Introduction - 8 / 38 cm01-intro.pdf March 14, 2005 2

Introduction Présentation Caractéristiques Caractéristiques de Java Types et Variables Structures de contrôle Classe Organisation langage objet (pas d héritage multiple) langage à part entière, pas uniquement pour le web nécessite une JVM pour l exécution indépendant de la plateforme machines virtuelles incluses dans les navigateurs web (applet) sécurisation des exécutions ramasse miette (garbage collector) Part II Le langage Java Programmation - Introduction - 9 / 38 Programmation - Introduction - 10 / 38 Qu est ce qu un type Les types simples de Java Definition Le type d une donnée détermine la taille de son espace de stockage l espace de ses valeurs les opérations possibles byte entier 8 bits -128-127 short entier 16 bits -32768-32767 int entier 32 bits -2147483648-2147483647 long entier 64 bits -9223372036854775808-9223372036854775807 float décimal 2 32 bits ±10 45 ±10 38 double décimal 64 bits ±10 323 ±10 308 char caractère 3 16 bits boolean booléen true / false Java possède deux catégories de types : simples : des valeurs simples (entiers, caractères,... ) complexes : des classes et des tableaux Exemple int a=3,b; b=a+2; 2 IEE754 3 Unicode Programmation - Introduction - 11 / 38 Programmation - Introduction - 12 / 38 cm01-intro.pdf March 14, 2005 3

Objet et référence Tableau : vecteur de données de taille fixe... En Java, les types complexes sont des classes Vocabulaire Une variable de type classe contient une référence sur un objet résultant de l instanciation d une classe (ou null). Exemple Scanner sc = new Scanner(System.in); int i = sc.nextint(); L API 4 fournit une bibliothèque très importante de classes (http://java.sun.com). Le type tableau est un type complexe (objet) typeelement[] tableauelements1 = {elt1, elt2,..., eltn; typeelement[] tableauelements2; tableauelements2 = new typeelement[taille]; tableauelements2[x]=valeur; // 0 x < taille L attribut length permet d obtenir la taille du tableau La classe Arrays permet la manipulation de tableaux a l aide de méthodes de classe (tri, copie,... ). 4 Application Program Interface Programmation - Introduction - 13 / 38 Programmation - Introduction - 14 / 38 Manipulation... Exemples int[] taba = new int[2]; taba[0]=1; taba[taba.length-1]=2; // le dernier élément taba[2]=3; // lancement d une exception System.out.println("taille de taba : "+taba.length); int[][] tabb = new int[2][3]; tabb[0][1]=5; int[][] tabc = new int[4][]; // nécessite l allocation des 4 sous tableaux Égalité Le comportement de l opérateur == dépend du type des variables : simple : égalité des valeurs objet : égalité des références Pour la comparaison d objets Java fournit la méthode equals D une manière générale, les variables de type : simple se manipulent par valeur complexe se manipulent par référence Programmation - Introduction - 15 / 38 Programmation - Introduction - 16 / 38 cm01-intro.pdf March 14, 2005 4

Exemples int a=1,b=1; System.out.println(a==b); Integer i1=new Integer(1),i2=new Integer(1); System.out.println(i1==i2); System.out.println(i1.equals(i2)); int[] ta={1,2,3,tb={1,2,3; System.out.println(ta==tb); System.out.println(ta.equals(tb)); System.out.println(Arrays.equals(ta,tb)); // true // false // true // false // false //true Integer[][] tc={{new Integer(1),new Integer(2), {new Integer(1),new Integer(2); Integer[][] td={{new Integer(1),new Integer(2), {new Integer(1),new Integer(2); System.out.println(Arrays.equals(tc[0],tc[1])); // true System.out.println(Arrays.equals(tc,td)); // false System.out.println(Arrays.deepEquals(tc,td)); // true Opérateurs Opérateurs arithmétiques + - * / % Opérateurs d affectation = += -= *= /= %= ++ -- Opérateurs bit à bit < > <= >= ==!= Opérateurs logiques! && Programmation - Introduction - 17 / 38 Programmation - Introduction - 18 / 38 Types et Variables Structures de contrôle Classe Organisation Alternative Itération Conditionnelle Types et Variables Structures de contrôle Classe Organisation Alternative Itération Choix multiple Permet un branchement en fonction d une valeur entière Permet d exécuter une partie de code en fonction du résultat d un test if (exprbooléenne) InstructionOuBloc [ else InstructionOuBloc ] switch (exprentière) { case const1 : instructionscas1 [break;] case const2 : instructionscas2 [break;]... default : instructionspardefaut [break;] Programmation - Introduction - 19 / 38 Programmation - Introduction - 20 / 38 cm01-intro.pdf March 14, 2005 5

Types et Variables Structures de contrôle Classe Organisation Alternative Itération Différents types d itération Types et Variables Structures de contrôle Classe Organisation Alternative Itération Exemples do instructionoubloc while (exprbooléenne); L itération permet la répétition d instructions while (exprbooléenne) instructionoubloc for(initialisation;exprbooléenne;exprvariation) instructionoubloc int[] tableau={1,4,34,25,15,16; int compteur=0; do compteur++; while (compteur<tableau.length && tableau[compteur]%3!= 0); if (compteur!=tableau.length) { while (compteur>=0 && tableau[compteur]%2!= 0) compteur--; for(int i=0; i <= compteur; i++) System.out.println(tableau[i]); Programmation - Introduction - 21 / 38 Programmation - Introduction - 22 / 38 Types et Variables Structures de contrôle Classe Organisation Description En java Qu est ce qu une classe Types et Variables Structures de contrôle Classe Organisation Description En java Constructeur/Destructeur Définition Une classe (type complexe) est constituée : d attributs (un état interne) de constructeurs / destructeurs de méthodes dont les accesseurs Un objet résulte de l instanciation d une classe Manipulation d un objet initialisation à l instanciation (construction) modification / consultation de l état via l envoi de messages destruction lorsqu il n est plus référencé Le constructeur permet d initialiser un objet au moment de son instanciation garantie un état initial stable de l objet. Le destructeur permet de libérer l espace mémoire réservé à l objet nettoie proprement le contenu de l objet avant sa mort Les méthodes d une classe forment l interface permettant de manipuler les objets. Programmation - Introduction - 23 / 38 Programmation - Introduction - 24 / 38 cm01-intro.pdf March 14, 2005 6

Types et Variables Structures de contrôle Classe Organisation Description En java Encapsulation Types et Variables Structures de contrôle Classe Organisation Description En java Les classes en Java Définition Cette notion regroupe deux concepts : regrouper une structure et des fonctions dans un même module la classe (attributs + méthodes) assurer la cohérence de la classe en empêchant des manipulations limiter la portée des attributs et des méthodes class NomClasse { // attributs accès1 typea attributa1,..., attributan=initialisation1; accès2 typeb attributb1=initialisation2,..., attributbn;... //constructeurs accès3 NomClasse([type1 param1, type2 param2,...) { // instructions... // méthodes accès4 type nommethodei([type1 param1, type2 param2,...]) { // instructions... Programmation - Introduction - 25 / 38 Programmation - Introduction - 26 / 38 Types et Variables Structures de contrôle Classe Organisation Description En java Spécificateurs d accès des membres Types et Variables Structures de contrôle Classe Organisation Description En java Constructeur / Destructeur Les membres d une classe sont ils accessibles à une autre classe 4 spécificateurs : Les membres public sont tous visibles protected ne sont visibles que par les classes filles ou de même package private ne sont pas visibles friendly sont visibles pour les classes du même package Le spécificateur doit se placer devant chaque membre : constructeur NomClasse([paramètres]) { // instructions Si aucun constructeur n est défini, il y a un constructeur par défaut Destructeur Java ne possède pas de destructeur, un ramasse-miette a se charge de libérer la mémoire. La méthode finalize() appellée avant destruction de l objet n est pas un destructeur. Elle n est utile que pour les composants java natifs qui auraient alloués de la mémoire. a Garbage Collector Programmation - Introduction - 27 / 38 Programmation - Introduction - 28 / 38 cm01-intro.pdf March 14, 2005 7

Types et Variables Structures de contrôle Classe Organisation Description En java La méthode de classe main Types et Variables Structures de contrôle Classe Organisation Fichiers et packages Commandes Package Première méthode exécutée à l appel d un programme java public static void main(string[] args) { // instructions Cette méthode doit être placée dans une classe public (accessible). Remarques : une classe dédiée à main chaque classe peut avoir sa méthode main permettant de la tester Bibliothèque offrant des classes et des méthodes via une API Pour le développeur du package il est constitué de classes ces classes sont réparties dans des fichiers ces fichiers sont organisés dans des répertoires l arborescence peut être compressée dans un fichier.jar Le nom des packages permet la gestion d un espace de nommage résoud les ambiguïtés sur les noms de classes Programmation - Introduction - 29 / 38 Programmation - Introduction - 30 / 38 Types et Variables Structures de contrôle Classe Organisation Fichiers et packages Commandes Utilisation / Création de packages Types et Variables Structures de contrôle Classe Organisation Fichiers et packages Commandes Classe publique et fichier Importation import nom.du.package.*; Importe l ensemble des classes du package nom.du.package import nom.du.package.uneclasse; Importe uniquement UneClasse Création Directive en début de fichier : package nom.du.package ; les classes seront placées dans chemin /nom/du/package chemin doit être déclaré dans $CLASSPATH utilisation par import nom.du.package.*; Si le package n est pas défini, les classes font parti du package. Définition et syntaxe Seules les classes publiques d un paquet sont accessibles par les utilisateurs. public class NomClasse {... Remarques une seule classe publique par unité de compilation (fichier), le nom de cette classe doit porter le nom du fichier, les autres classes du fichier sont amicales (friendly), elles sont vu comme support de la classe publique. Programmation - Introduction - 31 / 38 Programmation - Introduction - 32 / 38 cm01-intro.pdf March 14, 2005 8

Types et Variables Structures de contrôle Classe Organisation Fichiers et packages Commandes Organisation des classes/fichiers/packages/... Types et Variables Structures de contrôle Classe Organisation Fichiers et packages Commandes Compilation/Exécution répertoire de base classes nom/du/package (automatique) les classes compilées.class du package des classes compilées doc la documentation générée par javadoc lib les bibliothèques.jar src nom/du/package les fichiers sources.java du package des fichiers sources.java Méthode de base Compilation pour des sources dont ClassMain.java classe publique contenant une méthode main javac *.java Exécution java ClassMain Méthode élaborée Compilation javac -sourcepath./src -d./classes./src/*.java./src/nom/du/package/*.java Exécution java -classpath../classes ClassMain Programmation - Introduction - 33 / 38 Programmation - Introduction - 34 / 38 La classe Ampoule La classe ClassMain Organisation La classe Ampoule La classe ClassMain Organisation Part III Exemple Ampoule.java package fr.insarouen.asi.materiel; import java.awt.color; import java.util.random; public class Ampoule { private Color couleur=color.white; private boolean etat=false; private int dureevie; // constructeurs public Ampoule() { Random alea=new Random(); dureevie=alea.nextint()%1000; public Ampoule(Color _couleur) { this (); couleur=_couleur; // méthodes public Color getcouleur() { return couleur; public void setcouleur(color couleur) { this.couleur=couleur; public boolean basculer() { if (dureevie>0) { user(); etat=!etat; else etat=false; return etat; public boolean getetat() { return etat; private void user() { dureevie--; Programmation - Introduction - 35 / 38 Programmation - Introduction - 36 / 38 cm01-intro.pdf March 14, 2005 9

La classe Ampoule La classe ClassMain Organisation La classe Ampoule La classe ClassMain Organisation ClassMain.java import fr.insarouen.asi.materiel.ampoule; public class ClassMain { public static void main(string[] args) { Ampoule ampoule=new Ampoule(); int resistance=0; boolean etat=ampoule.getetat(); while (etat!= ampoule.basculer()) { resistance++; etat=ampoule.getetat(); System.out.println("Resistance à l utilisation : "+resistance); Organisation des fichiers répertoire de base classes ClassMain.class fr/insarouen/asi/materiel Ampoule.class src ClassMain.java fr/insarouen/asi/materiel Ampoule.java Programmation - Introduction - 37 / 38 Programmation - Introduction - 38 / 38 cm01-intro.pdf March 14, 2005 10