C est un langage populaire (une partie du cours IFT 1810, langage

publicité
C
est un langage populaire (une partie du cours IFT 1810,
C++
langage du IFT 1969).
(cours IFT 1166, IFT 1169) est
une extension du langage C qui est plus populaire que C.
Ses nouveautés rendent plus agréable le C et permettent
aussi de faire la programmation orientée objet (POO).
JAVA
(IFT 1810, IFT 1170, IFT 1176) utilise surtout la
C++.
syntaxe du
orienté objet.
De plus, Java est un langage purement
Dans le cours IFT 1810, on introduit à la programmation
orientée objet (POO), à l’aperçu du langage JAVA sans aller
dans les détails. Le but de ce résumé est de vous permettre
de saisir des explications en classe au lieu de copier des
programmes écrits au tableau. Les exemples expliqués en
classe et disponibles sur le site Web du cours utilisent
l’environnement JCreator.
Bonne chance et bon succès!
Le Van Nguyen
IFT 1810 (par Le Van N.)
Java_1 : Quelques mots de la POO et un aperçu du Java
1
Quelques mots sur la POO :
Dans notre vie quotidienne, on travaille très souvent avec
des objets :
Un tableau est un objet.
On peut construire un tableau par plusieurs manières :
Matériel : en bois, en métal, en plastique dur, . . .
Couleur : noire, blanche, . . .
Largeur : 4.2 mètre, 3.8 mètre, . . .
Hauteur : 2.3 mètre, 1.90 mètre, . . .
Il faut que le tableau existe avant de parler comment
travailler avec un tableau.
Que peut-on faire avec un tableau ?
En français, on est habitude avec l’action :
-
écrire au tableau
effacer le tableau
laver le tableau
etc …
En POO, on écrit souvent sous la forme :
tableau.écrire(. . .)
appliquer la méthode écrire
sur l’objet tableau
tableau.effacer(. . .) appliquer la méthode effacer
sur l’objet tableau
etc . . .
Une porte est un autre objet.
On peut construire une porte par plusieurs manières :
en bois, en métal, en pailles, . . .
Que peut-on faire avec une porte ?
- ouvrir la porte
- fermer la porte
- etc …
C’est la même chose en programmation orientée objet (POO) :
Quelles sont les caractéristiques (champs, attributs) d’un
objet ? Comment construire un objet ? Quelles sont les
méthodes qu’on peut appliquer sur l’objet ?
En Java, on rencontre fréquemment l’instruction :
Objet.méthode( . . .)
On applique une méthode sur un objet.
IFT 1810 (par Le Van N.)
Java_1 : Quelques mots de la POO et un aperçu du Java
2
En Java, System.out est l’objet sortie de la classe
System : c’est l’écran. L’instruction :
System.out.println( expression ); ou
System.out.print ( expression ); ou
System.out.printf(. . .);
représente l’affichage d’une expression à l’écran.
Le suffixe ln (new line : nouvelle ligne) correspond à un
changement de ligne après l’affichage (comme \n en C).
Pour IFT 1810, on utilise davantage System.out.printf(...);
Exemple :
System.out.printf("La taille vaut %.2f metre\n", taille);
Premier exemple d'introduction :
(explications : en classe, au premier cours de la partie POO avec Java)
Réaliser
un projet en Java permettant de déclarer,
d’initialiser les informations suivantes de l’étudiante
Lise Charbonneau qui a le code permanent "CHAL12599305"
(elle est née le 12 septembre 1993
 2013 – 1993 = 20 ans à 2013
 le ministère de l’éducation a ajouté 50 au mois de
naissance d’une étudiante : 50 + 9 = 59)
Le projet permet de :
- afficher le nom et prénom tel quel, en tous majuscules,
en tous minuscules
- déterminer le sexe (féminin ou masculin)
- calculer l’âge brut à l’année 2013
L’exécution du projet donne, par exemple, ce qui suit :
--------------------Configuration: <Default>-------------------Le nom et prénom tel quel : Charbonneau Lise
Le nom et prénom en tous majuscules : CHARBONNEAU LISE
Le nom et prénom en tous minuscules : charbonneau lise
Sexe : féminin
L'âge à 2013 est 20 ans
Quelques réfléxions sur le problème à programmer :
En langage C, on a déjà travaillé avec certains types de
base habituels : int pour les entiers, char pour les
caractères, float ou double pour les réels. Les
identificateurs de ces types sont en tous minuscules.
Il n’y a pas beaucoup de manipulations possibles avec des
informations de ces types.
IFT 1810 (par Le Van N.)
Java_1 : Quelques mots de la POO et un aperçu du Java
3
Une classe est une sorte de type élargi, on parle souvent :
age est une variable de type int
taille est une variable de type double
nomPre est un objet de la classe String
des opérations sur des types de base :
age1 + age2 : somme des deux âges
age1 * age2 : produit des deux âges
etc ...
des méthodes appliquées sur un objet d’une classe :
String nomPre = "Charbonneau Lise";
 nomPre est un objet de la classe String
 nomPre.toUpperCase() vaut "CHARBONNEAU LISE"
on applique la méthode toUpperCase() pour
convertir une chaîne en tous majuscules
 nomPre.toLowerCase() vaut "charbonneau lise"
on applique la méthode toLowerCase() pour
convertir une chaîne en tous minuscules
 nomPre.charAt(0) vaut ‘C’
le caractère à l’indice 0 du nom et prénom est la
lettre ‘C’
 nomPre.charAt(2) vaut ‘a’
le caractère à l’indice 2 du nom et prénom est la
lettre ‘a’
 nomPre.substring(2,7) vaut "arbon"
la sous-chaîne entre l’indice 2 inclu et l’indice
7 exclu du nom et prénom est la chaîne de
caractères "arbon"
 etc . . .
 Integer.parseInt("93") vaut 93
On utilise la méthode de conversion d’une chaîne
numérique en valeur entière de la classe Integer.
 etc . . .
On rentre alors dans le monde de la programmation orientée
objet dont on parle constamment des objets d’une classe,
des méthodes appliquées sur un objet, des méthodes d’une
classe!
De plus, le Java utilise une partie de syntaxe du C++, une
extension du langage C. On retrouvera une partie du C en
Java avec quelques nouveautés du C++ dans la plupart des
exemples vus en IFT 1810 :
- commentaires en ligne avec
// commentaire . . .
IFT 1810 (par Le Van N.)
Java_1 : Quelques mots de la POO et un aperçu du Java
4
- flexibilité des déclarations
mélanger les déclarations et les traitements
- etc . . .
Le programme suivant sera expliqué en détails en classe.
/* Fichier Introd1.java
public class Introd1
{
public static void main(String[] args)
{
final int ANNEE_COURANTE = 2013;
String nomPre = "Charbonneau Lise",
codePerm = "CHAL07539305";
System.out.printf("Le nom et prénom tel quel : %s\n", nomPre);
System.out.printf("Le nom et prénom en tous majuscules : %s\n",
nomPre.toUpperCase());
System.out.printf("Le nom et prénom en tous minuscules : %s\n",
nomPre.toLowerCase());
if (codePerm.charAt(6) >= '5')
System.out.printf("Sexe : féminin\n");
else
System.out.printf("Sexe : masculin\n\n");
int anneeNais = 1900 + Integer.parseInt( codePerm.substring(8, 10))
;
System.out.printf("L'âge à %d est %d ans\n\n", ANNEE_COURANTE,
ANNEE_COURANTE - anneeNais);
}
}
Observations et commentaires du programme :
Aux pages 3 et 4, on a déjà parlé un peu de la POO et du
Java pour une partie du programme. Les explications
suivantes sont destinées surtout aux étudiants qui
connaissent le C mais pas encore du Java, ni de la
programmation orientée objet (POO).
1. L’identificateur String se commence par une lettre
majuscule. Ce n’est pas un type, c’est le nom d’une
classe, une terminologie fréquemment utilisée en POO.
IFT 1810 (par Le Van N.)
Java_1 : Quelques mots de la POO et un aperçu du Java
5
2. Le Java vu dans IFT 1810 utilise souvent des classes
prédéfinies (String, Integer, . . .) et leurs méthodes.
3. Le Java utilise certaines conventions pour les
identificateurs (constantes en lettres majuscules,
variables, méthodes : premier mot en minuscules, début
d’un nouveau mot en majuscule :
nbPieds, nbLivres, toUpperCase(), etc).
4. La déclaration en Java :
final int ANNEE_COURANTE = 2013;
est équivalente à celle-ci du C :
const int ANNEE_COURANTE = 2013;
ANNEE_COURANTE est de type int et sa valeur est "finale"
(inchangée => c’est une constante).
5. La déclaration en Java :
String nomPre = "Charbonneau Lise",
codePermanent = "CHAL12599001";
déclare et initialise 2 objets nomPre et codePermanent
de la classe String qu’on pourra appliquer plusieurs
méthodes existantes sur ces deux objets.
6. Les clauses de visibilité public, static seront
expliqués plus tard.
IFT 1810 (par Le Van N.)
Java_1 : Quelques mots de la POO et un aperçu du Java
6
Trois formes d’accès en Java :
1. forme 1 (très fréquente : 80 % des cas) :
objet.méthode (……..)
Appliquer une méthode sur l’objet
Exemples :
"Bonsoir".length() retourne 7 (longueur de la chaîne)
"Bonsoir".charAt(0) retourne ‘B’ (le caractère à
l’indice 0 est la lettre ‘B’)
"Bonsoir".indexOf(‘n’) retourne 2 (on trouve la lettre ‘n’ à
l’indice 2
"Bonsoir".substring(1, 3) retourne "on" (la sous-chaîne
délimitée entre l’indice 1 inclus et
l’indice 3 exclu)
2. forme 2 (moins fréquente : 15 % des cas) :
classe.méthode static(……..)
Utiliser une méthode static d’une classe
Exemples :
Integer.parseInt("17") retourne 17 (valeur entière)
Math.sqrt(16.0) retourne la racine carrée de 16.0 qui vaut 4.0
3. forme 3 (peu fréquente : 5 % des cas) :
classe.champ static
Accès à un champ (attribut) static d’une classe
Exemples :
Math.PI vaut 3.14159… (valeur PI de la classe Math)
Integer.MAX_VALUE retourne 231-1 (l’entier le plus grand)
IFT 1810 (par Le Van N.)
Java_1 : Quelques mots de la POO et un aperçu du Java
7
Téléchargement