Programmer en JAVA

  • View
    61

  • Download
    0

Embed Size (px)

DESCRIPTION

Programmer en JAVA. par Tama ( tama@via.ecp.fr ). Plan. Présentation de Java Les bases du langage Concepts avancés Documentation Index des mots-clés Les erreurs fréquentes en Java Différences entre Java et C++. Présentation de Java. Qu’est-ce que Java ? Les outils pour Java - PowerPoint PPT Presentation

Text of Programmer en JAVA

  • Programmer en JAVApar Tama (tama@via.ecp.fr)

  • PlanPrsentation de JavaLes bases du langageConcepts avancsDocumentationIndex des mots-clsLes erreurs frquentes en JavaDiffrences entre Java et C++

  • Prsentation de JavaQuest-ce que Java ?Les outils pour JavaLe concept fondamental de JavaPremire application et compilation

  • 1.1. Quest-ce que Java ?Langage de programmation ayant la syntaxe du C++Langage portable (sexcute sur une machine virtuelle)Langage orient objetLangage compil

  • 1.2. Les outils pour JavaLe Java Development Kit de Sun (incluant une machine virtuelle Java), disponible sur www.sun.comUn diteur spcialis (vivement recommand), comme Netbeans ou Eclipse.

  • 1.3. Le concept fondamental de JavaTout est une classeClasse = structure logique pour crer des objetsObjets dots :de propritsde mthodes et de fonctions

  • 1.4. Premire applicationpublic class Bonjour { public static void main (String[] args) {System.out.println("Bonjour"); }}

    Ce programme affiche Bonjour

  • 1.4. et compilationPour faire fonctionner lexemple prcdant :Mettre ce code dans un fichier Bonjour.javaCompiler le code par la commande : javac Bonjour.javaLancer lapplication et vrifier le rsultat : java Bonjour

  • 2.Les bases du langageBlocs et commentairesVariables, constantes et typesLes oprateursStructures conditionnellesLes classesStructures itratives

  • 2.1. Blocs et commentairesLe code est crit dans des blocs :dlimits par { }qui peuvent tre imbriqus

    Les commentaires :Sur une seule ligne : // mon commentaireSur plusieurs lignes : /* */

  • 2.1. Blocs et commentairesExemple :

    // Une classe gnrique dcrivant un animalpublic class Animal {public Animal() {}public void faireQqc() {}}

  • 2.2. Variables, constantes et typesConventions respecter :Commencer par une lettre ou par _bonne habitude prendre : commencer par une minusculeSe composer uniquement de lettres, chiffres et de _Une variable ou constante :doit obligatoirement tre dclareest dun certain type, qui indique sa nature

  • 2.2. Variables, constantes et typesLa plupart des types sont des objets

    Exception : les types primitifs :ne sont pas des objetscommencent par une minuscule (int, char, boolean, )ont leurs quivalents objet : Integer, Char, Boolean,

  • 2.2. Variables, constantes, (ex)// Une classe gnrique dcrivant un animalpublic 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 oprateursArithmtiques : +, -, *, /, %Assignation : =, +=, *=, Incrmentation : ++, --Comparaison : , ==, =, !=Boolens : ||, &&, !Bit bit : &, |, ^Rotation : ,

  • 2.3. Variables, constantes, (ex)// Une classe gnrique dcrivant un animalpublic 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 conditionnellespublic 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 conditionnellesInstruction 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 classesCrer un reprsentant dune classe = instancier la classeAvec le mot-cl new

    Animal rufus = new Animal();rufus.grandir();rufus.grossir();

  • 2.6. Instructions de base : boucle forPermet de faire des itrations avec un compteur.

    /* Corps du programmeOn va crer 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 whilePermet de rpter une action tant quune condition nest pas remplie.

    // Cette mthode fait grandir un animal// jusqu ce quil devienne adultepublic void devenirAdulte() {while (!estAdulte()) {grandir();}}

  • Rcapitulatif : la classe AnimalVariables

    private int ageprivate int poids

    Mthodes

    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 avancsLa surcharge de fonctionsConstructeurs et destructeursLhritageLes classes abstraitesLes interfacesLes classes : diversLes packagesLa gestion des erreurs

  • 3.1. La surcharge de fonctionsUtiliser une mme fonctionnalit dans diffrents contextes

    ...public void grandir() { age += 1;}public void grandir(int nbAnnees) {age += nbAnnees;}...rufus.grandir();rufus.grandir(5);

  • 3.2. Le constructeurMme nom que la classeNe renvoie aucune donneActiv automatiquement la cration dun objet

    ...public Animal() { age = 0; poids = 1000; }...Animal rufus = new Animal();// Rufus pse 1 kg

  • 3.3. LhritageAmliorer / enrichir des classes prexistantesOn peut surcharger les mthodes 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. LhritageLe mot-cl protected :rendre les variables accessibles aux classes fillespas lextrieur.

    public class Animal {protected int age;protected int poids;...}

    public class Chien extends Animal {public boolean estVieux() { return (age > 20); }}

  • Rcapitulatif : la classe AnimalVariables

    protected int ageprotected int poids

    Mthodes

    public Animal()public void faireQqc()public int obtenirAge()public int obtenirPoids()public void grandir()public void grossir()public boolean estAdulte()public void devenirAdulte()

  • Rcapitulatif : la classe ChienVariables

    protected int ageprotected int poids

    Mthodes

    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 abstraitesAvec le mot-cl abstractCes classes ne peuvent tre instancies

    public abstract class Animal {...public abstract void faireQqc();}

    // La ligne suivante provoque une erreurAnimal rufus = new Animal();

  • Rcapitulatif : la classe abstraite AnimalVariables

    protected int ageprotected int poids

    Mthodes

    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 abstraitesPour tre utilisable, une sous-classe doit implmenter les mthodes abstraites

    public class Chien extends Animal {...public void faireQqc() { ... }}

    // On peut crer un chienChien rufus = new Chien();

  • 3.5. Les interfacesUne classe ne peut driver que dune seule autre classe Utilit et puissance des interfaces :aspect homogne depuis lextrieurinterface = classe purement abstraiteune classe peut implmenter plusieurs interfaces

  • 3.5. Les interfacespublic 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 : diversMthodes et variables de classes avec le mot-cl staticon peut les appeler / les utiliser sans crer dobjetles variables de classe ne sont pas initialises chaque instanciationFinalisation dune mthode dune classe avec le mot-cl final pour empcher la surcharge

  • 3.7. Les packagesLes packages :regroupent des classes ;certains packages sont standards (java.lang, java.io, java.utils, )on peut galement crer ses propres packagesCommande import pour importer un package

    package Zoo;import Zoo.*;import java.io.*;

  • 3.8. Gestion des erreursMcanisme 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 erreursClause throws :pour indiquer quune fonction ne traitera pas une exceptionla fonction appelante doit grer lexception

    ...protected taille;

    public int indice() throws ArithmeticException {return (poids / taille);}

    ...int i;try { i = rufus.indice(); } except { ... }

  • 3.8. Gestion des erreursExceptions personnalises :Crer ses propres exceptionsOn les invoque avec le mot-cl throw

    class ExceptionTailleNulle extends Exception {public ExceptionTailleNulle() {}}

    ...throw new ExceptionTailleNulle();

  • 4.DocumentationLa Javadoc (http://java.sun.com/j2se/1.5.0/docs/api/)www.google.frwww.commentcamarche.netLivres au CDI

  • 5.Liste des mots-cls en JavaStructures de contrleTypes de donnesClasses et interfacesMthodes et porteDivers

  • 5.1.Structures de contrleElements gnriquesbreakcontinueBoucle forforBoucle whiledowhileBloc ififthenelseBloc switchswitchcasedefault

  • 5.1.Structures de contrleTraitement des exceptionstrycatchfinallythrowthrows

  • 5.2.Types de donn