Uitdaging: Encapsulatie
De basiscode bevat twee klassen genaamd Vehicle
en Car
. Sommige velden moeten verborgen worden terwijl andere zichtbaar moeten zijn.
- Pas de zichtbaarheid aan van de velden
type
enmodelYear
inVehicle
zodat deze niet toegankelijk zijn van buiten de klasse, inclusief afgeleide klassen; - Maak een nieuwe methode genaamd
getModelYear
binnen de klasseVehicle
zodat deze demodelYear
retourneert. Deze methode moet overal toegankelijk zijn. Met deze methode kunnen gebruikers van deze klasse demodelYear
opvragen, maar niet aanpassen van buitenaf; - De eigenschappen
ownerName
enfuel
mogen nergens toegankelijk zijn; - Maak een methode genaamd
getFuel
die de waarde vanfuel
retourneert; - Maak een methode genaamd
addFuel
die eenfloat
argument met de naamfuel
ontvangt. Voeg binnen deze methode de waarde vanfuel
toe aan de eigenschapfuel
(this.fuel
).
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()}"); } }
- De methoden
getModelYear
engetFuel
zijn getter-methoden. Ze nemen geen argumenten, zijnpublic
en retourneren alleen een waarde. - De methode
addFuel
is een setter-methode. Deze ispublic
en neemt éénfloat
argument met de naamfuel
. Voor het bijwerken van de waarde van fuel moet mogelijk het sleutelwoordthis
worden gebruikt. (this.fuel += fuel
)
index.cs
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576using System; class Vehicle { // Edit code below this line private string type; private int modelYear; // Edit code above this line // Create a method below this line public int getModelYear() { return modelYear; } // 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; private string ownerName; private float fuel; // Edit code above this line // Create a method below this line public float getFuel() { return fuel; } public void addFuel(float fuel) { this.fuel += fuel; } // 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()}"); } }
Was alles duidelijk?
Bedankt voor je feedback!
Sectie 5. Hoofdstuk 7
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: Encapsulatie
Veeg om het menu te tonen
De basiscode bevat twee klassen genaamd Vehicle
en Car
. Sommige velden moeten verborgen worden terwijl andere zichtbaar moeten zijn.
- Pas de zichtbaarheid aan van de velden
type
enmodelYear
inVehicle
zodat deze niet toegankelijk zijn van buiten de klasse, inclusief afgeleide klassen; - Maak een nieuwe methode genaamd
getModelYear
binnen de klasseVehicle
zodat deze demodelYear
retourneert. Deze methode moet overal toegankelijk zijn. Met deze methode kunnen gebruikers van deze klasse demodelYear
opvragen, maar niet aanpassen van buitenaf; - De eigenschappen
ownerName
enfuel
mogen nergens toegankelijk zijn; - Maak een methode genaamd
getFuel
die de waarde vanfuel
retourneert; - Maak een methode genaamd
addFuel
die eenfloat
argument met de naamfuel
ontvangt. Voeg binnen deze methode de waarde vanfuel
toe aan de eigenschapfuel
(this.fuel
).
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()}"); } }
- De methoden
getModelYear
engetFuel
zijn getter-methoden. Ze nemen geen argumenten, zijnpublic
en retourneren alleen een waarde. - De methode
addFuel
is een setter-methode. Deze ispublic
en neemt éénfloat
argument met de naamfuel
. Voor het bijwerken van de waarde van fuel moet mogelijk het sleutelwoordthis
worden gebruikt. (this.fuel += fuel
)
index.cs
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576using System; class Vehicle { // Edit code below this line private string type; private int modelYear; // Edit code above this line // Create a method below this line public int getModelYear() { return modelYear; } // 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; private string ownerName; private float fuel; // Edit code above this line // Create a method below this line public float getFuel() { return fuel; } public void addFuel(float fuel) { this.fuel += fuel; } // 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()}"); } }
Was alles duidelijk?
Bedankt voor je feedback!
Sectie 5. Hoofdstuk 7