Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)



Documents pareils
Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

as Architecture des Systèmes d Information

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

Une introduction à Java

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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

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

PROGRAMMATION PAR OBJETS

Java Licence Professionnelle CISII,

Java Licence Professionnelle CISII,

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

Cours 1: Java et les objets

INITIATION AU LANGAGE JAVA

Langage Java. Classe de première SI

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

INF 321 : mémento de la syntaxe de Java

TP1 : Initiation à Java et Eclipse

Auto-évaluation Programmation en Java

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

Initiation à JAVA et à la programmation objet.

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

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

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

Introduction au langage C

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

Programmation en Java IUT GEII (MC-II1) 1

Support de cours et TD Programmation Orientée Objet

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

Notions fondamentales du langage C# Version 1.0

Programmation Par Objets

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

Programmation Objet Java Correction

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

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

Chapitre 10. Les interfaces Comparable et Comparator 1

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

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

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

Apprendre Java en 154 minutes

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

Premiers Pas en Programmation Objet : les Classes et les Objets


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

Java c est quoi? Java pourquoi?

Projet de programmation (IK3) : TP n 1 Correction

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

La carte à puce. Jean-Philippe Babau

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

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

Introduction au langage Java

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

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

Package Java.util Classe générique

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

Facultés Universitaires Notre-Dame de la Paix. Conception et Programmation Orientées- Object

Corrigé des exercices sur les références

1. Langage de programmation Java

4. Groupement d objets

Utilisation d objets : String et ArrayList

Programmation Orientée Objets Le Langage JAVA

Un ordonnanceur stupide

Développement Logiciel

2. Comprendre les définitions de classes

La technologie Java Card TM

COMPARAISONDESLANGAGESC, C++, JAVA ET

Bases Java - Eclipse / Netbeans

Claude Delannoy. 3 e édition C++

Langage à objets : JAVA (1)

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

TD/TP PAC - Programmation n 3

Java 1.5 : principales nouveautés

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

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

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

Informatique / Programmation

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Introduction : les processus. Introduction : les threads. Plan

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

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

Programmation Orientée Objet Java

TD/TP PAC - Programmation n 3

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

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

ACTIVITÉ DE PROGRAMMATION

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

Traduction des Langages : Le Compilateur Micro Java

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

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

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

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

CIE303 - Programmation Orientée Objet en Java

1 Définition d une classe en Java

Principes des langages de programmation INF 321. Eric Goubault

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)

Remote Method Invocation (RMI)

Programmation avec des objets : Cours 7. Menu du jour

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février :30 à 20:30

TP, première séquence d exercices.

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

Transcription:

Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes en Java 7. Différences entre Java et C++

1. Présentation de Java 1. Qu est-ce que Java? 2. Les outils pour Java 3. Le concept fondamental de Java 4. Première application et compilation

1.1. Qu est-ce que Java? Langage de programmation ayant la syntaxe du C++ Langage portable (s exécute sur une machine virtuelle) Langage orienté objet Langage compilé

1.2. Les outils pour Java Le Java Development Kit de Sun (incluant une machine virtuelle Java), disponible sur www.sun.com Un éditeur spécialisé (vivement recommandé), comme Netbeans ou Eclipse.

1.3. Le concept fondamental de Java Tout est une classe Classe = structure logique pour créer des objets Objets dotés : de propriétés de méthodes et de fonctions

