Académique Documents
Professionnel Documents
Culture Documents
JAVA SE
MOHAMED KONATE
TECHNOLAB-ISTA
Java - Méthodes
Une méthode Java est une collection d'instructions qui sont regroupées pour
effectuer une opération. Lorsque vous appelez le System.out. println() , par exemple,
le système exécute en fait plusieurs instructions afin d'afficher un message sur la
console.
Vous allez maintenant apprendre à créer vos propres méthodes avec ou sans valeurs
de retour, à invoquer une méthode avec ou sans paramètres et à appliquer
l'abstraction de méthode dans la conception du programme.
Méthode de création
Considérant l'exemple suivant pour expliquer la syntaxe d'une méthode -
Syntaxe
public static int methodName(int a, int b) {
// body
}
Ici,
• public static − modificateur
• int - type de retour
• methodName - nom de la méthode
• a, b − paramètres formels
• int a, int b − liste de paramètres
La définition de méthode se compose d'un en-tête de méthode et d'un corps de
méthode. La même chose est montrée dans la syntaxe suivante -
Syntaxe
modifier returnType nameOfMethod (Parameter List) {
// method body
}
La syntaxe ci-dessus comprend -
• modifier - Il définit le type d'accès de la méthode et son utilisation est
facultative.
• returnType - La méthode peut renvoyer une valeur.
• nameOfMethod - Il s'agit du nom de la méthode. La signature de la
méthode se compose du nom de la méthode et de la liste des
paramètres.
• Liste de paramètres - La liste des paramètres, c'est le type, l'ordre et le
nombre de paramètres d'une méthode. Ceux-ci sont facultatifs, la
méthode peut contenir zéro paramètre.
• corps de la méthode - Le corps de la méthode définit ce que la méthode
fait avec les instructions.
Exemple
Voici le code source de la méthode définie ci-dessus appelée min() . Cette méthode
prend deux paramètres num1 et num2 et renvoie le maximum entre les deux -
return min;
}
Appel de méthode
Pour utiliser une méthode, il faut l'appeler. Il existe deux manières d'appeler une
méthode, c'est-à-dire que la méthode renvoie une valeur ou ne renvoie rien (pas de
valeur de retour).
Le processus d'appel de méthode est simple. Lorsqu'un programme invoque une
méthode, le contrôle du programme est transféré à la méthode appelée. Cette
méthode appelée rend ensuite le contrôle à l'appelant dans deux conditions, lorsque
-
System.out.println("This is tutorialspoint.com!");
Voici l'exemple pour montrer comment définir une méthode et comment l'appeler -
Exemple
public class ExampleMinNumber {
return min;
}
}
// Swap n1 with n2
int c = a;
a = b;
b = c;
System.out.println("After swapping(Inside), a = " + a + " b = " + b);
}
}
Cela produira le résultat suivant -
Production
Before swapping, a = 30 and b = 45
Before swapping(Inside), a = 30 b = 45
After swapping(Inside), a = 45 b = 30
// for integer
public static int minFunction(int n1, int n2) {
int min;
if (n1 > n2)
min = n2;
else
min = n1;
return min;
}
// for double
public static double minFunction(double n1, double n2) {
double min;
if (n1 > n2)
min = n2;
else
min = n1;
return min;
}
}
Student(int age) {
this.age = age;
}
}
Exemple
Voici un exemple qui utilise ce mot clé pour accéder aux membres d'une
classe. Copiez et collez le programme suivant dans un fichier
nommé This_Example.java .
This_Example() {
System.out.println("This is an example program on keyword this");
}
This_Example(int num) {
// Invoking the default constructor
this();
La méthode finalize( )
Il est possible de définir une méthode qui sera appelée juste avant la destruction
finale d'un objet par le ramasse-miettes. Cette méthode s'appelle finalize( ) et peut
être utilisée pour s'assurer qu'un objet se termine proprement.
Par exemple, vous pouvez utiliser finalize( ) pour vous assurer qu'un fichier ouvert
appartenant à cet objet est fermé.
Pour ajouter un finaliseur à une classe, il vous suffit de définir la méthode finalize(
). Le runtime Java appelle cette méthode chaque fois qu'il est sur le point de recycler
un objet de cette classe.
Dans la méthode finalize( ), vous spécifierez les actions qui doivent être effectuées
avant qu'un objet ne soit détruit.
La méthode finalize( ) a cette forme générale −
protected void finalize( ) {
// finalization code here
}
Ici, le mot clé protected est un spécificateur qui empêche l'accès à finalize( ) par du
code défini en dehors de sa classe.
Cela signifie que vous ne pouvez pas savoir quand ou même si finalize( ) sera
exécuté. Par exemple, si votre programme se termine avant le nettoyage de la
mémoire, finalize( ) ne s'exécutera pas.
Java - Fichiers et E/S
Le package java.io contient presque toutes les classes dont vous pourriez avoir besoin
pour effectuer des entrées et des sorties (E/S) en Java. Tous ces flux représentent une
source d'entrée et une destination de sortie. Le flux du package java.io prend en
charge de nombreuses données telles que les primitives, les objets, les caractères
localisés, etc.
Flux
Un flux peut être défini comme une séquence de données. Il existe deux types de flux
-
• InPutStream - Le InputStream est utilisé pour lire des données à partir
d'une source.
• OutPutStream - Le OutputStream est utilisé pour écrire des données
vers une destination.
Java fournit une prise en charge solide mais flexible des E/S liées aux fichiers et aux
réseaux, mais ce didacticiel couvre des fonctionnalités très basiques liées aux flux et
aux E/S. Nous verrons les exemples les plus couramment utilisés un par un −
Flux d'octets
Les flux d'octets Java sont utilisés pour effectuer l'entrée et la sortie d'octets 8
bits. Bien qu'il existe de nombreuses classes liées aux flux d'octets, les classes les
plus fréquemment utilisées sont FileInputStream et FileOutputStream . Voici un
exemple qui utilise ces deux classes pour copier un fichier d'entrée dans un fichier de
sortie -
Exemple
import java.io.*;
public class CopyFile {
try {
in = new FileInputStream("input.txt");
out = new FileOutputStream("output.txt");
int c;
while ((c = in.read()) != -1) {
out.write(c);
}
}finally {
if (in != null) {
in.close();
}
if (out != null) {
out.close();
}
}
}
}
import java.io.*;
public class CopyFile {
try {
in = new FileReader("input.txt");
out = new FileWriter("output.txt");
int c;
while ((c = in.read()) != -1) {
out.write(c);
}
}finally {
if (in != null) {
in.close();
}
if (out != null) {
out.close();
}
}
}
}
import java.io.*;
public class ReadConsole {
try {
cin = new InputStreamReader(System.in);
System.out.println("Enter characters, 'q' to quit.");
char c;
do {
c = (char) cin.read();
System.out.print(c);
} while(c != 'q');
}finally {
if (cin != null) {
cin.close();
}
}
}
}
FileInputStream
Ce flux est utilisé pour lire les données des fichiers. Les objets peuvent être créés à
l'aide du mot-clé new et plusieurs types de constructeurs sont disponibles.
Le constructeur suivant prend un nom de fichier sous forme de chaîne pour créer un
objet de flux d'entrée pour lire le fichier -
InputStream f = new FileInputStream("C:/java/hello");
Le constructeur suivant prend un objet de fichier pour créer un objet de flux d'entrée
pour lire le fichier. Nous créons d'abord un objet fichier en utilisant la méthode File ()
comme suit -
File f = new File("C:/java/hello");
InputStream f = new FileInputStream(f);
Une fois que vous avez l'objet InputStream en main, il existe une liste de méthodes
d'assistance qui peuvent être utilisées pour lire dans le flux ou pour effectuer d'autres
opérations sur le flux.
2
protected void finalize() throws IOException {}
Cette méthode nettoie la connexion au fichier. Garantit que la
méthode close de ce flux de sortie de fichier est appelée lorsqu'il n'y
a plus de références à ce flux. Lance une exception IOException.
3
public int read(int r) throws IOException{}
Cette méthode lit l'octet de données spécifié à partir de
InputStream. Renvoie un int. Renvoie le prochain octet de données
et -1 sera renvoyé s'il s'agit de la fin du fichier.
4
public int read(byte[] r) throws IOException{}
Cette méthode lit r.length octets du flux d'entrée dans un
tableau. Renvoie le nombre total d'octets lus. S'il s'agit de la fin du
fichier, -1 sera renvoyé.
5
public int available () throws IOException {}
Donne le nombre d'octets pouvant être lus à partir de ce flux
d'entrée de fichier. Renvoie un int.
Il existe d'autres flux d'entrée importants disponibles, pour plus de détails, vous
pouvez vous référer aux liens suivants -
• ByteArrayInputStream
• DataInputStream
FileOutputStream
FileOutputStream est utilisé pour créer un fichier et y écrire des données. Le flux
créerait un fichier, s'il n'existe pas déjà, avant de l'ouvrir pour la sortie.
Voici deux constructeurs qui peuvent être utilisés pour créer un objet
FileOutputStream.
Le constructeur suivant prend un nom de fichier sous forme de chaîne pour créer un
objet de flux d'entrée pour écrire le fichier -
OutputStream f = new FileOutputStream("C:/java/hello")
Le constructeur suivant prend un objet fichier pour créer un objet flux de sortie pour
écrire le fichier. Tout d'abord, nous créons un objet fichier en utilisant la méthode File
() comme suit -
File f = new File("C:/java/hello");
OutputStream f = new FileOutputStream(f);
Une fois que vous avez l'objet OutputStream en main, il existe une liste de méthodes
d'assistance, qui peuvent être utilisées pour écrire dans le flux ou pour effectuer
d'autres opérations sur le flux.
1
public void close() throws IOException{}
Cette méthode ferme le flux de sortie du fichier. Libère toutes les
ressources système associées au fichier. Lance une exception
IOException.
2
protected void finalize() throws IOException {}
Cette méthode nettoie la connexion au fichier. Garantit que la
méthode close de ce flux de sortie de fichier est appelée lorsqu'il n'y
a plus de références à ce flux. Lance une exception IOException.
3
public void write(int w) throws IOException{}
Cette méthode écrit l'octet spécifié dans le flux de sortie.
4
public void écrire (octet [] w)
Écrit w.length octets du tableau d'octets mentionné dans
OutputStream.
Il existe d'autres flux de sortie importants disponibles, pour plus de détails, vous
pouvez vous référer aux liens suivants -
• ByteArrayOutputStream
• DataOutputStream
Exemple
Voici l'exemple pour démontrer InputStream et OutputStream -
import java.io.*;
public class fileStreamTest {
try {
byte bWrite [] = {11,21,3,40,5};
OutputStream os = new FileOutputStream("test.txt");
for(int x = 0; x < bWrite.length ; x++) {
os.write( bWrite[x] ); // writes the bytes
}
os.close();
Le code ci-dessus créerait un fichier test.txt et écrirait des nombres donnés au format
binaire. La même chose serait la sortie sur l'écran stdout.
Création de répertoires
Il existe deux méthodes utiles de l'utilitaire File , qui peuvent être utilisées pour créer
des répertoires -
• La méthode mkdir( ) crée un répertoire, renvoyant true en cas de succès
et false en cas d'échec. Un échec indique que le chemin spécifié dans
l'objet File existe déjà ou que le répertoire ne peut pas être créé car le
chemin complet n'existe pas encore.
• La méthode mkdirs() crée à la fois un répertoire et tous les parents du
répertoire.
L'exemple suivant crée le répertoire "/tmp/user/java/bin" −
Exemple
import java.io.File;
public class CreateDir {
import java.io.File;
public class ReadDir {
try {
// create new file object
file = new File("/tmp");
Cela produira le résultat suivant basé sur les répertoires et fichiers disponibles dans
votre répertoire /tmp -
Production
test1.txt
test2.txt
ReadDir.java
ReadDir.class