Kapselungsübung
Der Basiscode enthält zwei Klassen namens Vehicle
und Car
. Einige der Felder müssen verborgen werden, während andere offengelegt werden müssen.
- Passen Sie die Sichtbarkeit der Felder
type
undmodelYear
inVehicle
so an, dass sie von außerhalb der Klasse, einschließlich abgeleiteter Klassen, nicht zugänglich sind; - Erstellen Sie eine neue Methode namens
getModelYear
innerhalb derVehicle
-Klasse, sodass sie dasmodelYear
zurückgibt. Diese Methode sollte von überall zugänglich sein. Diese Methode ermöglicht es den Benutzern dieser Klasse, auf das modelYear zuzugreifen, es jedoch nicht von außen zu ändern; - Die Eigenschaften
ownerName
undfuel
sollten von nirgendwo zugänglich sein; - Erstellen Sie eine Methode namens
getFuel
, die den Wert vonfuel
zurückgibt; - Erstellen Sie eine Methode namens
addFuel
, die einfloat
-Argument namensfuel
entgegennimmt. Innerhalb der Methode fügen Sie den Wert vonfuel
zur Eigenschaftfuel
(this.fuel
) hinzu.
index.cs
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364using System; class Vehicle { // Edit code below this line public string type; public int modelYear; // Edit code above this line // Create a method below this line // Create a method above this line public Vehicle(string type, int modelYear) { this.type = type; this.modelYear = modelYear; } } class Car : Vehicle { // Edit code below this line public string brandName; public string numberPlate; public string ownerName; public float fuel; // Edit code above this line // Create a method below this line // Create a method above this line public Car(int modelYear, string brandName, string numberPlate, string ownerName, float fuel) : base("Car", modelYear) { this.brandName = brandName; this.numberPlate = numberPlate; this.ownerName = ownerName; this.fuel = fuel; } } class Program { static void Main() { // Create an instance of Car Car myCar = new Car(2022, "Toyota", "ABC123", "John Doe", 50.0f); // Accessing properties and methods from Car class Console.WriteLine($"Brand: {myCar.brandName}"); Console.WriteLine($"Number Plate: {myCar.numberPlate}"); // Accessing getModelYear method from Vehicle class Console.WriteLine($"Model Year: {myCar.getModelYear()}"); // Accessing getFuel method from Car class Console.WriteLine($"Fuel: {myCar.getFuel()}"); // Adding fuel using addFuel method myCar.addFuel(10.0f); Console.WriteLine($"After adding fuel, new Fuel: {myCar.getFuel()}"); } }
War alles klar?
Danke für Ihr Feedback!
Abschnitt 5. Kapitel 7
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Awesome!
Completion rate improved to 2.04
Kapselungsübung
Swipe um das Menü anzuzeigen
Der Basiscode enthält zwei Klassen namens Vehicle
und Car
. Einige der Felder müssen verborgen werden, während andere offengelegt werden müssen.
- Passen Sie die Sichtbarkeit der Felder
type
undmodelYear
inVehicle
so an, dass sie von außerhalb der Klasse, einschließlich abgeleiteter Klassen, nicht zugänglich sind; - Erstellen Sie eine neue Methode namens
getModelYear
innerhalb derVehicle
-Klasse, sodass sie dasmodelYear
zurückgibt. Diese Methode sollte von überall zugänglich sein. Diese Methode ermöglicht es den Benutzern dieser Klasse, auf das modelYear zuzugreifen, es jedoch nicht von außen zu ändern; - Die Eigenschaften
ownerName
undfuel
sollten von nirgendwo zugänglich sein; - Erstellen Sie eine Methode namens
getFuel
, die den Wert vonfuel
zurückgibt; - Erstellen Sie eine Methode namens
addFuel
, die einfloat
-Argument namensfuel
entgegennimmt. Innerhalb der Methode fügen Sie den Wert vonfuel
zur Eigenschaftfuel
(this.fuel
) hinzu.
index.cs
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364using System; class Vehicle { // Edit code below this line public string type; public int modelYear; // Edit code above this line // Create a method below this line // Create a method above this line public Vehicle(string type, int modelYear) { this.type = type; this.modelYear = modelYear; } } class Car : Vehicle { // Edit code below this line public string brandName; public string numberPlate; public string ownerName; public float fuel; // Edit code above this line // Create a method below this line // Create a method above this line public Car(int modelYear, string brandName, string numberPlate, string ownerName, float fuel) : base("Car", modelYear) { this.brandName = brandName; this.numberPlate = numberPlate; this.ownerName = ownerName; this.fuel = fuel; } } class Program { static void Main() { // Create an instance of Car Car myCar = new Car(2022, "Toyota", "ABC123", "John Doe", 50.0f); // Accessing properties and methods from Car class Console.WriteLine($"Brand: {myCar.brandName}"); Console.WriteLine($"Number Plate: {myCar.numberPlate}"); // Accessing getModelYear method from Vehicle class Console.WriteLine($"Model Year: {myCar.getModelYear()}"); // Accessing getFuel method from Car class Console.WriteLine($"Fuel: {myCar.getFuel()}"); // Adding fuel using addFuel method myCar.addFuel(10.0f); Console.WriteLine($"After adding fuel, new Fuel: {myCar.getFuel()}"); } }
War alles klar?
Danke für Ihr Feedback!
Abschnitt 5. Kapitel 7