Exercices corrigés Java les classes et l’héritage – Partie 2

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();
	}
}
 

Éditeur de code Java: Testez votre code en ligne!


QCM-Java

Une réflexion sur “Exercices corrigés Java les classes et l’héritage – Partie 2

  • décembre 14, 2020 à 10:32 am
    Permalien

    je vuex qu’ on ,’ explique les tableaux multidimensions en java

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *