Hjälp med att skriva ut ett värde från en metod
Hallå på er kära vänner!
Jag som många andra läser Programmering 2 på distans och får själv sitta och googla och söka efter dom svaren man behöver utöver kurslitteraturen. Jag har en liten uppgift där jag bara har en sak kvar att göra. Tanken är att vi ska träna på arv osv inför en större uppgift senare.
Jag är väldigt ny till override metoder och dylikt och dessutom helt färsk när det kommer till arv och sånt men tror jag börjar fatta grejen. Uppgiften är kort; Gör en klass som heter Fordon, gör en ärvande klass som heter Lastbil och ge den olika saker att göra.
Det jag sitter fast på nu är att jag har en metod som heter "calc_topspeed" där jag bara gör en uträkning utgående ifrån hur mycket hästkrafter man gett lastbilen och hur mycket last den har. Vet inte om jag bara har hjärnsläpp eller vad det är men jag får inte till metoden så jag kan skriva ut det i min "toString" som jag har där jag ska skriva ut Hästkrafter, färg, last och tophastighet.
Det jag testat med är att lägga till:
public override string ToString()
{
return string.Format("Lastbilen har lastats med: {0} KG. \nFärgen på lastbilen är: {1}. \nHästkrafterna på lastbilen är: {2}. \nLastbilens tophastighet är: {3}", last, color, horsepower, topspeed);
}
Men får då till svar att "topspeed" aldrig har tilldelats och därför stannar värdet på 0 även fast koden går igenom min calc_topspeed metod?
Hoppas ni kan hjälpa mig i rätt riktning, jag förväntar mig inte att ni gör det åt mig men har sett många bra svar på andra trådar i detta forum och jag hoppas jag kan få samma hjälp.
Här är min kod:
namespace Fordon
{
abstract class Fordon
{
protected int horsepower;
protected string color;
protected Fordon(int _horsepower, string _color) //basklassens konstruktor
{
horsepower = _horsepower;
color = _color;
}
public virtual void horn()
{
Console.WriteLine("Tuut tuut");
}
public virtual int calc_topspeed()
{
int topspeed;
topspeed = horsepower + 10;
return topspeed;
}
}
class Lastbil : Fordon
{
private int last;
private int topspeed;
public Lastbil(int _horsepower, string _color, int _last) : base(_horsepower, _color)
{
Console.WriteLine("\nPlease enter desired horsepower of the truck!");
_horsepower = int.Parse(Console.ReadLine());
Console.WriteLine("\nWhat color is the truck?");
_color = Console.ReadLine();
Console.WriteLine("\nEnter the cargo of your truck here: ");
_last = int.Parse(Console.ReadLine());
calc_topspeed();
horsepower = _horsepower;
color = _color;
last = _last;
}
public override int calc_topspeed()
{
int topspeed;
topspeed = horsepower + (last / 4) * 2;
return topspeed;
}
public override string ToString()
{
return string.Format("Lastbilen har lastats med: {0} KG. \nFärgen på lastbilen är: {1}. \nHästkrafterna på lastbilen är: {2}. \nLastbilens tophastighet är: {3}", last, color, horsepower, topspeed);
}
}
class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Welcome to this awesome truck simulator!");
Lastbil Volvo = new Lastbil(0, "", 0);
Console.WriteLine(Volvo);
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}
}
}
Tack på förhand!!