Balíčky v Javě - začátečník

alexan

Balíčky v Javě - začátečník
« kdy: 18. 08. 2016, 08:26:34 »
Mám problém s pochopením následujícího (z knihy Java 7 - učebnice objektové architektury pro začátečníky - Rudolf Pecinovský):

"Třídy v kořenovém balíčku jsou pro ostatní třídy z jiných balíčků nedostupné. Třídy z kořenového balíčku totiž nemají plný název, takže je z jiného balíčku nemůžeme ani
importovat, ani přímo oslovit. V jiných balíčcích proto nemůžeme implementovat
rozhraní z kořenového balíčku ani mít potomka třídy z kořenového balíčku."

Chtěl jsem si to v Netbeans vyzkoušet - založil jsem si java projekt a v něm v kořenovém adresáři dva balíčky. První obsahoval třídu kterou jsem si chtěl vyzkoušet použít ve druhém balíčku (což by podle učebnice-pokud ji správně chápu-možné být nemělo). Ale ono to bylo funkční. Mohl byste mi někdo smysl toho textu z učebnice nějak vysvětlit?


Re:Balíčky v Javě - začátečník
« Odpověď #1 kdy: 18. 08. 2016, 09:29:01 »
Netbeans je pomerne inteligentný, tipujem že automaticky pridal riadok s importom. Tu je príklad:
Kód: [Vybrat]
import java.io.*;

pecrom

Re:Balíčky v Javě - začátečník
« Odpověď #2 kdy: 18. 08. 2016, 09:30:00 »
myslim si, ze je "korenovym" balickem je mysleny defaultni, tj. ten co co nema jmeno. vy ste vytvoril dva balicky, ty uz jmeno maji takze tridy v nich dou dedit, importovat atd. viz. zde info http://stackoverflow.com/questions/2193226/how-to-import-a-class-from-default-package do defaultniho spadnou vsecky tridy, ktere nemaji uvedeny "package". trosku krkolomna odpoved, ale doufam, ze se to da pobrat

technomaniak

Re:Balíčky v Javě - začátečník
« Odpověď #3 kdy: 18. 08. 2016, 09:39:34 »
Mám problém s pochopením následujícího (z knihy Java 7 - učebnice objektové architektury pro začátečníky - Rudolf Pecinovský):

"Třídy v kořenovém balíčku jsou pro ostatní třídy z jiných balíčků nedostupné. Třídy z kořenového balíčku totiž nemají plný název, takže je z jiného balíčku nemůžeme ani
importovat, ani přímo oslovit. V jiných balíčcích proto nemůžeme implementovat
rozhraní z kořenového balíčku ani mít potomka třídy z kořenového balíčku."

Chtěl jsem si to v Netbeans vyzkoušet - založil jsem si java projekt a v něm v kořenovém adresáři dva balíčky. První obsahoval třídu kterou jsem si chtěl vyzkoušet použít ve druhém balíčku (což by podle učebnice-pokud ji správně chápu-možné být nemělo). Ale ono to bylo funkční. Mohl byste mi někdo smysl toho textu z učebnice nějak vysvětlit?

Skutečně je problém v chápání, i když ty jeho interpretace jsou horor. I ten příklad co sis vytvořil není správně dle citace z knihy.
správná simulace =
1) vytvoříš projekt
2) vytvoříš pouze 1 balíček v kořenovém adresáři ( např. package balicek )
3) v daném balíčku vytvoříš třídu  (např.  class TridaBalicek )
4) a pak vytvoříš třídu přímo v kořenovém adresáři. Tato třída nebude mít definici balíčku a tudíž není přístupná přes standardní cestu. (např. class TridaBezBalicku )

třída s balíčkem

Kód: [Vybrat]
package balicek;
class TridaBalicek {
      ...
}

třída bez balíčku

Kód: [Vybrat]
class TridaBezBalicku {
      ...
}




PS. Pecinovského knihy o Javě jsou odpad zvol si radši jiné, ale co se týče jeho knihy o návrhových vzorech tak ta je mistrovské dílo.

Re:Balíčky v Javě - začátečník
« Odpověď #4 kdy: 18. 08. 2016, 09:47:40 »
založil jsem si java projekt a v něm v kořenovém adresáři dva balíčky
Což je chyba, v citaci se píše o kořenovém balíčku – tj. v java souboru nebude uveden žádný package a zdrojový soubor bude uložen přímo v kořenovém adresáři (např. src/main/java/Test.java při klasické struktuře Maven projektů).

