Zadejte hledaný výraz...

Základy objektů v Javě – nejanost

David Musil
verified
rating uzivatele
(69 hodnocení)
9. 3. 2013 09:17:00
Ahoj,
začínám s objejkty v Javě. Abych lépe pochopil, snažil jsem se ihned najít nějaký příklad, na kterém bych demonstroval problematiku základů OOP. Mám ale jednu nejasnost v tomto kódu.
Java píše chybové hlášení, že konstruktor Zbozi požaduje hodnoty (String, String, int, int)
Já ale přeci nadefinoval jako atribut typ byte(ve všech metodách, kde se pracuje s počtem kusů) a není mi jasné, proč to jde ve chvíli, kdy vše předělám zpátky na int...
Tohle je veškerý zdrojový kód, takže je vyloučeno, že bych to měl jinde definované jinak. Existuje snad něco, co nutí k tomu, aby se musely v objektech použít pouze typy int?
Děkuji vám za pomoc a objasnění...
9. 3. 2013 09:17:00
https://webtrh.cz/diskuse/zaklady-objektu-v-jave-nejanost#reply875579
qwertr
verified
rating uzivatele
(7 hodnocení)
9. 3. 2013 10:10:11
predpokladam ze problem je pri vztvarani objektu
Zbozi notebook = new Zbozi("Notebook DELL 5510" - string, "Xa85j" - string , 13599 - integer, 5 - integer);
posledny parameter s hodnotou 5 berie ako typ integer a nie ako typ byte. Preto ti to nejde. Zakladny datovy typ je integer.
Vytvaranie objektu by malo vyzerat nejako takto
Zbozi notebook = new Zbozi("Notebook DELL 5510", "Xa85j", 13599, (byte)5);
9. 3. 2013 10:10:11
https://webtrh.cz/diskuse/zaklady-objektu-v-jave-nejanost#reply875578
David Musil
verified
rating uzivatele
(69 hodnocení)
9. 3. 2013 10:24:28
Jojo, máš pravdu, problém jsem identifikoval.. ale nevím, proč tu pětku bere automaticky jako int... třeba mi chybí nějaká "teoretická znalost"...
Takže pokud při vytváření objektů použiju číslo, tak si bere automaticky int pokud ho nepřetypuju?
9. 3. 2013 10:24:28
https://webtrh.cz/diskuse/zaklady-objektu-v-jave-nejanost#reply875577
MAHI
verified
rating uzivatele
(15 hodnocení)
9. 3. 2013 11:30:20
Musíš si uvědomit, že v Javě je prakticky VŠECHNO objekt. To znamená, že pokud chceš něco používat jako určený typ (ať už Zbozi nebo String nebo co já vím Objednavka), musíš to explicitně určit.
Prostě tady neplatí to co třeba v PHP, že by ty typy byly volnější - když to neurčíš, použije se základní datový typ, jak velice správně píše qwertr. ;-)
9. 3. 2013 11:30:20
https://webtrh.cz/diskuse/zaklady-objektu-v-jave-nejanost#reply875576
qwertr
verified
rating uzivatele
(7 hodnocení)
9. 3. 2013 13:50:41
Napsal musil.david;920569
Takže pokud při vytváření objektů použiju číslo, tak si bere automaticky int pokud ho nepřetypuju?
Cele cislo je automaticky int pokial ho nepretipujes. JAVA je narozdiel od PHP silne typovy jazyk. Pozrie si implicitnu a explicitnu converrziu
toto je implicitna konverzia
byte a = 5
int b = a
prekladac dokaze implicitne prekonvertovat typ byte na typ integer. Rozsahovo sa vojde byt do int bez toho, aby sa nejako zmenila hodnota
toto je explicitna konverzia
int a = 5
byte b = (byte)a
ty si mu vnutil prevod cisla typu int na byte. Pri tomto prevode sa moze zmenit hodnota co bude v tom byte a preto to prekladacu musis vnutit a preto to automaticky nerobi.
pokial urobis nieco takte
int a = 999;
byte b = (byte)a;
V b urcite nebudes mat cislo 999 lebo to je mimo rozsah toho bytu.
Rozsah bytu je -128 az 127
9. 3. 2013 13:50:41
https://webtrh.cz/diskuse/zaklady-objektu-v-jave-nejanost#reply875575
David Musil
verified
rating uzivatele
(69 hodnocení)
9. 3. 2013 22:19:52
Díky všem za odpovědi, odměnil jsem + bodíkem ;-)
9. 3. 2013 22:19:52
https://webtrh.cz/diskuse/zaklady-objektu-v-jave-nejanost#reply875574
Pro odpověď se přihlašte.
Přihlásit