1.4. Première application public class Bonjour { public static void main (String[] args) ) { System.out.println("Bonjour"); Ce programme affiche «Bonjour»

1.4. et compilation Pour faire fonctionner l exemple précédant : Mettre ce code dans un fichier «Bonjour.java» Compiler le code par la commande : javac Bonjour.java Lancer l application et vérifier le résultat : java Bonjour

2. Les bases du langage 1. Blocs et commentaires 2. Variables, constantes et types 3. Les opérateurs 4. Structures conditionnelles 5. Les classes 6. Structures itératives

2.1. Blocs et commentaires Le code est écrit dans des blocs : délimités par { qui peuvent être imbriqués Les commentaires : Sur une seule ligne : // mon commentaire Sur plusieurs lignes : /* */

2.1. Blocs et commentaires Exemple : // Une classe générique décrivant un animal public class Animal { public Animal() { public void faireqqc() {

2.2. Variables, constantes et types Conventions à respecter : Commencer par une lettre ou par _ bonne habitude à prendre : commencer par une minuscule Se composer uniquement de lettres, chiffres et de _ Une variable ou constante : doit obligatoirement être déclarée est d un certain type,, qui indique sa nature

2.2. Variables, constantes et types La plupart des types sont des objets Exception : les types primitifs : ne sont pas des objets commencent par une minuscule (int( int, char, boolean,, ) ont leurs équivalents objet : Integer, Char, Boolean,,

2.2. Variables, constantes, (ex) // Une classe générique décrivant un animal public class Animal { private int age; private int poids; public Animal() { public void faireqqc() { public int obtenirage() { return age; ; public int obtenirpoids() { return poids;

2.3. Les opérateurs Arithmétiques : +, -,, *, /, % Assignation : =, +=, *=, Incrémentation : ++, -- Comparaison : <, >, ==, <=, >=,!= Booléens :, &&,! Bit à bit : &,, ^ Rotation : <<, >>,

2.3. Variables, constantes, (ex) // Une classe générique décrivant un animal public class Animal { private int age = 0; private int poids = 500; public Animal() { public void faireqqc() { public int obtenirage() { return age; ; public int obtenirpoids() { return poids; public void grandir() { age += 1; public void grossir() { poids += 500;

2.4. Structures conditionnelles public boolean estadulte() { if ((age == 0) (age( == 1)) { return false; else { return true; // Plus simple! public boolean estadulte() { return (age( > 1)? true : false; // Encore plus simple... public boolean estadulte() { return (age( > 1);

2.4. Structures conditionnelles Instruction «switch» pour éviter les boucles «if» en cascade. public boolean estadulte() { switch (age)) { case 0: case 1: return false; break; default: return true; break;

2.5. Utilisation des classes Créer un représentant d une classe = instancier la classe Avec le mot-clé «new» Animal rufus = new Animal(); rufus.grandir(); rufus.grossir();

2.6. Instructions de base : boucle for Permet de faire des itérations avec un compteur. /* Corps du programme On va créer un tableau d animaux */ Animal[] animaux = new Animal()[5]; for (int( i = 0; i < animaux.length; ; i++) { animaux[i].grandir i].grandir();

2.6. Instructions de base : boucle while Permet de répéter une action tant qu une condition n est pas remplie. // Cette méthode fait grandir un animal // jusqu à ce qu il devienne adulte public void deveniradulte() { while (!estadulte estadulte()) { grandir();

Récapitulatif : la classe Animal Variables private int age private int poids Méthodes public Animal() public void faireqqc() public int obtenirage() public int obtenirpoids() public void grandir() public void grossir() public boolean estadulte() public void deveniradulte()

3. Concepts avancés 1. La surcharge de fonctions 2. Constructeurs et destructeurs 3. L héritage 4. Les classes abstraites 5. Les interfaces 6. Les classes : divers 7. Les packages 8. La gestion des erreurs

3.1. La surcharge de fonctions Utiliser une même fonctionnalité dans différents contextes... public void grandir() { age += 1; public void grandir(int int nbannees) ) { age += nbannees;... rufus.grandir(); rufus.grandir(5);

3.2. Le constructeur Même nom que la classe Ne renvoie aucune donnée Activé automatiquement à la création d un objet... public Animal() { age = 0; poids = 1000;... Animal rufus = new Animal(); // Rufus pèse 1 kg

3.3. L héritage Améliorer / enrichir des classes préexistantes On peut surcharger les méthodes parentes public class Chien extends Animal { public void faireqqc() { System.out.println(" ("Ouaf!"); Chien rufus = new Chien(); rufus.grandir(); // Rufus est un animal! rufus.faireqqc(); // Affiche Ouaf!

3.3. L héritage Le mot-clé protected : rendre les variables accessibles aux classes filles pas à l extérieur. public class Animal { protected int age; protected int poids;... public class Chien extends Animal { public boolean estvieux() { return (age( > 20);

Récapitulatif : la classe Animal Variables protected int age protected int poids Méthodes public Animal() public void faireqqc() public int obtenirage() public int obtenirpoids() public void grandir() public void grossir() public boolean estadulte() public void deveniradulte()

Récapitulatif : la classe Chien Variables protected int age protected int poids Méthodes Venant de la classe Animal : public void faireqqc() public int obtenirage() public int obtenirpoids() public void grandir() public void grossir() public boolean estadulte() public void deveniradulte() Nouvelles fonctions : public Chien() public boolean estvieux()

3.4. Les classes abstraites Avec le mot-clé abstract Ces classes ne peuvent être instanciées public abstract class Animal {... public abstract void faireqqc(); // La ligne suivante provoque une erreur Animal rufus = new Animal();

Récapitulatif : la classe abstraite Animal Variables protected int age protected int poids Méthodes public Animal() public abstract void faireqqc() public int obtenirage() public int obtenirpoids() public void grandir() public void grossir() public boolean estadulte() public void deveniradulte()

3.4. Les classes abstraites Pour être utilisable, une sous-classe doit implémenter les méthodes abstraites public class Chien extends Animal {... public void faireqqc() {... // On peut créer un chien Chien rufus = new Chien();

3.5. Les interfaces Une classe ne peut dériver que d une seule autre classe Utilité et puissance des interfaces : «aspect» homogène depuis l extérieur interface = classe purement abstraite une classe peut implémenter plusieurs interfaces

3.5. Les interfaces public interface Compagnon { protected String nom; public abstract void jouer(); public abstract void parleravec(); public abstract String demanderavis(string question); public class Chien extends Animal implements Compagnon {... Chien rufus = new Chien(); if (rufus.estvieux( rufus.estvieux()) { String reponse = rufus.demanderavis("ca va?");

3.6. Les classes : divers Méthodes et variables de classes avec le mot-clé static on peut les appeler / les utiliser sans créer d objet les variables de classe ne sont pas initialisées à chaque instanciation Finalisation d une méthode d une classe avec le mot-clé final pour empêcher la surcharge

3.7. Les packages Les packages : regroupent des classes ; certains packages sont standards (java.lang( java.lang,, java.io, java.utils,, ) on peut également créer ses propres packages Commande import pour importer un package package Zoo; import Zoo.*; import java.io.*;

3.8. Gestion des erreurs Mécanisme d exceptions lorsqu une erreur se produit... protected taille; public int indice() { int i; try { i = (poids / taille); catch (ArithmeticException( e) { i = -1; finally { return i;

3.8. Gestion des erreurs Clause throws : pour indiquer qu une fonction ne traitera pas une exception la fonction appelante doit gérer l exception... protected taille; public int indice() throws ArithmeticException { return (poids / taille);... int i; try { i = rufus.indice(); except {...

3.8. Gestion des erreurs Exceptions personnalisées : Créer ses propres exceptions On les invoque avec le mot-clé throw class ExceptionTailleNulle extends Exception { public ExceptionTailleNulle() {... throw new ExceptionTailleNulle();

4. Documentation La Javadoc (http://java.sun.com/j2se/1.5.0/docs/api/) www.google.fr www.commentcamarche.net Livres au CDI

5. Liste des mots-clés en Java 1. Structures de contrôle 2. Types de données 3. Classes et interfaces 4. Méthodes et portée 5. Divers

5.1. Structures de contrôle Elements génériques break continue Boucle «for» for Boucle «while» do while Bloc «if» if then else Bloc «switch» switch case default

5.1. Structures de contrôle Traitement des exceptions try catch finally throw throws

5.2. Types de données Nombres entiers byte short int long Nombres flottants float double Autres char void

5.3. Classes et interfaces Classes (déclaration) class abstract extends final static Classes (utilisation) super instanceof Interfaces interface implements

5.4. Méthodes et portée Méthodes : return native synchronised Portée des déclarations : private protected public

5.5. Divers Objets new null Variables transient volatile Paquets import package

6. Les erreurs fréquentes en Java 1. La casse 2. La portée des déclarations 3. Les exceptions

6.1. La casse Deux variables portant le même nom, mais avec une casse différente, sont différentes (boolean( <> Boolean!) Chaque classe doit se trouver dans un fichier qui porte le nom de la classe (attention à la casse!) la classe nommée «truc» doit se trouver dans un fichier «truc.java», qui sera compilé en «truc.class».

6.2. La portée des déclarations Les objets ne sont valables que dans le bloc (et les sous-blocs de ce bloc) dans lequel il a été créé Ainsi le code suivant ne peut pas marcher : if (i!= 0) { int j = 2 * i; System.out.println(j);

6.3. Les exceptions Une classe doit soit gérer elle-même les exceptions qu elle peut générer, soit prévenir (dans son en-tête) qu elle ne le fera pas. public int indice() throws ArithmeticException {...

7. Simplifications par rapport à C++ Pas de pointeurs Pas de surcharge d opérateurs Pas d héritage multiple Chaînes et tableaux gérés en natif Gestion automatisée de la mémoire