Initiation à la programmation orientée-objet avec le langage Java
java -classpath /prog/exos1:/cours MyProg. 1.2 Programmation orientée-objet. Chaque langage de programmation appartient à une “famille” de langages
Support de cours Java - Structures de données Notions en Génie
Classes de java.util; Classes et interfaces de comparaison . . . . 109 Ces notes de cours rassemblent des éléments de base du langage Java. Les cha-.
Apprenez à programmer en Java
24 sept. 2011 Bienvenue dans mon cours de programmation en Java. ... Voici donc le code complet : ... Vous devez taper le nom complet de votre classe.
Programmer en Java
variable correspondante ne peut pas être modifiée au cours de l'exécution. Le tableau suivant fournit la liste complète des opérateurs de Java ...
PROGRAMMATION ORIENTEE OBJET JAVA Programmes du cours
JAVA. Programmes du cours Algorithmique et Programmation Orientée Objet Java ... Une sortie de boucle se fait toujours après un parcours complet des ...
Les bases de la programmation orientée objet avec Java
Le cours de MariePierre Béal Le bytecode est interpété par une machine virtuelle Java ... son nom de paquetage complet ou qu'on utilise la directive.
Support de cours Java
– Les places vides dans le tableau qui surviennent pendant le jeu ne peuvent être remplies que par des rois. 2A.H. Morehead et G. Mott-Smith “The Complete Book
Cours programmation- orientée objet en Java
Plan du cours. ?. Introduction: ? programmation objet pourquoi? Comment? Un exemple en Java. ?. Classes et objets (révision).
Java EE
Java EE. -. Cours 1. Cours de 2e année ingénieur Java Enterprise Edition est un framework ... Une plate-forme d'exécution JEE complète implémentée.
Introduction programmation Java - Cours 8
False. Cours 8– (Stéphane Airiau). Java 7. Page 8. On peut lire le code des classes Java. soit sur le site de openjdk on peut "lier" le code source sous éclipse.
Introduction programmation Java
Cours 8
Stéphane Airiau
Université Paris-Dauphine
Cours 8- (Stéphane Airiau)Java1
Quelques détails vus en TD
Cours 8- (Stéphane Airiau)Java2
Tests Junit
chaque test est vu "presque comme" un nouveaumaina priori, par défault on ne contrôle pas l"ordre dans lequel les tests sont
effectués on peut ajouter des instructions pour induire un ordreëil faut écrire les tests indépendemment les uns des autresLes variables d"instance peuvent être recréées
pas une bonne idée de ma part de vous demander d"écrire des méthodes dont le résultat est un affichage ëpourquoi est-ce difficile à tester?Cours 8- (Stéphane Airiau)Java3méthoderemovedans une boucleforDans le TD, on demande d"implémenter une méthode qui enlève un élé-
ment dans une liste. On pourrait écrireListCours 8- (Stéphane Airiau)Java4
méthoderemovedans une boucleforIl y a deux raisons pour lesquelles ce code n"est pas bien : 1- performance 2- cela devrait pr ovoquerune err eur! but nodoby"s perfect!4902078
Cours 8- (Stéphane Airiau)Java5
méthoderemovedans une boucleforListIterator it = ls.iterator();
while(it.hasNext()){String w = it.next(); if(w.equals("Miny"))it.remove(); Cours 8- (Stéphane Airiau)Java6
equalspublic classBox{static intcount = 0;private intid;private inthgX, hgY, bdX, bdY;publicBox(int a, int b, int c, int d){id= ++count;
hgX=a; hgY=b; bdX=c; bdY=d;public static voidmain(String[] args){List
Cours 8- (Stéphane Airiau)Java7
On peut lire le code des classesJava.soit sur le site deopenjdkon peut "lier" le code source sous éclipse
ëquand on a une erreur, on peut suivre le problème jusque dans le code source.src/share/classes/java/util/ArrayList.javaregardez par exemple la méthodeindexOf().par curiosité, on peut aussi regarder comment est géré la taille des
tableaux et comment ils sont augmentésCours 8- (Stéphane Airiau)Java8
Retour sur les streams
Cours 8- (Stéphane Airiau)Java9
Remplacez des itérations
en itérant, on précise l"ordre avec lequel on réalise des opérations avec les streams, on utilise des fonctions qui indique le traitement, on laisseJavachoisir la meilleure manière de réaliser les opérationsprincipe "what, not how"les opérations sur les streams sont "fainéantes" (lazy) : elles ne sont
exécutée que quand on a vraiment besoin de les exécuter!Cours 8- (Stéphane Airiau)Java10
Utilisation avec lesStreamSupposonsqu"onaunecollectiondechaînesdecaractèresetquel"onveut compter les mots de plus de 12 caractères.1intcount =0;2for(String m: words)
3if(m.length()>12)
4count++;
L"idée avec lesstreams sera d"écrire le code suivant :longcount = words.stream().filter(w-> w.length > 12).count();En lisant, on comprends exactement ce qui se passe.
Désormais,Javapeut optimiser l"exécution de ce code 1. création d"un str eam 2. opérations intermédiair estransformant le str eaminitial (en d"autr es, pourrait utiliser plusieurs étapes) 3. opération terminale pour pr oduirele résultat. Nous allons voir plus en détail ces trois phases.Cours 8- (Stéphane Airiau)Java11
Création destreamsA partir d"une collection : appel de la méthodestream()A partir d"un tableau :
utiliser la méthode de classeofde la classeStream:Stream
// split découpe une chaîne de caractères et retourne un tableau deStringappel de la méthode de classestream(array, from, to)de la
classeArraysStreamStream randDoubles =
Stream.generate(Math::random);
avec la méthodeiterateStreamCours 8- (Stéphane Airiau)Java12
Création destreams (suite)On peut aussi avoir une séquence finie aveciterateen ajoutant un test
d"arrêt. autres exemples de de créationla méthode d"instancetokens()de la classeScannerretourne un StreamTransformation destreams : filtreun filtre permet de récupérer un nouveau stream dont les éléments ont
passé un test. Le test doit donc être une fonction qui retourne un booléen ëdoit donc suivre l"interface fonctionnellePredicatefonctionT!fTrue,Falseglongcount = words.stream().filter(w-> w.length > 12).count();Cours 8- (Stéphane Airiau)Java14
Transformation destreams :mapL"opérateurmappermet detransformerle stream.Stream
Cours 8- (Stéphane Airiau)Java15
Transformation destreams :flatmapSi la fonction retourne un stream, on pourrait avoir comme résultat un
stream de stream. Si on veut simplement un seul stream, on peut alors utiliser l"opérateurflatmapCours 8- (Stéphane Airiau)Java16 transformation de stream La méthodelimit(int n)retourne un nouveau stream qui se termine après au plusnélémentsStreamCours 8- (Stéphane Airiau)Java17
Autres transformations de streams
Evidemment, il vaudrait mieux que le premier stream ne soit pas infini!La méthodedistinctretourne un stream qui n"a pas de doublons.Stream.of("boo", "bee", "boo", "boo", "bee", "boo").distinct();
va être un stream avec seulement "bee" et "boo". La méthodesortedpermet de trier un stream (mieux vaut qu"il contienne des objets d"une classe qui implémenteComparable!) La méthodepeekretourne le même stream, mais applique une fonctionà chaque élémentInteger[] powersOfTwo =
Stream.iterate(1.0, n ->2
*n).peek(e -> System.out.println("treating "+e)) .limit(20).toArray();Cours 8- (Stéphane Airiau)Java18
Réduction de streams
Réduction simple :count,min,max
Point délicat : que se passe-t-il quand le stream est vide? ëcertaines opération de réduction retourne une valeur de type OptionalOptional startsWithW =
words.filter(s -> s.startsWith("W")).findFirst(); Il existe de la même manièrefindAnysi on ne se focalise pas vraiment sur le premier. Si on veut juste savoir s"il y a au moins un élément,anyMatchsera alors judicieux.boolean b = words.anyMatch(s -> s.startsWith("W")); Il existe également des méthodesallMatchetNoneMatchqui vérifient si tous ou aucun élément satisfait un prédicat. Cours 8- (Stéphane Airiau)Java19
Le type optionel
L"idée est de ne pas utiliser qu"une méthode retournenullquand il n"y a pas de résultat (provoque unNullPointerExceptionpas toujours simple à corriger) ëdonner une valeur alternativeString result = optionalString.orElse(""); ëjeter une exception (on verra cela bientôt)String result = ëlancer un calcul alternatif avecorElseGet().String result = optionalString.orElseGet( () -> if (Math.random()>0.5) return "bonjour"; else return "bye");ifPresentprendcommeparamètreunefonction:silavaleuroptionelle existe, elle est passée à cette fonction.optionalValue.ifPresent(v -> results.add(v));Cours 8- (Stéphane Airiau)Java20
Obtenir le résultat
ex affichage : stream.forEach(System.out::println); ex : obtenir un tableau :String[] result = stream.toArray(String[]::new); Notez que le type destream.toArray()estObject[]car on ne peut pas faire un tableau avec des génériques. On peut avoir le bon type en passant le constructeur en paramètre. L"interfaceCollectorest utilisée pour collecter les éléments dans une autre structure. La classeCollectorspropose des méthodes pour des structures classiques.ListTreeSet result =
Cours 8- (Stéphane Airiau)Java21
Obtenir le résultat (suite)
concatenation de chaînes de caractères :String result = stream.collect(Collectors.joining()); concatenation de chaînes de caractères avec ajout d"un délimiteur : String result = stream.collect(Collectors.joining(", ")); On peut utiliser une méthode d"aggrégation (somme, compter, moyenne, min, max) :IntSummaryStatistics summary = stream.collect( double avg = summary.getAverage(); double max = summary.getMax();Cours 8- (Stéphane Airiau)Java22
Obtenir le résultat : reduce
Optional sum =
values.stream().reduce((agg, next) -> agg +next); est équivalent à la somme. On retrouve ici des choses similaires à la programmation fonctionnelle. Cours 8- (Stéphane Airiau)Java23
quotesdbs_dbs50.pdfusesText_50[PDF] cours java interface graphique pdf
[PDF] cours java netbeans pdf
[PDF] cours java pdf complet
[PDF] cours java pdf site du zero
[PDF] cours java pour les nuls pdf
[PDF] cours javascript complet pdf
[PDF] cours kartable pdf gratuit
[PDF] cours knowledge management pdf
[PDF] cours lamartine abidjan
[PDF] cours lea anglais espagnol
[PDF] cours lea economie
[PDF] cours leadership gratuit pdf
[PDF] cours leadership pdf
[PDF] cours lentille convergente 1ere s