Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Utfordring: Øvelse med Modifikatorer | OOP-Grunnprinsipper
C# Utover Det Grunnleggende

bookUtfordring: Øvelse med Modifikatorer

Du har en klasse kalt Person med et felt for å lagre name. I tillegg finnes det to klasser, Student og Teacher, som arver fra Person.

Det er noen feil i programmet på grunn av ufullstendig kode. Din oppgave er å fullføre koden ved å:

  1. Sørge for at både Student og Teacher arver fra Person-klassen;
  2. Sikre at feltet name er tilgjengelig i underklassene, men utilgjengelig fra 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 oppgaven må du først bruke konseptet med avledede klasser, deretter tilgangsmodifikatorer.
  2. Vi bruker symbolet : for å angi foreldreklassen i definisjonen av en barneklasse (avledet klasse).
  3. Husk hvilken tilgangsmodifikator som er passende for feltet name for å skjule det fra utsiden av klassen, men gjøre det tilgjengelig for underklassene.
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(); } }
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 4

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Awesome!

Completion rate improved to 2.04

bookUtfordring: Øvelse med Modifikatorer

Sveip for å vise menyen

Du har en klasse kalt Person med et felt for å lagre name. I tillegg finnes det to klasser, Student og Teacher, som arver fra Person.

Det er noen feil i programmet på grunn av ufullstendig kode. Din oppgave er å fullføre koden ved å:

  1. Sørge for at både Student og Teacher arver fra Person-klassen;
  2. Sikre at feltet name er tilgjengelig i underklassene, men utilgjengelig fra 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 oppgaven må du først bruke konseptet med avledede klasser, deretter tilgangsmodifikatorer.
  2. Vi bruker symbolet : for å angi foreldreklassen i definisjonen av en barneklasse (avledet klasse).
  3. Husk hvilken tilgangsmodifikator som er passende for feltet name for å skjule det fra utsiden av klassen, men gjøre det tilgjengelig for underklassene.
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(); } }
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 4
some-alt