Egy osztály példányát úgy hozod létre, hogy meghívod a konstruktorát a new operátoron keresztül. A konstruktor egy különleges metódustípus, amelynek a célja, hogy inicializálja az újonnan létrehozott példányt. A konstruktorok úgy néznek ki, mint a hagyományos metódusok, de nincs visszatérési típusuk, és a nevük megegyezik az osztály nevével.
class Library
{
private int books;
public Library()
{
// Initialize the books field
this.books = 10;
}
}
// This will call the constructor
var library = new Library();
A hagyományos metódusokhoz hasonlóan a konstruktoroknak is lehetnek paramétereik. A konstruktor paramétereit általában (privát) mezőkként tároljuk, hogy később hozzáférhessünk hozzájuk, vagy valamilyen egyszeri számításban használjuk fel őket. A konstruktoroknak ugyanúgy adhatsz át argumentumokat, mint a hagyományos metódusoknak.
class Building
{
private int numberOfStories;
private int totalHeight;
public Building(int numberOfStories, double storyHeight)
{
this.numberOfStories = numberOfStories;
this.totalHeight = numberOfStories * storyHeight;
}
}
// Call a constructor with two arguments
var largeBuilding = new Building(55, 6.2)
Ebben a feladatban különféle típusú távirányítós autók közötti versenyeket fogsz megszervezni. Minden autónak megvan a saját sebessége és akkumulátor-kimerülési jellemzője.
Az autók feltöltött (100%-os) akkumulátorral indulnak. Valahányszor vezeted az autót a távirányítóval, annyi métert tesz meg, amennyi az autó sebessége, és a hátralévő akkumulátorszázalékot az akkumulátor-kimerülés mértékével csökkenti.
Ha egy autó akkumulátora a kimerülési százaléka alá csökken, már nem tudod vezetni az autót.
Minden versenypályának megvan a maga távolsága. Az autókat úgy tesztelik, hogy megnézik, képesek-e teljesíteni a pályát anélkül, hogy kimerülne az akkumulátoruk.
Hat részfeladat vár rád, és mindegyikük távirányítós autók példányaival dolgozik majd.
Tedd lehetővé távirányítós autó létrehozását úgy, hogy definiálsz egy konstruktort a RemoteControlCar osztályhoz, amely két paraméterként az autó méterben mért sebességét és az akkumulátor-kimerülés százalékát várja (mindkettő int típusú):
int speed = 5;
int batteryDrain = 2;
var car = new RemoteControlCar(speed, batteryDrain);
Tedd lehetővé versenypálya létrehozását úgy, hogy definiálsz egy konstruktort a RaceTrack osztályhoz, amely egyetlen paraméterként a pálya méterben mért távolságát várja (int típusú):
int distance = 800;
var raceTrack = new RaceTrack(distance);
Valósítsd meg a RemoteControlCar.Drive() metódust, amely az autó sebessége alapján frissíti a megtett méterek számát. Valósítsd meg a RemoteControlCar.DistanceDriven() metódust is, amely visszaadja az autó által megtett méterek számát:
int speed = 5;
int batteryDrain = 2;
var car = new RemoteControlCar(speed, batteryDrain);
car.Drive();
car.DistanceDriven();
// => 5
Frissítsd a RemoteControlCar.Drive() metódust, hogy az autó akkumulátor-kimerülése alapján kimerítse az akkumulátort. Valósítsd meg a RemoteControlCar.BatteryDrained() metódust is, amely jelzi, hogy kimerült-e az akkumulátor:
int speed = 5;
int batteryDrain = 2;
var car = new RemoteControlCar(speed, batteryDrain);
car.Drive();
car.BatteryDrained();
// => false
A legkelendőbb távirányítós autó a Nitro, amely lenyűgöző, 50 méteres végsebességgel és 4%-os akkumulátor-kimerüléssel bír. Valósítsd meg a (statikus) RemoteControlCar.Nitro() metódust, amely ezt az autótípust adja vissza:
var car = RemoteControlCar.Nitro();
car.Drive();
car.DistanceDriven();
// => 50
Ahhoz, hogy egy autó teljesítsen egy versenypályát, képesnek kell lennie megtenni a pálya távolságát. Ez azt jelenti, hogy nem meríti ki az akkumulátorát, mielőtt átlépné a célvonalat. Valósítsd meg a RaceTrack.TryFinishTrack() metódust, amely paraméterként egy RemoteControlCar példányt vár, és true-t ad vissza, ha az autó teljesíteni tudja a versenypályát; egyébként false-t:
int speed = 5;
int batteryDrain = 2;
var car = new RemoteControlCar(speed, batteryDrain);
int distance = 100;
var raceTrack = new RaceTrack(distance);
raceTrack.TryFinishTrack(car);
// => true
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) C# nyelvet 62 fogalom178 feladat segítségével, valódi emberi mentorálással, mindez ingyen.