TP Traitement d’images
RAPPEL DE JAVA
Sujets abordés: Java et Programmation Orientée Objets
1. Introduction
Le but de ce TP est de rappeler différentes notions de Java avant d’aborder les TP de traitements
d’images « applications industrielles ». Les différentes questions de ce TP sont optionnelles et
dépendent surtout de votre niveau dans ce langage, aborder donc celles qui vous paraissent nécessaires.
Une lecture attentive du TP est au moins demandée.
2. Introduction à Java
Java est un langage développé dans le milieu des années 1990. La particularité de Java réside dans son
indépendance au matériel grâce à l’utilisation d’une machine dite virtuelle. Java est un langage O.O
(Orienté Objets). La programmation Java est donc basée sur la manipulation d’objets composés de
données membres et de méthodes. Les objets sont des instances de classes. La classe correspond à la
généralisation de type, une classe est une description d’un ensemble d’objets ayant une structure de
données commune et disposant des mêmes méthodes. Différentes ouvrages Java disponibles en ligne
peuvent trouvés en [1] [2] et [3] (voir bibliographie).
Premier programme
Vous pouvez écrire le programme suivant, l’enregistrer le dans un fichier (App.java) et le compiler et
l’exécuter à l’aide de votre environnement de programmation. Vous pouvez également utiliser la
commande « javac App.java » pour la compilation du fichier suivie de la commande « java –cp .\ App
» pour son exécution.
class App {
public static void main(String args[])
{ System.out.println("Hello World"); }
}
Remarque : le « .\ » est optionnel selon la configuration de l’exécutable java sur votre système.
Remarque : Des informations détaillées sur l’utilisation de javac et java sont fournies par la
documentation de la plate-forme SDK : j2sdkx.x.x/docs/index.html
App correspond ici à votre classe, et main la fonction d’exécution principale de cette classe. L’appel de
la fonction System.out.println correspond au printf en C et cout en C++. La déclaration static et public
sont des obligations indispensables pour l’appel de la fonction main. Cette déclaration vous oblige
également de déclarer votre classe App contenant le main dans un fichier de même nom (App.java). On
admettra dans cette première partie ces différentes notions, elles seront abordées plus en détails dans la
suite du TP. Dans votre répertoire source, le compilateur a créé un fichier (App.class). Ce fichier
correspond à votre exécutable Java, c’est le « binaire » (ou byte code) utilisé par la machine virtuelle
Java pour exécuter votre programme.
Premières notions .O.O
Vous pouvez reprendre le programme précédent de la façon suivante :
/** HelloWorld */
class HelloWorld {
//hello member
String hello = "Hello World";
/** sayHello */
void sayHello()
{ System.out.println(hello); }
}
/** App class */
class App {
/ ** main function */
public static void main(String args[]) {
HelloWorld my = new HelloWorld();
my.sayHello();
}
}
Vous avez défini ici votre première classe HelloWorld, et sa méthode sayHello(). my correspond à
votre premier objet instance de la classe HelloWorld, alloué suite à l’appel de l’opérateur new. La
notion d’opérateur est abordée plus tard dans ce TP. La méthode sayHello() est appelé via l’opérateur
point ., tel que my.sayHello(). Vous avez également défini votre première donnée membre hello de
votre classe HelloWorld de type String. Sur cet exemple, des commentaires ont été rajoutés de type
ligne // et bloc /** */.
A travers ce court exemple, vous avez vu les principes de base de la P.O.O, la classe HelloWorld, sa
méthode sayHello et sa donnée membre hello, et l’objet my instance de la classe HelloWorld alloué
suite à l’appel de l’opérateur new.
Remarque : La classe HelloWorld a été définie de façon Majuscule-Majuscule, et la méthode sayHello
de façon minuscule-Majuscule. C’est une convention de programmation implicite en Java.
Remarque : Prenez l’habitude de programmer en « anglais », et de commenter vos programmes à la
manière de cet exemple. En effet, le code et les commentaires formatés ainsi peuvent être traités par la
suite par l’outil de documentation automatique de code javadoc.
API specification
Avant d’aborder plus en détails la suite de ce TP, il nécessaire d’introduire l’API specification de la
plate forme Java 2 SDK. Ouvrir avec votre explorateur le fichier j2sdk1.x.x.x\docs\api\index.html, et
placer ce fichier en raccourci sur votre système (vous aurez à l’utiliser de nombreuses fois).