Programmer en JAVA par Tama

Slides:



Advertisements
Présentations similaires
La programmation orientée objet avec Java L3-MIAGE Plan
Advertisements

A RECUPERER EN ENTRANT Le polycopié de Caml Partie 1
Rappels C.
Le mécanisme des exceptions
SI3 MAM3 Hydro Nathan Cohen Igor Litovsky Christophe Papazian
Introduction à la Programmation Orientée Objet Retour sur les principaux concepts SI3 MAM3 Hydro Nathan Cohen
La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s.
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
LICENCE MIAGE Introduction Programmation Orientée Objet JAVA philippe
JAV - TD 6 Structures de données JAVA
TD 1 IJA Introduction Objet, méthode, attribut Classe, instance
IJA - TD 2 Bases du langage
Principes de programmation (suite)
CPI/BTS 2 Programmation Web Introduction au PHP
Programmation orientée objet
Introduction à la programmation (420-PK2-SL) cours 12 Gestion des applications Technologie de linformation (LEA.BW)
JavaBeans Réalise par: EL KHADRAOUY TARIK AOUTIL SAFOWAN.
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
Les exceptions. Quest ce quune exception ? Une erreur dans le programme Due à un bug ou un cas « anormal » Gestion complète en java : JVM Dans dautre.
33 Types de données et opérateurs. 3-2 Objectifs A la fin de ce cours, vous serez capables de : Décrire les types de données primitives Déclarer et initialiser.
Java Héritage, interfaces.
Classes abstraites et Interfaces
Introduction à la programmation (Java)
66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser.
Introduction à la Programmation Orientée Objet Retour sur les principaux concepts SI3 MAM3 Hydro Nathan Cohen
Introduction au paradigme orienté-objet (suite)
Principes de programmation
P. Van Roy, LINF1251 LINF1251: Le Langage Java Peter Van Roy Département dIngénierie Informatique, UCL
Contrôle de types Les types en programmation Expressions de types Un contrôleur de types Equivalence de types Conversions de types Généricité.
IFT 6800 Atelier en Technologies d’information
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 3 : Classes et Objects.
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
COURS DE PROGRAMMATION ORIENTEE OBJET :
COURS DE PROGRAMMATION ORIENTEE OBJET :
CSI 1502 Principes fondamentaux de conception de logiciels
L’essentiel du langage C
2.1 - Historique Chapitre 2 : Introduction au langage C++
4 Introduction des objets. Les chaînes et tableaux
LIFI-Java 2004 Séance du Mercredi 22 sept. Cours 3.
La notion de type revisitée en POO
Cours 9 Exceptions (fin) Généricité. POO-L3 H. Fauconnier2 Chaînage d'exceptions  Une exception peut être causée par une autre.  il peut être utile.
Java : Exceptions H Batatia. 5/03/2004Java12: H.Batatia2 Exemple 1 public class Bonjour { public static void main(String[] args) { System.out.println("Bonjour.
11/04/ L'héritage Cours 7 Cours 7.
Un survol du language C.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Les erreurs communes en Java.
Tutorat en bio-informatique
12/04/ Les exceptions Cours 11 Cours 11.
Strings et Tableaux en Java
Les classes et les objets Les données finales class A { … private final int n = 20 ; // la valeur de n est définie dans sa déclaration … } class A { public.
C# de plus près.  Ce sont globalement les mêmes que Java : ◦ Int(int16, int32), float, double, bool,…  Les classe « communes » sont également les mêmes.
Cours du 5 novembre.
IUT du Limousin L.U.P Michel Vergnaud Programmation Objet - Java.
Héritage H. Batatia. plan Notion (que signifie l’héritage) Ecriture en java Héritage multiple (interdit) Instanciation (partie propre et partie héritée)
Introduction au langage JAVA
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
Héritage Conception par Objet et programmation Java
Classes abstraites, interface Classe interne Classes enveloppes
PRO-1027 Programmation Scientifique en C
22 Concepts de base du langage Java. 2-2 Objectifs A la fin de ce cours, vous serez capables de : Identifier les éléments essentiels de Java Identifier.
Langage et Concepts de Programmation Orientée-Objet Pôle Informatique 2007/2008 École Nationale Supérieure des Mines de Saint-Étienne Laurent Vercouter.
pour les programmeurs en C++ Java 2 Part 1 3 Histoire de Java Projet de connexion des machines: 1991 Le nom Java a été introduit dans un café Développé.
Philippe Gandy - 8 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Philippe Gandy - 22 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Philippe Gandy - 15 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Philippe Gandy – 10 novembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
C++ BY AURÉLIEN MODULO MARION. PLAN DES TROIS PRÉSENTATIONS C++ avancé C++ orienté objet Bases de C++
Java Réalisé par: Mouna POKORA. PLAN: Définition : Historique: Caractéristiques: un langage orienté objet: un langage interprété : un langage portable:
Transcription de la présentation:

Programmer en JAVA par Tama

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. Quest-ce que Java ? 2. Les outils pour Java 3. Le concept fondamental de Java 4. Première application et compilation

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

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

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

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

1.4. … et compilation Pour faire fonctionner lexemple précédant : Mettre ce code dans un fichier « Bonjour.java » Mettre ce code dans un fichier « Bonjour.java » Compiler le code par la commande : javac Bonjour.java Compiler le code par la commande : javac Bonjour.java Lancer lapplication et vérifier le résultat : java Bonjour Lancer lapplication 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 { } délimités par { } qui peuvent être imbriqués qui peuvent être imbriqués Les commentaires : Sur une seule ligne : // mon commentaire Sur une seule ligne : // mon commentaire Sur plusieurs lignes : /* */ Sur plusieurs lignes : /* */

2.1. Blocs et commentaires Exemple : 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 : Conventions à respecter : Commencer par une lettre ou par _ Commencer par une lettre ou par _ bonne habitude à prendre : commencer par une minuscule bonne habitude à prendre : commencer par une minuscule Se composer uniquement de lettres, chiffres et de _ Se composer uniquement de lettres, chiffres et de _ Une variable ou constante : Une variable ou constante : doit obligatoirement être déclarée doit obligatoirement être déclarée est dun certain type, qui indique sa nature est dun certain type, qui indique sa nature

2.2. Variables, constantes et types La plupart des types sont des objets La plupart des types sont des objets Exception : les types primitifs : Exception : les types primitifs : ne sont pas des objets ne sont pas des objets commencent par une minuscule ( int, char, boolean, …) commencent par une minuscule ( int, char, boolean, …) ont leurs équivalents objet : Integer, 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 : +, -, *, /, % Arithmétiques : +, -, *, /, % Assignation : =, +=, *=, … Assignation : =, +=, *=, … Incrémentation : ++, -- Incrémentation : ++, -- Comparaison :, ==, =, != Comparaison :, ==, =, != Booléens : ||, &&, ! Booléens : ||, &&, ! Bit à bit : &, |, ^ Bit à bit : &, |, ^ Rotation : >, … 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. 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 dune classe = instancier la classe Créer un représentant dune classe = instancier la classe Avec le mot-clé « new » 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. Permet de faire des itérations avec un compteur. /* Corps du programme On va créer un tableau danimaux */ Animal[] animaux = new Animal()[5]; for (int i = 0; i < animaux.length; i++) { animaux[i].grandir();}

2.6. Instructions de base : boucle while Permet de répéter une action tant quune condition nest pas remplie. Permet de répéter une action tant quune condition nest pas remplie. // Cette méthode fait grandir un animal // jusquà ce quil devienne adulte public void devenirAdulte() { while (!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. Lhé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 Utiliser une même fonctionnalité dans différents contextes... public void grandir() { age += 1;} public void grandir(int nbAnnees) { age += nbAnnees; }...rufus.grandir();rufus.grandir(5);

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

3.3. Lhéritage Améliorer / enrichir des classes préexistantes Améliorer / enrichir des classes préexistantes On peut surcharger les méthodes parentes 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. Lhéritage Le mot-clé protected : Le mot-clé protected : rendre les variables accessibles aux classes filles rendre les variables accessibles aux classes filles pas à lextérieur. pas à lexté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 Avec le mot-clé abstract Ces classes ne peuvent être instanciées 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 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 dune seule autre classe … Une classe ne peut dériver que dune seule autre classe … Utilité et puissance des interfaces : Utilité et puissance des interfaces : « aspect » homogène depuis lextérieur « aspect » homogène depuis lextérieur interface = classe purement abstraite interface = classe purement abstraite une classe peut implémenter plusieurs interfaces 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()) { String reponse = rufus.demanderAvis("Ca va ?"); }

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

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

3.8. Gestion des erreurs Mécanisme dexceptions lorsquune erreur se produit Mécanisme dexceptions lorsquune 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 : Clause throws : pour indiquer quune fonction ne traitera pas une exception pour indiquer quune fonction ne traitera pas une exception la fonction appelante doit gérer lexception la fonction appelante doit gérer lexception... 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 : Exceptions personnalisées : Créer ses propres exceptions Créer ses propres exceptions On les invoque avec le mot-clé throw On les invoque avec le mot-clé throw class ExceptionTailleNulle extends Exception { public ExceptionTailleNulle() {} }... throw new ExceptionTailleNulle();

4.Documentation La Javadoc ( La Javadoc ( Livres au CDI 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 Elements génériques break break continue continue Boucle « for » Boucle « for » for for Boucle « while » Boucle « while » do do while while Bloc « if » if then else Bloc « switch » switch case default

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

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

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

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

5.5. Divers Objets Objets new new null null Variables Variables transient transient volatile 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 !) 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 ». 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éé 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 : 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 quelle peut générer, soit prévenir (dans son en-tête) quelle ne le fera pas. Une classe doit soit gérer elle-même les exceptions quelle peut générer, soit prévenir (dans son en-tête) quelle ne le fera pas. public int indice() throws ArithmeticException {...}

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