Java
C est un langage populaire
C++ 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
syntaxe du C++. De plus, Java est un langage purement
orienté objet.
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.
A) Quelques mots sur la POO :
Dans notre vie quotidienne, on travaille très souvent avec
des objets :
Un tableau est un objet. Il dispose de champs
d’informations (des attributs) : materiel, couleur,
largeur, hauteur :
On peut fabriquer (construire, instancier) 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 (soit construit, instancié)
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 ?
Une classe en POO est une unité comportant très souvent :
des champs d’informations, des méthodes spéciales
s’appelant constructeurs pour construire (instancier) des
objets de la classe, des méthodes pour appliquer sur ses
objets, des clauses d’accès (privée, publique), etc . . .
Exemple : Concevoir la classe cercle en sachant qu’un
cercle est déterminé par son champ rayon. On peut calculer
la surface, le périmètre d’un cercle, etc …
Réponse :
class Cercle
{ // l’accès au champ rayon est privé, dans le corps
// de la classe Cercle seulement
private double rayon;
// un constructeur
public Cercle(double r)
{
rayon = r;
}
// un autre constructeur
public Cercle()
{
rayon = 1.234;
}
// méthode calculante et retournant le périmètre
// d’un cercle où périmètre = 2 x PI x rayon
// et en Java, Math.PI fournit le champ PI valant
// 3.14159
public double perimetre()
{
return 2 * Math.PI * rayon;
}
// méthode calculante la surface
public double surface()
{
return Math.PI * rayon * rayon;
}
. . . etc . . .
} // fin de la classe Cercle
On apprendra plus tard, les détails de la conception d’une
classe. Par contre, on utilisera assez tôt, quelques
classes du langage Java :
String : classe des chaînes de caractères
Integer : classe associée au type int
Double : classe associée au type double
( Le type double est aussi pour les réels mais plus de
chiffres significatifs que le type float ).
Affichage à l’écran : appliquer la méthode printf sur
l’objet out du System (l’objet sortie du System est
l’écran).
System.out.printf(" messages ");
System.out.printf(" messages + code format ", etc . . .);
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.
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 . . .
- 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 :
1 / 43 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !