Uitdaging: Oefening met Modificatoren
Je krijgt een klasse genaamd Person met een veld om de name op te slaan. Daarnaast zijn er twee klassen genaamd Student en Teacher die afgeleid zijn van Person.
Er zitten enkele fouten in het programma vanwege onvolledige code. Je taak is om de code te voltooien door:
- Zowel
StudentalsTeacherte laten erven van de klassePerson; - Ervoor te zorgen dat het veld
nametoegankelijk is in de afgeleide klassen, maar niet toegankelijk is vanuit andere locaties.
index.cs
12345678910111213141516171819202122232425262728293031323334353637383940414243444546using 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(); } }
- In deze opdracht moet je eerst het concept van afgeleide klassen gebruiken, daarna de toegangsmodificatoren.
- We gebruiken het symbool
:om de bovenliggende klasse te specificeren in de definitie van een afgeleide klasse. - Bedenk welke toegangsmodificator geschikt is voor het veld
nameom het te verbergen voor buitenstaanders, maar toegankelijk te maken voor afgeleide klassen.
index.cs
123456789101112131415161718192021222324252627282930313233343536373839404142434445using 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(); } }
Was alles duidelijk?
Bedankt voor je feedback!
Sectie 4. Hoofdstuk 4
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Awesome!
Completion rate improved to 2.04
Uitdaging: Oefening met Modificatoren
Veeg om het menu te tonen
Je krijgt een klasse genaamd Person met een veld om de name op te slaan. Daarnaast zijn er twee klassen genaamd Student en Teacher die afgeleid zijn van Person.
Er zitten enkele fouten in het programma vanwege onvolledige code. Je taak is om de code te voltooien door:
- Zowel
StudentalsTeacherte laten erven van de klassePerson; - Ervoor te zorgen dat het veld
nametoegankelijk is in de afgeleide klassen, maar niet toegankelijk is vanuit andere locaties.
index.cs
12345678910111213141516171819202122232425262728293031323334353637383940414243444546using 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(); } }
- In deze opdracht moet je eerst het concept van afgeleide klassen gebruiken, daarna de toegangsmodificatoren.
- We gebruiken het symbool
:om de bovenliggende klasse te specificeren in de definitie van een afgeleide klasse. - Bedenk welke toegangsmodificator geschikt is voor het veld
nameom het te verbergen voor buitenstaanders, maar toegankelijk te maken voor afgeleide klassen.
index.cs
123456789101112131415161718192021222324252627282930313233343536373839404142434445using 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(); } }
Was alles duidelijk?
Bedankt voor je feedback!
Sectie 4. Hoofdstuk 4