Avec des exercices corrigés en Java sur les classes et l’héritage, vous pratiquerez divers concepts du langage Java. Vous commencerez par des exercices Java de base à des exercices plus avancés. La solution est fournie pour chaque exercice. Vous devez essayer de résoudre chaque problème par vous-même avant de vérifier la solution. Si vous avez des questions concernant chaque problème, nous vous encourageons à les poster sur notre forum.
Exercice 1:
– Créez une classe « Person »
– Créez une classe « Student » et une autre classe « Teacher », les deux héritent de la classe « Person ».
– La classe « Student » aura une méthode publique « GoToClasses », qui affichera à l’écran « I’m going to class. ».
– La classe « Teacher » aura une méthode publique « Explain », qui affichera à l’écran « Explanation begins ». En plus, il aura un attribut privé « subject » de type string.
– La classe « Person » doit avoir une méthode « SetAge(int n) » qui indiquera la valeur de leur âge (par exemple, 15 years old).
– La classe « Student » aura une méthode publique « DisplayAge » qui écrira sur l’écran « My age is: XX years old ».
– Vous devez créer une autre classe de test appelée « Test » qui contiendra « Main » et:
– Créez un objet Person et faites-lui dire « Hello »
– Créer un objet Student, définir son âge à 15 ans, faites-lui dire « Hello », « I’m going to class. » et afficher son âge
– Créez un objet Teacher, 40 ans, demandez-lui de dire « Hello » puis commence l’explication.
Exemple:
Hello
I’m going to class.
Hello
My age is: 15 years old
Hello
Explanation begins
Solution:
//La classe Person
class Person
{
protected int age;
public void sayHello()
{
System.out.println("Hello");
}
public void setAge(int n)
{
age = n;
}
}
//La classe Student
class Student extends Person
{
public void goToClasses()
{
System.out.println("I’m going to class.");
}
public void displayAge()
{
System.out.println("My age is: "+ age +" years old");
}
}
//La classe Teacher
class Teacher extends Person
{
private String subject;
public void explain()
{
System.out.println("Explanation begins");
}
}
//Classe de test
public class Main
{
public static void main(String[] args)
{
Person p = new Person();
p.sayHello();
Student s = new Student();
s.goToClasses();
s.setAge(15);
s.sayHello();
s.displayAge();
Teacher t = new Teacher();
t.setAge(40);
t.sayHello();
t.explain();
}
}
Exercice 2:
Créez une classe « House », avec un attribut « surface », un constructeur qui définit sa valeur et une méthode « Display » pour afficher « Je suis une maison, ma surface est de XXX m2 » (XXX: la valeur de surface). Incluez aussi des getters et des setters pour la surface.
La classe « House » contiendra une porte (Door). Chaque porte aura un attribut « color » (de type String), et une méthode « Display » qui affichera « Je suis une porte, ma couleur est bleu » (ou quelle que soit la couleur). Inclure un getter et un setter. Créez également la méthode « GetDoor » dans la classe « House ».
La classe « Apartment » est une sous-classe de la classe « House », avec une surface prédéfinie de 50m2.
Créez également une classe Person, avec un nom (de type String). Chaque personne aura une maison. La méthode « Display » pour une personne affichera son nom, les données de sa maison et les données de la porte de cette maison.
Écrivez un Main pour créer un Apartment, une personne pour y vivre et pour afficher les données de la personne.
Exemple:
Je m'appele Thomas.
Je suis un appartement, ma surface est 50 m2
Je suis une porte, ma couleur est blue.
Des notions UML à savoir :
La composition peut être considérer comme une relation “fait partie de”, c’est à dire que si un objet Y fait partie d’un objet X alors Y ne peut pas exister sans X. Ainsi si X disparaît alors Y également.
L’agrégation peut être considérer comme une relation de type “a un”, c’est à dire que si un objet X a un objet Y alors Y peut vivre sans X.
Solution:
class House
{
protected int surface;
protected Door door;
public House(int surface)
{
this.surface = surface;
door = new Door();
}
public int getSurface()
{
return surface;
}
public void setSurface(int value)
{
surface = value;
}
public Door getDoor()
{
return door;
}
public void setDoor(Door d)
{
door = d;
}
public void display()
{
System.out.println("Je suis une maison, ma surface est de "+ surface +" m2.");
}
}
class Door
{
protected String color;
public Door()
{
color = "blue";
}
public Door(String color)
{
this.color = color;
}
public String getColor()
{
return color;
}
public void setColor(String value)
{
color = value;
}
public void display()
{
System.out.println("Je suis une porte, ma couleur est "+ color +".");
}
}
class Apartment extends House
{
public Apartment()
{
super(50);
}
public void display()
{
System.out.println("Je suis un appartement, ma surface est " + surface + " m2");
}
}
class Person
{
protected String name;
protected House house;
public Person()
{
name = "Thomas";
house = new House(150);
}
public Person(String name, House house)
{
this.name = name;
this.house = house;
}
public String getName()
{
return name;
}
public void setName(String value)
{
name = value;
}
public House getHouse()
{
return house;
}
public void setHouse(House h)
{
house = h;
}
public void display()
{
System.out.println("Je m'appele "+ name +".");
house.display();
house.door.display();
}
}
//Classe de test
public class Main
{
public static void main(String[] args)
{
Apartment MyApartament = new Apartment();
Person person = new Person();
person.name = "Thomas";
person.house = MyApartament;
person.display();
}
}
je vuex qu’ on ,’ explique les tableaux multidimensions en java