Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Udfordring: Øvelse med Modifikatorer | OOP-Grundprincipper
C# Ud Over Det Grundlæggende

bookUdfordring: Øvelse med Modifikatorer

Du får en klasse ved navn Person med et felt til at gemme name. Derudover er der to klasser ved navn Student og Teacher, som nedarver fra Person.

Der er nogle fejl i programmet på grund af ufuldstændig kode. Din opgave er at færdiggøre koden ved at:

  1. Få både Student og Teacher til at arve fra Person-klassen;
  2. Sikre, at feltet name er tilgængeligt i underklasserne, men utilgængeligt fra alle andre steder.
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. I denne opgave skal du først bruge konceptet af afledte klasser og derefter adgangsmodifikatorer.
  2. Vi bruger symbolet : til at angive forældreklassen i definitionen af en underklasse (afledt klasse).
  3. Husk, hvilken adgangsmodifikator der er passende for feltet name for at skjule det uden for klassen, men gøre det tilgængeligt for underklasserne.
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(); } }
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 4

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Suggested prompts:

What is the correct access modifier to use for the `name` field?

Can you show an example of how to define the inheritance for `Student` and `Teacher`?

Can you explain why the `name` field should not be public?

Awesome!

Completion rate improved to 2.04

bookUdfordring: Øvelse med Modifikatorer

Stryg for at vise menuen

Du får en klasse ved navn Person med et felt til at gemme name. Derudover er der to klasser ved navn Student og Teacher, som nedarver fra Person.

Der er nogle fejl i programmet på grund af ufuldstændig kode. Din opgave er at færdiggøre koden ved at:

  1. Få både Student og Teacher til at arve fra Person-klassen;
  2. Sikre, at feltet name er tilgængeligt i underklasserne, men utilgængeligt fra alle andre steder.
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. I denne opgave skal du først bruge konceptet af afledte klasser og derefter adgangsmodifikatorer.
  2. Vi bruger symbolet : til at angive forældreklassen i definitionen af en underklasse (afledt klasse).
  3. Husk, hvilken adgangsmodifikator der er passende for feltet name for at skjule det uden for klassen, men gøre det tilgængeligt for underklasserne.
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(); } }
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 4
some-alt