Diskuze: Třídy , metody lame dotaz :) prosim poradte
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 11 zpráv z 11.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Přečetl jsem si to tak 4x a nechápu z toho vůbec nic pošli nám svůj kód, vlož ho
jako "vložit zdrojový kód" a potom ti rádi pomůžeme.
program.cs
static void Main(string[] args)
{
Lidi clovek1 = new Lidi();
clovek1.jmeno = "Martin ";
clovek1.vek = 0;
clovek1.povolani = " ";
clovek1.penize = 0;
Lidi clovek2 = new Lidi();
clovek2.jmeno = " Jirka";
clovek2.vek = 0;
clovek2.povolani = "";
Lidi clovek3 = new Lidi();
clovek3.jmeno = " Petr";
clovek3.vek = 0;
clovek3.povolani = "";
Lidi clovek4 = new Lidi();
clovek4.jmeno = " Honza";
clovek4.vek = 0;
clovek4.povolani = " ";
{
clovek1.Dosazeni();
}
Console.ReadLine();
lidi.cs
class Lidi
{
public string jmeno;
public float vek;
public string povolani;
public float penize;
public float jednicka = 200;
public void VypisLidi()
{
Console.WriteLine(jmeno);
}
public void Nakup()
{
if (penize >= 200)
Console.WriteLine(penize - jednicka);
else
Console.WriteLine("Nemáš dost penez");
}
public void Dosazeni()
{
if (penize <= 0)
Console.ReadLine();
else
Console.WriteLine("Mas dost penez, nesockuj !!!");
}
No co jsem pochopil z toho prvního zdrojáku, tak ty v Dosazeni jenom přečteš vstup z konzole, ten zahodíš a jedeš dál. A ještě ten text musíš naparsovat. A proč máš prázdnej konstruktor a pak všechno dosazuješ potom? Vlož toto rovnou do konstruktoru a když nevíš jak. Hurá na OOP na Devbooku!
pošli nám svůj kód, vlož ho jako "vložit zdrojový kód" a potom ti rádi pomůžeme.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace SeznamLidi
{
class Lidi
{
public string jmeno;
public float vek;
public string povolani;
public float penize;
public float jednicka = 200;
public void VypisLidi()
{
Console.WriteLine(jmeno);
}
public void Nakup()
{
if (penize >= 200)
Console.WriteLine(penize - jednicka);
else
Console.WriteLine("Nemáš dost penez");
}
public void Dosazeni()
{
if (penize <= 0)
Console.ReadLine();
else
Console.WriteLine("Mas dost penez, nesockuj !!!");
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace SeznamLidi
{
class Program
{
static void Main(string[] args)
{
Lidi clovek1 = new Lidi();
clovek1.jmeno = "Martin ";
clovek1.vek = 25;
clovek1.povolani = " ";
clovek1.penize = 0;
Lidi clovek2 = new Lidi();
clovek2.jmeno = " Jirka";
clovek2.vek = 0;
clovek2.povolani = "";
Lidi clovek3 = new Lidi();
clovek3.jmeno = " Petr";
clovek3.vek = 0;
clovek3.povolani = "";
Lidi clovek4 = new Lidi();
clovek4.jmeno = " Honza";
clovek4.vek = 0;
clovek4.povolani = " ";
{
clovek1.Dosazeni();
}
Console.ReadLine();
}
}
}
Nevím proč všude tolik mezer, ale nevadí.
Uprav si třídu tak, aby měla logické jméno - Clovek. Ta třída zastupuje totiž jen jednoho člověka a né několik. Tak sámo i metoda VypisLidi() - k tomuto patří metoda ToString, ale tam je pak něco navíc a to overridování metod, takže bych přepsal jen název metody jako Vypis() metodu Dosazeni a Nakup nechápu a hlavně nevím co ti na programu nefunguje.
No metodou dosazeni jsem chtel aby cloveku ktery na ni zavola "clovek1.dosazeni();"do veku dosadila to co napisu do console. To funguje ale dosadi to jak jmeno tak i vek. Asi to chapu furt nejak blbe a nakup tam je zatim navic
Nikde tam jméno ani vek nenastavuješ, proto mě to zaráží.
Zobrazeno 11 zpráv z 11.