Les classes et les objets en java exercices corrigés - POO string
Utiliser les objets
de la classe String
Exercice 1 :
Écrivez un
programme qui réalise les opérations suivantes :
a. Demander la
saisie d’une phrase.
b. Afficher la
phrase en majuscules.
c. Compter le
nombre de « a » dans la phrase puis, s’il y en a,
transformer tous les « a »
en « * ».
d. Tester si, entre
le cinquième caractère et le douzième, se trouve une séquence de caractères
préalablement saisie au clavier.
Exercice 2 :
Écrivez un
programme qui permet d’obtenir les actions suivantes :
a. Saisir des mots
jusqu’à ce que l’utilisateur entre le mot « Fin ».
b. Afficher, parmi
les mot saisis, le premier dans l’ordre alphabétique.
c. Afficher, parmi
les mot saisis, le dernier dans l’ordre alphabétique.
Le mot "Fin" ne doit pas être pris en compte dans la liste
des mots saisis.
Créer une classe d’objets
Exercice 3 :
L’objectif est
de définir une représentation d’un objet Personne.
a. Sachant qu’une
personne est définie à partir de son nom, son prénom et son âge, définissez les
données de la classe Personne.
b. Écrivez une
application MesAmis qui utilise un objet Untel de
type Personne et qui demande la
saisie au clavier de ses nom, prénom et âge.
Consulter les variables d’instance
Exercice 4 :
Pour définir les
comportements d’un objet de type Personne :
a. Dans la classe Personne, décrivez la méthode présentezVous(), qui affiche
les caractéristiques
de la personne concernée.
b. Modifiez l’application
de façon à afficher les caractéristiques de l’objet Untel.
c. Dans la classe Personne, décrivez la méthode quelEstVotreNom(), qui permet de connaître le
nom de la personne concernée.
d. Dans la classe Personne, décrivez la méthode quelEstVotreAge(), qui permet de connaître l’âge
de la personne concernée.
e. Modifiez
l’application de façon à afficher le nom puis l’âge d’Untel.
Analyser les résultats d’une application objet
Exercice 5 :
Pour bien
comprendre ce que réalise l’application FaireDesPoints, observez les deux programmes
suivants :
public class Point // Le fichier s’appelle Point.java
{
int
x, y;
public void créer()
{
System.out.print("Entrez l’abscisse : ");
x = Lire.i();
System.out.print("Entrez l’ordonnee : ");
y = Lire.i();
}
public void afficher()
{
System.out.println("x : " + x + " y : "
+ y);
}
public void déplacer( int nx, int ny)
{
x = nx;
y = ny;
}
} // fin de la class Point
public class FaireDesPoints // Le fichier s’appelle FaireDesPoints.java
{
public static void main( String [] arg)
{
Point
P = new Point();
P.afficher();
P.créer();
P. afficher();
P.déplacer(10, 12);
P.afficher();
}
} // fin de la class FaireDesPoints
a. Quel est le
programme qui correspond à l’application ?
b. Quel est le
programme définissant le type Point ?
c. Recherchez les
attributs de la classe Point, et donnez leur nom.
d. Combien de
méthodes sont-elles définies dans la classe Point ? Donnez leur nom.
e. Quels sont les
objets utilisés par l’application FaireDesPoints
?
Que valent leurs données x et y après exécution de l’instruction
déclaration ?
f. Sur la
représentation graphique ci-dessous, placez, pour l’objet P,
la valeur initiale ainsi que le nom des
méthodes.
g. À l’appel de la
méthode créer(), comment les valeurs sont-elles
affectées aux attributs des
objets concernés ? Modifiez les cases concernées sur la représentation graphique.
h. Même question
pour la méthode déplacer().
i. Quel
est le résultat final de l’application ?
--------------------------------------------------------------------------------------------------
Correction
--------------------------------------------------------------------------------------------------Corrige Exercice 1 :
public class Exercice1 {
public static void main(String [] argument) {
String s1 = "", s2 = "", s3 = "", s4 = "";
int nbA = 0;
// a. demande la saisie d'une phrase
System.out.print("Entrez une phrase : ");
s1 = Lire.S();
// b. affiche la phrase en majuscule
s2 = s1.toUpperCase();
// c. compte le nombre de 'a'
for (int i = 0; i < s2.length(); i++)
if(s2.charAt(i) == 'A') nbA++;
System.out.println("Vous avez entre : " + s1);
System.out.println("Soit en majuscule : " + s2);
System.out.println("Ce mot contient : " + nbA + " A ");
// c. transforme tous les 'a' par des '*'
s3 = s2.replace('A','*');
System.out.println("Il s'ecrit donc : " + s3);
System.out.print("Entrez un second mot : ");
s4 = Lire.S();
// d. teste si s4 se trouve entre les 5ième et 12ième caractères de s1
if (s1.regionMatches(5,s4,0,7))
System.out.println("La sous chaine " + s4 + " est bien placee ");
}
}
Corrige Exercice 2 :
Le programme reprend la marche à suivre de l'exercice 2 du chapitre 4, qui recherche la plus grande et la plus petite valeur d'une liste de nombres saisis au clavier, la saisie s'arrêtant lorsque l'utilisateur entre la valeur 0. Pour cet exercice, la démarche est identique. Seules, les techniques de comparaison diffèrent puisque les variables utilisées ne sont plus numériques mais, alphabétiques.
public class Exercice2 {
public static void main(String [] argument) {
String s1 = "", sPlusGrand = "", sPlusPetit = "";
System.out.print("Entrez un mot : ");
s1 = Lire.S();
sPlusGrand = s1 ;
sPlusPetit = s1 ;
do {
if (s1.compareTo(sPlusGrand) < 0) sPlusGrand = s1 ;
if (s1.compareTo(sPlusPetit) > 0) sPlusPetit = s1 ;
System.out.print("Entrer une mot (FIN pour sortir) : ") ;
s1 = Lire.S();
} while ( ! s1.equalsIgnoreCase("FIN") );
System.out.println("Le plus grand mot : " + sPlusGrand) ;
System.out.println("Le plus petit mot : " + sPlusPetit) ;
}
}
Remarquez le '!' devant l'expression s1.equalsIgnoreCase("FIN"). Le '!' est utilisé pour nier une expression située juste après. Littéralement, l'expression se traduit par « tant que s1 n'est pas égal à "FIN" sans tenir compte des majuscules ».
Corrige Exercice 3 et 4 :
La classe Livre :
public
class Livre {
// 3.a Définition des propriétés
public
String titre;
public String categorie ;
public String isbn ;
public
String nomAuteur ;
public
String prenomAuteur ;
public
String code ;
// 4.a Définition des comportements : La méthode
afficherUnLivre()
public void afficherUnLivre(){
System.out.println("Titre : " +
titre);
System.out.println("Auteur : " +
nomAuteur + " " +
prenomAuteur);
System.out.println("Categorie : " + categorie);
System.out.println("ISBN : " + isbn);
}
// 4.c Définition des comportements : La méthode
calculerLeCode()
public String calculerLeCode () {
String debutNom;
String debutPrenom;
String debutCategorie;
int longueurIsbn;
String
finIsbn;
// 4.c Récupérer les deux premières lettres du nom
debutNom=nomAuteur.substring(0,2);
// 4.c Récupérer les deux premières lettres du prénom
debutPrenom=prenomAuteur.substring(0,2);
// 4.c Récupérer les deux premières lettres de la catégorie
debutCategorie=categorie.substring(0,2);
// 4.c Calculer la longueur du mot ISBN
longueurIsbn=isbn.length();
// 4.c Récupérer les deux dernières lettres du numéro ISBN
finIsbn=isbn.substring((longueurIsbn-2),longueurIsbn);
// 4.c Retourner la suite des caractères extraits ci-avant
return debutNom+debutPrenom+debutCategorie+finIsbn;
}
}
La classe Bibliotheque :
public
class Bibliotheque {
public static void main(String [] arg){
// 3.b Définition de l’objet livrePoche
Livre
livrePoche = new Livre();
// 3.b Saisie du titre, pour l’objet livrePoche
System.out.print("Entrez le titre : ");
livrePoche.titre=
Lire.S();
// 3.b Saisie de la catégorie pour l’objet livrePoche
System.out.print("Entrez la categorie : ");
livrePoche.categorie
= Lire.S();
// 3.b Saisie du nom de l’auteur pour l’objet livrePoche
System.out.print("Entrez le nom de l'auteur : ");
livrePoche.nomAuteur=
Lire.S();
// 3.b Saisie du prénom de l’auteur pour l’objet livrePoche
System.out.print("Entrez le prenom de l'auteur : ");
livrePoche.prenomAuteur=
Lire.S();
// 3.b Saisie du numéro ISBN pour l’objet livrePoche
System.out.print("Entrez le numero ISBN : ");
livrePoche.isbn=
Lire.S();
// 4.b Affichage des caractéritiques de l’objet livrePoche
livrePoche.afficherUnLivre();
// 4.d Affichage du code de l’objet livrePoche
System.out.println("code du livre : " +
livrePoche.calculerLeCode());
}
}
Corrige Exercice 5 :
a. Le programme correspondant à l'application est celui qui contient la fonction main(). Dans cet exercice, le programme s'appelle FaireDesTriangles.
b. Le type Triangle est défini par la classe Triangle, décrite dans le fichier Triangle.java.
c. Les attributs de la classe Triangle sont les coordonnées définissant les trois sommets d’un triangle. Ils ont pour nom respectivement xA, yA, xB, yB, xC et yC déclarés comme variables d'instance de type int.
d. Trois méthodes sont définies dans la classe Triangle. Elles ont pour nom : créer(), afficher() et déplacer().
e. L'application utilise un objet portant le nom P. Les données x et y de l'objet P valent toutes les deux 0, juste après l'instruction de déclaration de l'objet P.
f. L'objet T est représenté de la façon suivante :
g. La méthode créer() est appelée par l'intermédiaire de l'objet T. Ce sont donc les données xA, yA,xB, yB, xC et yC de l'objet T qui mémorisent les valeurs saisies au clavier.
h. De la même façon, la méthode déplacer() est appelée par l'intermédiaire de l'objet T. Ce sont
donc les données xA, yA, xB, yB, xC et yC de l'objet T qui prennent les valeurs transmises en paramètre de la méthode.
i. Le résultat final est le
suivant :
Point A : 0 0
Point B : 0 0
Point C : 0 0
Point A :
Entrez l'abscisse : 10
Entrez l'ordonnée : 10
Point B :
Entrez l'abscisse : 20
Entrez l'ordonnée : 40
Point C :
Entrez l'abscisse : 40
Entrez l'ordonnée : 10
Point A : 10 10
Point B : 20 40
Point C : 40 10
Point A : 110 10
Point B : 120 40
Point C : 140 10
Article plus récent Article plus ancien