Diskuze: Třídy , metody lame dotaz :) prosim poradte

C# .NET .NET (C# a Visual Basic) Třídy , metody lame dotaz :) prosim poradte American English version English version

Avatar
MartinMa
Člen
Avatar
MartinMa:

Prosím někoho o radu uplnymu zacatecnikovi.Chtel bych aby metoudou Dosazeni se k cloveku1 pridaly penize podle toho kolik napisu do konzole.To funguje ale zaroven to po me chce nastavit i vek protoze je (<= 0) a nejak jsem nevymezil ze chci jen penize.Jak udelat kdyz "volam Dosazeni aby se dosadili jen penize" Díky za rady !!

Lidi clovek1 = new Lidi();
clovek1.jmeno = "Martin ";
clovek1.vek = 0;
clovek1.povolani = " ";
clovek1.penize = 0;

clovek1.Dosazeni();


public void Dosazeni()
{
if (penize <= 0)
Console.ReadLine();

else
Console.Write­Line("Mas dost penez, nesockuj !!!");

Editováno 3.3.2014 22:01
 
Odpovědět 3.3.2014 21:59
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na MartinMa
Jan Vargovský:
  1. Tvoje třída by se měla jmenovat Clovek nebo lépe Osoba
  2. Public vlastnosti se dávají velkým písmenem prvním
  3. Metoda Dosazeni mi neříká vůbec nic

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.

 
Nahoru Odpovědět 3.3.2014 22:02
Avatar
MartinMa
Člen
Avatar
Odpovídá na Jan Vargovský
MartinMa:

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.Write­Line(jmeno);

}

public void Nakup()
{
if (penize >= 200)
Console.Write­Line(penize - jednicka);
else
Console.Write­Line("Nemáš dost penez");
}

public void Dosazeni()
{
if (penize <= 0)
Console.ReadLine();

else
Console.Write­Line("Mas dost penez, nesockuj !!!");

}

 
Nahoru Odpovědět 3.3.2014 22:10
Avatar
Denis Homolík (Alfonz):

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!

Nahoru Odpovědět 3.3.2014 22:26
Vše je možné, dokud si to myslíte!
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na MartinMa
Jan Vargovský:
pošli nám svůj kód, vlož ho jako "vložit zdrojový kód" a potom ti rádi pomůžeme.
 
Nahoru Odpovědět 3.3.2014 22:37
Avatar
MartinMa
Člen
Avatar
MartinMa:
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 !!!");


        }
    }

}
 
Nahoru Odpovědět 3.3.2014 22:39
Avatar
MartinMa
Člen
Avatar
MartinMa:
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();


        }
    }
}
 
Nahoru Odpovědět 3.3.2014 22:40
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na MartinMa
Jan Vargovský:

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.

 
Nahoru Odpovědět 4.3.2014 0:11
Avatar
MartinMa
Člen
Avatar
MartinMa:

No metodou dosazeni jsem chtel aby cloveku ktery na ni zavola "clovek1.dosa­zeni();"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

Editováno 4.3.2014 0:28
 
Nahoru Odpovědět 4.3.2014 0:27
Avatar
MartinMa
Člen
Avatar
MartinMa:

Skusim si tady napred koupit ten kurs uplne zacatecnickej.

 
Nahoru Odpovědět 4.3.2014 0:32
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na MartinMa
Jan Vargovský:

Nikde tam jméno ani vek nenastavuješ, proto mě to zaráží.

 
Nahoru Odpovědět 4.3.2014 1:32
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 11 zpráv z 11.