Vous êtes sur la page 1sur 30

1

Programmation avancée
Java
PARTIE 7 – LES API
2
Plan

 Historique
 Eléments du langage
 Classes et objets
 Collections
 Héritage
 Flux E/S
 Les API
 Interface graphique
 Connexion aux bases de données
3

API Standards
4
java.lang.*
Boolean
Character
Class
Double
Math
Float
Number
Integer
Object Process
Long
Runtime
String
StringBuffer Clonable

System
Thread Runnable
ThreadGroup
Throwable
5
java.lang.String

 La classe String gère des chaînes de caractères : des ensembles de char


 Un objet de type String n’est pas modifiable
 Une modification d’un objet entraîne la création d’une nouvelle instance
 Pour concaténer :
 Soit +
 Soit +=
6
java.lang.String

 Des fonctions de conversions :


String s = String.valueOf(1);
int i = Integer.valueOf("123");

 Attention, pour tester la comparaison entre deux String :


if (s == "test") // erreur
if ("test".equals(s)) // Correct
7
java.lang.StringBuilder

 La classe StringBuilder gère des chaînes de caractères modifiables


 L’ajout d’une chaîne de caractères n’entraîne pas la création d’une
nouvelle instance.
 Quelques fonctions utiles :
 setCharAt(int indice, char carac) : modification d’un caractère à un indice
donné
 append(String chaine) : concaténation
 insert(int index, String chaine) : ajout d’une chaîne de caractères à un indice
 toString() : conversion en string
8
java.lang.StringBuilder

 Exemple :

StringBuilder sb = new StringBuilder("abc");


sb.setCharAt(1, 'B'); // sb= "aBc"
sb.insert(1, "1234"); // sb = "a1234Bc"
sb.append("defg"); // sb = "a1234Bcdefg"
String s = sb.toString(); // s = "a1234Bcdefg"
9
java.lang.Math

 C’est une librairie qui met à disposition des fonctions mathématiques


 Fonctions trigonométriques :
 double sin(double x)
 double cos(double x)
 double tan(double x)
 double asin(double x)
 double acos(double x)
 double atan(double x)
10
java.lang.Math

 Fonctions exponentielles :
 double exp(double x)
 double log(double x)
 double sqrt(double x)
 double pow(double x, double y)

 Fonctions de valeur absolue


 Entier : int abs(int x) et long abs(long x)
 Décimaux : float abs(float x) et double abs(double x)
11
java.lang.Math

 Fonctions d’arrondi :
 double ceil(double x)
 double floor(double x)
 int round(float x)
 double rint(double x)
 Génération aléatoire de nombres : double random()
 Fonctions minimum/maximum
 int min(int x, int y)
 int max(int x, int y)
12
Les « Data Type Wrapper »

 Ces classes permettent de manipuler des types primitifs sous une


représentation d’objets
 Les classes correspondantes :
 Type logique : Boolean
 Caractères : Character
 Entier : Byte, Short, Integer, Long
 Decimal : Float, Double
13
Les « Data Type Wrapper »

 Les fonctions implémentées par chacune des classes :


 type typeValue()
 String toString()
 Boolean equals(Object obj)
 static type valueOf(String s)
14
java.lang.Class

 C’est une classe de base en Java


 Cette classe n’est pas instanciable
 Elle crée dynamiquement des nouvelles instances en appelant le
constructeur par défaut

Class classname = Class.forName(nom_classe);


Classe d = (Classe)classname.newInstance();
15
java.lang.runtime

 La classe Runtime permet d’accès à des informations concernant le


système.
 Quelques fonctions :
 static Runtime getRuntime()
 long freeMemory()
 void gc()
 long totalMemory()
16
java.util.*

BitSet

Date

Dictionary Hashtable Properties

Object
Observable

Random

StringTokenizer

Vector Stack
17
java.util.Date

 Cette classe permet d’obtenir des informations concernant la date et


l’heure du système
 Des fonctions de manipulations
 long getTime()
 String toString()
 void setTime(long)
 Des fonctions de comparaison
 before()
 after()
 equals()
18
java.util.Date

 Exemple avec Date :


System.out.println(new Date().getTime());

 Exemple avec Calendar :


Calendar cal = Calendar.getInstance();
cal.getTime();
19
java.util.properties

 Cette classe charge un ensemble d’objets dans une table clé-valeur

 Elle permet notamment de charger depuis un fichier les associations clés-


valeurs

 Ces associations continuent à être sauvegardées dans le fichier lors de


l’arrêt de l’application
20
java.util.Random

 Cette classe permet de générer des nombres pseudo-aléatoires


 Deux constructeurs :
 Un par défaut pour initialiser à partir de l’horloge
 Un avec paramètre pour forcer la valeur d’initialisation

Random rand = new Random();


rand.nextInt();
21

API
supplémentaires
22
Installation d’une API supplémentaire

 Des API non standards existent

 Chaque librairie est packagée sous la forme d’une archive


 Contient des classes Java
 Contient des fichiers de configuration

 Plusieurs possibilités pour les ajouter :


 Soit les importer manuellement dans le projet
 Soit utiliser Maven
23
Maven

 Pour utiliser Maven :


 Installation de Apache Maven en local et configuration des variables d’environnement
 Un fichier pom.xml à la racine du projet

<project xmlns=http://maven.apache.org/POM/4.0.0 xmlns:xsi="http://www.w3.org/2001/XMLSchema-


instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-
4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>nom_projet</artifactId>
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>
</project>
24
org.apache.log4

 API qui permet de tracer des événements particuliers


<groupId>log4j</groupId>
<artifactId>log4j</artifactId>

 Le traçage peut avoir plusieurs niveaux (debug, info, warn, error)


private static Logger logger = Logger.getLogger(Exemple.class);
logger.debug("test");
25
org.apache.log4

 Fichier de configuration :

log4j.rootLogger=DEBUG, fileAppender
log4j.appender.fileAppender=org.apache.log4j.RollingFileAppender
log4j.appender.fileAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.fileAppender.layout.ConversionPattern=%d [%-5p]
(%F:%M:%L) %m%n
log4j.appender.fileAppender.File=chemin
26
JUnit

 API qui permet de faire des tests unitaires automatisés dans une application
<groupId>junit</groupId>
<artifactId>junit</artifactId>
 Des classes Java qui étendent de junit.framework.TestCase
 Des fonctions permettant de tester les programmes
 assertEquals(val1, val2)
 fail(chaine)
 setUp()
 tearDown()
27
Struts

 API permet de gérer les formulaires

 Framework utilisé dans les applications Web :


 Séparation MVC
 Page
 Contrôleur
 Formulaire au sens objet
28
Spring

 Framework OpenSource permettant entre autre :


 De faire de l’Inversion de Contrôle (IOC)
 D’injecter des dépendances
 Faire de l’AOP
29
Liens importants

 Des sites de documentation ou d’utilisation d’API :


 https://docs.oracle.com/en/java/javase/17/docs/api/index.html
 www.jmdoudoux.fr/java
 https://mkyong.com/
30

Fin partie 7

Cyril MARCQ
cyril.marcq@univ-lille.fr

Vous aimerez peut-être aussi