Kursinhalt
C# Über die Grundlagen Hinaus
C# Über die Grundlagen Hinaus
3. Einführung in die Objektorientierte Programmierung (OOP)
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
using 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