Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Haaste: Kapselointi | Section
C# Perusteiden Jälkeen

bookHaaste: Kapselointi

Pyyhkäise näyttääksesi valikon

Pohjakoodissa on kaksi luokkaa nimeltä Vehicle ja Car. Osa kentistä täytyy piilottaa, kun taas osa täytyy altistaa näkyville.

  • Säädä type-luokan modelYear- ja Vehicle-kenttien näkyvyyttä siten, että niihin ei pääse käsiksi luokan ulkopuolelta, mukaan lukien perityt luokat;
  • Luo uusi metodi nimeltä getModelYear Vehicle-luokkaan siten, että se palauttaa modelYear-kentän arvon. Tämän metodin tulee olla käytettävissä kaikkialta. Tämän metodin avulla luokan käyttäjät voivat hakea modelYear-arvon, mutta eivät voi muuttaa sitä ulkopuolelta;
  • ownerName- ja fuel-ominaisuudet eivät saa olla käytettävissä mistään;
  • Luo metodi nimeltä getFuel, joka palauttaa fuel-arvon;
  • Luo metodi nimeltä addFuel, joka ottaa parametrina float-tyyppisen argumentin nimeltä fuel. Metodin sisällä lisää argumentin fuel arvon ominaisuuteen fuel (this.fuel).
index.cs

index.cs

copy
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
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()}"); } }
  1. Metodit getModelYear ja getFuel ovat getter-menetelmiä. Ne eivät ota parametreja, ovat public ja palauttavat vain arvon.
  2. Metodi addFuel on setter-menetelmä. Se on public ja ottaa yhden float-parametrin nimeltä fuel. Polttoaineen arvon päivittämiseen saatat tarvita this-avainsanaa. (this.fuel += fuel)
index.cs

index.cs

copy
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
using 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()}"); } }
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 46

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 1. Luku 46
some-alt