Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Défi : Exercice sur les Modificateurs | Principes Essentiels de la POO
C# Au-Delà des Bases

bookDéfi : Exercice sur les Modificateurs

Vous disposez d'une classe nommée Person avec un champ pour stocker le name. De plus, il existe deux classes nommées Student et Teacher qui dérivent de Person.

Le programme comporte des erreurs en raison de code incomplet. Votre tâche consiste à compléter le code en :

  1. Faisant en sorte que Student et Teacher héritent tous deux de la classe Person ;
  2. Garantissant que le champ name soit accessible dans les classes dérivées mais inaccessible depuis l'extérieur.
index.cs

index.cs

copy
12345678910111213141516171819202122232425262728293031323334353637383940414243444546
using System; public class Person { // Field to store the name string name; } public class Student { public Student(string name) { this.name = name; } public void Study() { Console.WriteLine($"{name} is studying."); } } public class Teacher { public Teacher(string name) { this.name = name; } public void Teach() { Console.WriteLine($"{name} is teaching."); } } public class Program { public static void Main(string[] args) { Teacher t = new Teacher("Hannah"); Student s = new Student("Mark"); t.Teach(); s.Study(); } }
  1. Dans cet exercice, il faut d'abord utiliser le concept de classes dérivées, puis les modificateurs d'accès.
  2. On utilise le symbole : pour spécifier la classe parente lors de la définition d'une classe dérivée.
  3. Rappelez-vous quel modificateur d'accès est approprié pour le champ name afin de le masquer à l'extérieur de la classe tout en le rendant accessible dans les classes dérivées.
index.cs

index.cs

copy
123456789101112131415161718192021222324252627282930313233343536373839404142434445
using System; public class Person { // Field to store the name protected string name; } public class Student : Person { public Student(string name) { this.name = name; } public void Study() { Console.WriteLine($"{name} is studying."); } } public class Teacher : Person { public Teacher(string name) { this.name = name; } public void Teach() { Console.WriteLine($"{name} is teaching."); } } public class Program { public static void Main(string[] args) { Teacher t = new Teacher("Hannah"); Student s = new Student("Mark"); t.Teach(); s.Study(); } }
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 4

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Awesome!

Completion rate improved to 2.04

bookDéfi : Exercice sur les Modificateurs

Glissez pour afficher le menu

Vous disposez d'une classe nommée Person avec un champ pour stocker le name. De plus, il existe deux classes nommées Student et Teacher qui dérivent de Person.

Le programme comporte des erreurs en raison de code incomplet. Votre tâche consiste à compléter le code en :

  1. Faisant en sorte que Student et Teacher héritent tous deux de la classe Person ;
  2. Garantissant que le champ name soit accessible dans les classes dérivées mais inaccessible depuis l'extérieur.
index.cs

index.cs

copy
12345678910111213141516171819202122232425262728293031323334353637383940414243444546
using System; public class Person { // Field to store the name string name; } public class Student { public Student(string name) { this.name = name; } public void Study() { Console.WriteLine($"{name} is studying."); } } public class Teacher { public Teacher(string name) { this.name = name; } public void Teach() { Console.WriteLine($"{name} is teaching."); } } public class Program { public static void Main(string[] args) { Teacher t = new Teacher("Hannah"); Student s = new Student("Mark"); t.Teach(); s.Study(); } }
  1. Dans cet exercice, il faut d'abord utiliser le concept de classes dérivées, puis les modificateurs d'accès.
  2. On utilise le symbole : pour spécifier la classe parente lors de la définition d'une classe dérivée.
  3. Rappelez-vous quel modificateur d'accès est approprié pour le champ name afin de le masquer à l'extérieur de la classe tout en le rendant accessible dans les classes dérivées.
index.cs

index.cs

copy
123456789101112131415161718192021222324252627282930313233343536373839404142434445
using System; public class Person { // Field to store the name protected string name; } public class Student : Person { public Student(string name) { this.name = name; } public void Study() { Console.WriteLine($"{name} is studying."); } } public class Teacher : Person { public Teacher(string name) { this.name = name; } public void Teach() { Console.WriteLine($"{name} is teaching."); } } public class Program { public static void Main(string[] args) { Teacher t = new Teacher("Hannah"); Student s = new Student("Mark"); t.Teach(); s.Study(); } }
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 4
some-alt