java02 : Communiquer et traiter une information

publicité
java02 : Communiquer et traiter une information
AFFICHER UNE INFORMATION
• En mode console : System.out.println(…)
System.out.print( expr ) ; // affiche à l’écran le contenu de expr
System.out.println( ) ; // saute une ligne
System.out.println( expr ) ; // affiche à l’écran le contenu de expr et saute une ligne
System.out.println( "Mon texte" ) ; // affiche à l’écran le texte et saute une ligne
System.out.println("Mon texte" + expr ) ; // affiche à l’écran le le texte et le contenu de expr
Remarque : println et print sont des méthodes (fonctions) qui ont été définies plusieurs fois
de manière à fonctionner quelque soit le type de l’expression qu’on leur passe en paramètre.
• En mode graphique : JOptionPane.showMessageDialog(…)
import javax.swing.*;
…..
JOptionPane.showMessageDialog (null,"Mon texte") ;
// affiche une boite de dialogue contenant le texte
Remarque : La méthode showMessageDialog est définie dans la classe JOptionPane qui se
situe dans le package swing qui lui même est dans un plus gros package appelé javax.
Remarque : un package est une unité (un fichier ou répertoire) regroupant des classes.
Ainsi pour utiliser, cette méthode, vous pouvez :
o la préfixez par le nom des packages :
javax.swing.JOptionPane.showMessageDialog (null,"texte") ;
o utilisez l’instruction d’import : import nom du package
Pour les méthodes print et println, aucun import n'est nécessaire car elles font parties des classes standards.
RECUPERER UNE INFORMATION (SAISIE)
• En mode console : La classe Scanner de la version java 1.5.0 permet la lecture de données sur l'entrée standard (clavier) ou dans un fichier. Nous parlerons ici simplement de la lecture au clavier. Un objet de type Scanner va scanner les données de types primitifs ou de la classe String. Pour utiliser la classe Scanner, il faut d’abord l’importer : import java.util.Scanner;
Ensuite pour lire des données sur l'entrée standard, il faut créer un objet de la classe
Scanner sc = new Scanner(System.in);
Pour ensuite récupérer les données saisies, il faut faire appel sur l’objet sc avec les méthodes décrites
Class Scanner : quelques méthodes
String next() renvoie la saisie de l’utilisateur sous forme d’une donnée de type String
float nextFloat() renvoie la saisie de l’utilisateur sous forme d’une donnée de type float
int nexInt() ......... sous forme d’une donnée de type int
double nextDouble() ......sous forme d'une donnée de type Double
etc.....
Exemple d'utilisation :
import java.util.Scanner;
class Bonjour{
public static void main (String[] args){ Scanner sc = new Scanner(System.in);
System.out.println("entrer votre nom :");
String nom = sc.next();
System.out.println("Bonjour :" + nom);
}
}
Pour les utiliser, vous devrez faire référence à la classe afin que le compilateur puisse savoir où trouver la définition de ces méthodes.
System.out.println(" Entrez votre âge ") ;
int age = sc.nextInt() ;
• En mode graphique : JOptionPane.showInputDialog(…)
String nom = JOptionPane.showInputDialog (null,"Votre nom ") ;
Remarque : cette méthode ne sait renvoyer que des variables de type String. Il faut alors utiliser des méthodes qui permettent de convertir les données. Exemple :
String sAge = JOptionPane.showInputDialog (null,"Votre age ") ;
int age = Integer.parseInt(sAge ) ;
Rappel : Les variables sont explicitement typées. Le typage d'une variable est réalisé lors de sa déclaration et non plus lors de son affectation comme en PHP. Par conséquent vous devez fournir à une variable une valeur cohérente avec son type, dans le cas contraire le compilateur refusera toute traduction
Exemple de conversions
 Conversion de type String vers un type primitif : ...
String s1 = "123";
String s2 = ".23";
int x1 = Integer.parseInt(s1);
double x2 = Double.parseDouble(s2);
ÇA COMMENCE À RESSEMBLER À DE LA PROGRAMMATION OBJET
PHP dispose d'une importante bibliothèque de fonctions, de la forme fonction(données). Exemple :
$nom = ''toto'';
$nomMAJ = strtoupper($nom);
Java ne dispose pas à proprement parler de fonctions mais de classes, toutes ces classes sont regroupées dans une API ( Interface pour la Programmation d'Application). En programmation orientée objet, une classe déclare des propriétés communes à un ensemble d'objets. La classe déclare des attributs représentant l'état des objets et des méthodes représentant leur comportement. La classe apparaît aussi comme un moule ou une usine à partir de laquelle il est possible de créer des objets.
Exemple, JAVA dispose d'une classe String qui va nous permettre de créer des objets de type String ( chaînes de caractères ) :
String nom = new String(''toto'') ;
Avec l'opérateur new , nous avons créé un nouvel Objet String, On parle alors d'un objet en tant qu'instance d'une classe (création d'un objet ayant les propriétés de la classe).
String nomMaj = nom.toUpperCase();
On applique à cet objet nom une méthode de la classe String toUpperCase(). Un appel de méthode se caractérise par un appel de fonction référencée par un objet : objet.fonction() ­>nom.toUpperCase()
Si on reprend notre classe Scanner, nous avons créé un objet Scanner : Scanner sc = new Scanner(System.in);
Ensuite , l'objet sc peut utiliser les méthodes de la classe : int age = sc.nextInt()
Avant d'aborder plus avant les notions d'interface, de classe et d'objet, nous allons nous familiariser avec le programmation JAVA.
STRUCTURES CONDITIONNELLES ET RÉPÉTITIVES
Les instructions conditionnelles et répétitives sont généralement les mêmes quelque soit le langage. Remarques :
• L’imbrication est toujours possible
• Pour former une condition, les règles sont aussi les mêmes quelque soit le langage, on
utilise les opérateurs de comparaison (<,>,==, !=…) et les opérateurs logiques (&&, ||)
• S’il n’y a qu’une seule instruction, vous n’êtes pas obligé de mettre les accolades.
FAIRE DES TESTS
Syntaxe
if(condition){
//instructions
}
if(condition){
//instructions
}
else{
//instructions
}
if(condition){
//instructions
}
else if{
//instructions
}
else{
//instructions
}
REMARQUES :
• Le mot clef : else if s'ecrit en deux mots !
• La condition doit porter sur des données de même type.
• Rappel : méfiez vous du sens du mot clef else lorsque vous utilisez des conditions
mulitples, méfiez vous du sens de votre condition si vous utilisez le mot clef else if
RÉPÉTER DES ACTIONS
Syntaxe
while (condition){
//instructions
}
do {
//instructions
for (int i = 0 ; i < 10 ; i++){
//instructions
}
}while(conditions);
REMARQUE : la condition doit porter sur des variables déclarées en dehors de la boucle,
excepté pour l'instruction for.
SWITCH switch (variable) {
case valeur1 :
Liste d'instructions
break;
case valeur2 :
Liste d'instructions
break;
case valeurN... :
Liste d'instructions
break;
}
default: Liste d'instructions
Téléchargement