Académique Documents
Professionnel Documents
Culture Documents
landrymbaykanyimbu@gmail.com
a. Objectif Général
b. Objectif Spécifique
OUTILS
- Netbeans 6 ou 7
- JDK 6 ou 7
- MySql
- Pilote MySqlConnector
I. LA CLASSE
Une classe est le support de l'encapsulation : c'est un ensemble de
données et de fonctions regroupées dans une même entité. Une classe est
une description abstraite d'un objet. Les fonctions qui opèrent sur les
données sont appelées des méthodes. Instancier une classe consiste à créer
un objet sur son modèle.
Entre classe et objet il y a, en quelque sorte, le même rapport
qu'entre type et variable. Java est un langage orienté objet : tout appartient à
une classe sauf les variables de types primitifs. Pour accéder à une classe, il
faut en déclarer une instance de classe ou objet. Une classe comporte sa
déclaration, des variables et les définitions de ses méthodes. Une classe se
compose de deux parties : un en-tête et un corps. Le corps peut être divisé en
2 sections : la déclaration des données et des constantes et la définition des
méthodes. Les méthodes et les données sont pourvues d'attributs de visibilité
qui gèrent leur accessibilité par les composants hors de la classe.
Voici la structure d’une classe sans aucune méthode ni propriété
public class Animal
{
}
a. OBJET
Un objet est une instance d’une classe; en d’autres termes un objet
représente un exemplaire utilisable de ce que représente la classe. Il est à
comparer à une variable ordinaire; il a un nom et le type sa classe dont il
découle.
Étant donné qu’il découle de la classe, l’objet a l’autorisation directe
d’accéder aux propriétés et aux méthodes de sa classe.
c. METHODE
Les méthodes représentent les opérations que mènent les objets
issus d’une classe, elles définissent l’aspect dynamique ou comportemental
d’une classe. Les animaux peuvent dormir, manger, etc.
Avant de déclarer une méthode de la classe, il faut décider si elle
prend des arguments (paramètres) et si elle peut retourner une valeur ou
non.
NiveauxVisibilité type nom(paramètre)
{
}
Exemple :
public class Animal
{
String nom;
- Les méthodes qui renvoient des valeurs sont les fonctions, elles sont
précédées du mot clés décrivant le niveau ou principe de visibilité, du
type de la valeur retournée, du nom de la méthode et de la liste des
paramètres. Nous avons dit, nous allons classifier les animaux par
leurs mode d’alimentation ; implémentons une méthode leurs
permettant de détecter si l’animal est un carnivore de l’aliment.
public String manger(String nourriture)
{
if (nourriture.equals("viande"))
{
this.modealimentation="carnivore";
}
return modealimentation;
}
- Les méthodes qui ne renvoient aucune valeur sont les procédures et
elles sont précèdes du mot clé void. void manger(){}.
public void dormir()
{
System.out.println("L'animal est endormi");
}
NB.
La POO ajoute le principe d’accessibilité (visibilité) qui consiste à
contrôler les classes et leurs membres (propriétés et méthodes). Les niveaux
de visibilités sous java sont les suivantes :
III. CONSTRUCTEUR
Pour qu’une classe puisse instancier les objets, il lui faut un
constructeur. Il s’agit alors d’une méthode permettant de créer des objets. Si
vous omettez d’insérer un constructeur, java le créera pour vous au moment
de la compilation. Le constructeur porte le même nom que la classe et il est
souvent déclaré public.
public class Animal
{
private String nom;
private String modealimentation;
private int age;
public Animal(String nom, String modealimentation, int age)
{
this.age=age;
this.modealimentation=modealimentation;
this.nom=nom;
}
Dans ce cas au sein de la méthode principale, nous pouvons créer
un objet A1 qui permettra de passer en paramètres le nom, le mode
alimentation ainsi que l’âge de l’animal. Donc nous aurons du code ci-après :
Animal A1=new Animal("Chat","Carnivore",2);
Classe Chat
public class Chat extends Animal {
private String couleur;
public Chat(String nom, String modealimentation, int age, String couleur)
{
super(nom, modealimentation, age);
this.couleur=couleur;
}
public String getCouleur() {
return couleur;
V. LE POLYMORPHISME
Le polymorphisme correspond à la capacité d’un objet à choisir son
type (sa classe) au moment de l’exécution (dynamique) la méthode qui
correspond le mieux à ses besoins parmi ses propres méthodes ou celle des
méthodes mère. Une autre particularité du polymorphisme est que toutes les
méthodes portent le même nom. Au sein d’une classe elle se distingue par le
nombre de paramètres ou le type de ces derniers.
Le polymorphisme correspond à la manipulation des objets sans
pour autant connaître leurs types.
Exemple :
package javaapplication5;
VI. COLLECTION
Une collection est une particularité des tableaux, elle permet de
stocker les objets de même type ou nature. Java comporte plusieurs types de
collection le plus utilisées sont ArrayList.
Exemple :
import java.util.ArrayList;
public class JavaApplication5 {
public static void main(String[] args) {
String kolo="soso";
ArrayList<String> titre=new ArrayList<String>();
titre.add("ciel");
titre.add(kolo);
}
}
Une erreur survient si vous essayer d’insérer un entier dans une
collection du type chaine de caractères. La taille de la collection est calculable
à la taille d’un tableau (taille-1), pour dire que le premier élément est à
l’indice 0 et le dernier objet à l’indice taille -1.
String res=titre.get(0);
System.out.println(res);
Exemple :
ArrayList<String> titre=new ArrayList<String>();
titre.add("ciel");
titre.add(kolo);
titre.add("sisoko");
titre.remove(0);//là on supprime l’objet à la position 0 de la collection
titre()
Toujours dans ce même chapitre s’il faut tout effacer nous utilisons
la méthode clear().
Exemple :
chat chat1=new chat("solo", "kolo");
chat chat2=new chat("sila", "kola");
ArrayList<chat> titre=new ArrayList<chat>();
titre.add(chat1);
titre.add(chat2);
Cela nous permet de dire qu’il existe déjà la classe chat dont voici
son architecture.
public class chat extends fellin {
String nom;
String postnom;
public chat(String lenom, String lepostnom){
nom=lenom;
postnom=lepostnom;
}
}
NB : Il est à préciser ici que dès que vous créez votre collection, elle n’est peux pas être utilisée
dans le même bloc d’instruction ; il faut soit l’utiliser dans une méthode, constructeur, accesseur
ou autre classe.
String nom;
int age;
public personne()
}
}
Ce qu’il voit
Ce qu’il fait
Utilisateur
Vue
Contrôleur
Modèle
b. La Vue
C’est avec quoi l'utilisateur interagit se nomme précisément la vue.
Sa première tâche est de présenter les résultats renvoyés par le modèle. Sa
seconde tâche est de recevoir toute action de l'utilisateur (hover, clic de
souris, sélection d'un bouton radio, cochage d'une case, entrée de texte, de
mouvements, de voix, etc.). Ces différents événements sont envoyés au
contrôleur. La vue n'effectue pas de traitement, elle se contente d'afficher les
résultats des traitements effectués par le modèle et d'interagir avec
l'utilisateur.
Plusieurs vues peuvent afficher des informations partielles ou non
d'un même modèle. Par exemple si une application de conversion de base a
un entier comme unique donnée, ce même entier peut être affiché de
multiples façons (en texte dans différentes bases, bit par bit avec des boutons
à cocher, avec des curseurs). La vue peut aussi offrir à l'utilisateur la
possibilité de changer de vue. Ceci permet une certaine récursivité du
modèle.
c. Le Contrôle
Le contrôleur prend en charge la gestion des événements de
synchronisation pour mettre à jour la vue ou le modèle et les synchroniser. Il
c. Implémentation de l’application
i. Introduction
L’application que nous développons dans ce chapitre, constitue la
séparation stricte de l’implémentation de la classe persistance, contrôle pour
mettre en œuvre les règles de gestion ainsi que la présentation pour la
visualisation des résultats.
Sur ce, nous commençons d’abord par implémenter la couche
Modèle avec la classe (entité) article. Sachant que notre application se
connectera à la base de données, celle-ci permet de gérer les données sur les
articles. En guise d’enseignement, nous créons une seule table (article) que
nous utiliserons dans la suite de ce cours.
a. La Méthode Enregistrer
La méthode enregistrer que nous implémentons ici, permet
d’insérer un nouveau objet (tuple) dans la base de données. Une fois l’appeler
nous devons lui fournir les données différentes susceptible d’être stockées
dans la table. Comme la classe n’a implémentée que deux proprié tés (Code &
Designation), l’appel de cette méthode devra exiger aussi deux valeurs qui
devront représentées ces deux propriétés. Voici implementation.
b. La Méthode Lire
La méthode Lire quant à elle, implémente la lecture ou le
parcourt de données seulement. Comme la lecture ne doit pas se faire
directement dans la base données en dehors de cette couche, les données
que nous lisons seront automatiquement gérées dans la collection créée
précèdement pour question de sécurité. L’implémentation est la suivante :
b. La méthode Save
Celle-ci permet lors de son appel d’enregistrer, les données au sein
de la base de données. Notons que dans sa signature, vous verrez qu’il y a les
différents arguments. Cela signifie qu’avant que celle s’exécute, il faut fournir
les données sur lesquelles on devra travailler. Notons que ces données
représentent les informations à enregistrer.
Voici son code.
public void Save(String Code, String Designation)
{
this.Enregistrer(Code, Designation);
}
Remarque: Il peut arriver nous voulions charger tous les codes dans un combobox, la solution sera
celle d’utiliser les codes suivants :
private void formComponentShown(java.awt.event.ComponentEvent evt) {
int i=0;
m.Parcourir();
while (i<= m.lect.size()-1)
{
this.list.addItem(m.lect.get(i).getDesignation());
i++;
}
}
Jusqu'à présent tous les programmes Java qui ont été écrits dans
les autres chapitres sont des applications autonomes pouvant fonctionner
directement sur une plateforme Windows, Unix, Linux, MacOs...
Une des raisons initiales, du succès de Java peut être la raison
majeure, réside dans la capacité de ce langage à créer des applications
directement exécutables dans un navigateur contenant une machine virtuelle
java. Ces applications doivent être insérées dans le code interne d'une page
HTML (Hyper Text M arkup Language) entre deux balises spécifiques.
Ces applications insérées dans une page HTML, peuvent être
exécutées en local sur la machine hôte, le navigateur jouant le rôle
d'environnement d'exécution. Elles peuvent aussi être exécutées en local par
votre navigateur pendant une connexion à internet par téléchargement de
l'application en même temps que le code HTML de la page se charge. Ces
applications Java non autonomes sont dénommées des applets.
a. Introduction
i. Création de l’Applet
Pour créer une applet, il faut que votre classe contenant les codes
puisse hériter de la classe Applet de la manière suivante :
package lmkapplet;
import java.applet.*;
© La Méthode init()
Lorsqu'une applet s'exécute la méthode principale qui s'appelait
main( ) dans le cas d'une application Java se dénomme ici init( ). Il nous
appartient donc de surcharger dynamiquement, (redéfinir) la méthode init
de la classe Applet afin que notre applet fonctionne selon nos attentes.
}
Dans ce cas vous avez créé un applet qui n’implémente rien. Une
fois fini vous pouvez lancer l’exécution de votre applet tout en étant dans java
(l’application java appletviewer va s’encharger). Avec l’Environnement de
développement intégré pour lancé l’exécution de l’applet, il ne faut pas le faire
comme si c’était l’application java classique, par contre il faut aller dans le
menu « Exécuter », et sur l’option « Exécuter le Fichier » (soit combiné les
touches MAJ + F).
Vous aurez la page suivante : *
NB :
Avec cette même méthode vous pouvez changer la couleur d’arrière-
plan de votre page web de la manière suivante
import java.applet.Applet;
import java.awt.Color;
public class kan extends Applet {
public void init() {
this.setBackground(Color.CY AN);//changement de couleur dans l’applet
}
}
I. INTRODUCTION
a. LA SOCKET
i. Serveur
Nous créons par la suite un objet socket, qui permettra dès qu’il y a
une demande de connexion, qu’on puisse se connecter. Ensuite, nous
insérons aussi une boucle pour permettre dès qu’il y a une demande qu’on
établisse la connexion directement avec le client.
import java.net.*;
public class ben {
ii. Client
import java.net.*;
public class CLIENT {
public static void main(String[] args){
try
{
Socket client=new Socket(“BENENLAND-PC”,6000);
System.out.println(“Le serveur a accepté votre demande”);
}catch(Exception e) {System.out.printl(“Pas de connexion car ” +e)}
}
}
S’il faut expliquer ces codes; nous commençons par créer une
classe client toutes en gérant les exceptions (ou les erreurs) avec try, nous
créons ensuite un objet socket doit prendre deux paramètre (le nom de la
machine où se loge le serveur ainsi que son port) en suite imprimer un
message de connexion dès que la connexion est établie avec le serveur.
Les flux sont des informations qui peuvent être émises ou reçues
d’une part par le client et de l’autre part par le serveur. Il s’agit du flux in
pour les entrées et du flux out pour les sorties.
1. Le Flux d’Entrée
import java.net.*;
import java.io.*;
public class client {
public static void main(String[] args) {
// TODO Auto-generated method stub
String rec;
try
{
Socket client=new Socket("BLESSING",6000);
BufferedReader land=new BufferedReader(new
InputStreamReader(client.getInputStream()));
rec=land.readLine();
System.out.println("Serveur dit: " + rec);
System.out.println("Ta Réaction Client: ");
}catch(Exception e){System.out.println("pas de connexion");}
}
}
1. Le Flux de Sortie
i. Client :
Ces codes permettent au client de demander une connexion, une
fois connecté, d’échanger avec le serveur aussi longtemps qu’il y a la
connexion c'est-à-dire aussi longtemps que le serveur le voudra.
import java.net.*;//importer la librairie net pour le socket
import java.io.*;//import la io pour les entrees/sortie à l'écran
public class client {
public static void main(String[] args) {
// TODO Auto-generated method stub
String rec,mes;
try
{
//Création du socket client
Socket client=new Socket("BLESSING",6000);
//Création du flot d'entrée pour les messages serveur
BufferedReader land=new BufferedReader(new
InputStreamReader(client.getInputStream()));
//création du flot d'entrée pour les message à envoyer
par le client
BufferedReader lmk=new BufferedReader(new
InputStreamReader(System.in));
//création du flot de sortie
ii. Serveur
Ces codes sources nous permettent premièrement de créer un
socket du serveur, le mettre à l’écoute du port 3500 ; une fois la connexion
arrivé on doit l’accepter et récupérer l’adresse IP de la machine demandant la
connexion ; en fin commencer le chat.
import java.net.*;
import java.io.*;
public class serveur {
public static void main(String[] args)throws Exception {
// les variables pour les messages d'envoie et de reception
String mesenv,mesrec;
boolean vrai=false;
ServerSocket serv=new ServerSocket(6000);
Socket client;
System.out.println("PROCESSUS DE DEMARRAGE DU
SERVEUR...");
System.out.println("=================================================
====================");
while(!vrai)
{
//accepter la connexion demandé par le client
client=serv.accept();
//afficher l'adresse IP du client
System.out.println("son addresse est " +
client.getInetAddress() );
//création du flot de sortie
PrintStream sortie= new
PrintStream(client.getOutputStream());
//création du flot d'entree pour les messages
du client
a. Application I.
Jg package UDP;
while(true)
byte[] valenv=msgenv.getBytes();
DatagramPacket pace=new
DatagramPacket(valenv, valenv.length,InetAddress.getLocalHost(),700);
} } }
b. Application II.
public class client {
byte[] valenv=msgenv.getBytes();
DatagramPacket pace=new
DatagramPacket(valenv, valenv.length,InetAddress.getLocalHost(),5000);
ser.send(pace);
} } }
a. LE THREAD
i. Introduction
Client 1
SERVEUR Requête client
Tâche1
GESTION DES
CONNEXIONS CLIENTS Requête client Client 2
Requête client
Tâche2
Dans ce cas le thread doit intervenir ; donc nous aurons une classe
qui doit s’occuper des demandes de connexion et l’autre qui s’occupera des
échanges des informations entre le serveur et les clients.
L’architecture du serveur pour toutes les deux classes devient alors
la suivante :
import java.net.*;
public class serveurb {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
//creation du socket du serveur
ServerSocket serveur=new ServerSocket(3000);
//creation du socket du client
Socket client;
//affichage du message de lancement
System.out.println("Lancement du serveur....." );
//tantqu’il les demandes
while(true){
//accepter les connexions
client=serveur.accept();
//Transmettre les socket à la classe service
service ben=new service(client);
//lancer
ben.start();
}}}
Tâche 2 :
Cette dernière classe se base sur l’échange d’information entre le
client et le serveur ; elle échange les informations sur base du socket du
client qu’on a accepté la demande de connexion. Son architecture est la
suivante :
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.*;
import java.util.Scanner;
public class service extends Thread {
//creation des variables des variables de classes
Socket ben; String mesrec,mesenv;
//creation d’un constructeur
public service(Socket client){
//recuperation du socket client
this.ben = client;
}
//construction de la méthode run() pour l’exécution des tâches
public void run(){
try{
//creation de l’objet d’entrée