Třídy přímo do kořenového balíčku nedávejte nikdy. Nepatří tam ani resource soubory (NetBeany před tím dokonce varují), ale některé knihovny s tímhle umístěním počítají, pak je holt nutné udělat výjimku a resource soubor tam umístit.


borekz

  • ****
  • 492
    • Zobrazit profil
    • E-mail
Re:Balíčky v Javě - začátečník
« Odpověď #5 kdy: 18. 08. 2016, 14:49:30 »
Tohle je důvod, proč se neučím z knih.

Kit

Re:Balíčky v Javě - začátečník
« Odpověď #6 kdy: 18. 08. 2016, 15:15:26 »
Tohle je důvod, proč se neučím z knih.

Tím se hodně ochuzuješ, protože v knihách ty informace bývají preciznější a lépe uspořádány.

borekz

  • ****
  • 492
    • Zobrazit profil
    • E-mail
Re:Balíčky v Javě - začátečník
« Odpověď #7 kdy: 18. 08. 2016, 18:28:25 »
Zrovna to ukázka o kořenovém balíčku je precizní jak noha.

javaman )(

Re:Balíčky v Javě - začátečník
« Odpověď #8 kdy: 18. 08. 2016, 18:58:33 »
PS. Pecinovského knihy o Javě jsou odpad zvol si radši jiné, ale co se týče jeho knihy o návrhových vzorech tak ta je mistrovské dílo.

To myslíš vážně? Jako jedny knihy píše jako odpad a jiné píše jeho žena? Ty návrhový vzory jsou naopak to nejhorší, co má. Java od něj se dá, i když je divná. Ale návrhové vzory je opravdu mistrovské dílo, protože nic tak tragického jsem ještě neviděl. Nefunkční příklady? Popis zdrojáků, které nejsou v knize? Plno balastu kolem, ale k věci je toho málo. I když forma otázek a odpovědí je luxusní, tady to má tolik dalších nevýhod, že bych to moc neviděl. A jeho debilní název Kreslítko bych jako vydavatel ani v knize neotiskl.

Tohle je důvod, proč se neučím z knih.

Ano, to lopaty většinou dělávají, protože ani číst neumí.

Kit

Re:Balíčky v Javě - začátečník
« Odpověď #9 kdy: 18. 08. 2016, 19:36:46 »
Zrovna to ukázka o kořenovém balíčku je precizní jak noha.

Musíš si vybrat lepší knihu.

borekz

  • ****
  • 492
    • Zobrazit profil
    • E-mail
Re:Balíčky v Javě - začátečník
« Odpověď #10 kdy: 18. 08. 2016, 20:23:20 »
PS. Pecinovského knihy o Javě jsou odpad zvol si radši jiné, ale co se týče jeho knihy o návrhových vzorech tak ta je mistrovské dílo.

To myslíš vážně? Jako jedny knihy píše jako odpad a jiné píše jeho žena? Ty návrhový vzory jsou naopak to nejhorší, co má. Java od něj se dá, i když je divná. Ale návrhové vzory je opravdu mistrovské dílo, protože nic tak tragického jsem ještě neviděl. Nefunkční příklady? Popis zdrojáků, které nejsou v knize? Plno balastu kolem, ale k věci je toho málo. I když forma otázek a odpovědí je luxusní, tady to má tolik dalších nevýhod, že bych to moc neviděl. A jeho debilní název Kreslítko bych jako vydavatel ani v knize neotiskl.

Tohle je důvod, proč se neučím z knih.

Ano, to lopaty většinou dělávají, protože ani číst neumí.

Sám naznačuješ, že to je brak, ale když s tím brakem někdo nechce ztrácet čas, tak podle tebe neumí číst.
« Poslední změna: 18. 08. 2016, 20:27:01 od borekz »

javaman )(

Re:Balíčky v Javě - začátečník
« Odpověď #11 kdy: 18. 08. 2016, 20:54:43 »
Tak nemůžeš to brát podle nejhorší knihy na trhu. Většina zahraniční počítačové literatury má dobrou úroveň.

A ano, opravdu většina lidí neumí číst. Nechtějí se to naučit a považují to za ztrátu času, protože blogísky na webu jim všechno řeknou :D