Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 36 ] Choď na stránku: 1, 2 ďalšia
AutorSpráva
Offline

Užívateľ
Užívateľ
dobre java navody a nova tema JAVA

Registrovaný: 11.02.09
Prihlásený: 28.03.23
Príspevky: 2208
Témy: 145
Bydlisko: Liptovský M...
Príspevok NapísalOffline : 21.02.2009 12:36

Zdravim vas.
Som len zacinajuci programator :child:, ktory akurat tak vie co su podmienky, cykly, objekty a ich triedy. Chcem sa ale tomuto vazne venovat hlavne webovym technologiam a chcem to dotiahnut az tam, ze budem programovat programy v ktorych sa programuju programovacie jazyky :sunglasses: :lol:


Tak sa chcem v prvom rade spytat, kde sa daju najst alebo stiahnut nejake dobre navody k Jave. Na internete som ich moc nenasiel ani na warez forach toho moc nie je aspon co som videl. A ked, tak len nejake zakladne veci (typu zaciname v Jave) od premennych cez podmienky a cykly az po triedy a objekty. Ja ale hladam nieco viac. Momentalne sa snazim pochopit fungovanie tohto OOP, tried a objektov. Chcem ale vediet ako sa vytvaraju applety, ako sa da komunikovat cez siet, ako vytvarat graficke aplikacie atd. K tomu som nic nenasiel. Takze pls ak by bol niekto taky dobry kto pozna nejake linky bol by som stastny. :clap:


Zaroven a hlavne by som chcel zalozit novu temu Java, kde by sme zbierali polopatisticke otazky a odpovede zhruba na mojej urovni. Nieco co v priruckach chyba, nieco co sme nepochopili, principy, zadrhely a haciky. Lebo je to ine citat a prediskutovat nieco, polozit vlastne otazky. Mohlo by to rapidne urychlit rozvoj nasich programovacich schopnosti. Tak ako priklad mozem uviest otazku: Preco nemozem vytvorit metodu v hlavnej triede (ktora ma rovnaky nazov ako subor) vedla metody public static main(...) a volat ju z tejto metody main(). Kompilator vypise ze nejde ju volat zo statickej metody, ale ked dam static z main prec tak to nefunguje. Viem ze sa pytam nezmysel a na to by som dokazal najst odpoved, ale uvadzam to ako priklad o com by tato tema mala byt. Samozrejme nebudu to otazky pre nejakych Senior programatorov :old:. Bol by som rad, keby sa nasli zaujemcovia o takuto vyuku a ucili sa paralelne so mnou, ale najprv by som chcel vediet, ci by ste o to mali zaujem. Aby som zbytocne nezatazoval forum. A vedzte ze v Jave je buducnost.


String PS[] = new String();
PS[0]= "A nevie niekto ako sa tie programovacie jazyky vlastne programuju? Na to my nevedela odpovedat ani profesorka z vysky. :side: :D "
PS[1]= "Za pripadne gramaticke chyby sa ospravedlnujem, z diktatov som mal vzdy stvorku. :filth: "


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 20.11.07
Prihlásený: 04.07.12
Príspevky: 405
Témy: 89
Príspevok NapísalOffline : 21.02.2009 12:52

ja sa budem ucit paralelne s tebou tu javu ale neviem ci funguje aj s direct x -om?aj?


Offline

Skúsený užívateľ
Skúsený užívateľ
dobre java navody a nova tema JAVA

Registrovaný: 11.01.09
Prihlásený: 25.04.24
Príspevky: 1385
Témy: 9
Bydlisko: Hrinova
Príspevok NapísalOffline : 21.02.2009 13:01

Ako dosť pekná predstava :D Je dobré mať nejakú tú víziu do budúcna, ale netreba to preháňať. Myslíš, že vytvoriť vývojové prostredie (to je ten "program na programovanie programovacích jazykov" :) ) je jednoduchá záležitosť? No, ja myslím, že na tom sa podieľajú týmy ľudí, ktorým to dá dosť zabrať. Musíš DOKONALE poznať jazyk assembler, aby si to dokázal a musíš poznať štruktúru PE súboru (to je klasický exáč). Nemyslím, že by sa to dalo v Jave, ale to je iba môj názor, možno sa to dá.

No ale dobre, to som ti len chcel vysvetliť, že nie je všetko také ľahké ako sa zdá. Skús sa mrknúť na túto stránku, nájdi si tam Javu a sú tam aj články o appletoch a podobné veci. Možno sú aj lepšie stránky, ale táto mi príde celkom dobrá na učenie. No rozhodne by si si mal zaobstarať aj nejakú odbornú literatúru na toto téma, pretože z kníh sa učí (teda aspoň pre mňa) najlepšie.

Prajem veľa šťastia v tvojej programátorskej budúcnosti ;)


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 20.11.07
Prihlásený: 04.07.12
Príspevky: 405
Témy: 89
Príspevok NapísalOffline : 21.02.2009 13:08

je java kompatibilna s directx9sdk na programovanie grafiky?
ako zozeniem nejake vyvojove prostredie pre javu?


Offline

Užívateľ
Užívateľ
dobre java navody a nova tema JAVA

Registrovaný: 11.02.09
Prihlásený: 28.03.23
Príspevky: 2208
Témy: 145
Bydlisko: Liptovský M...
Príspevok Napísal autor témyOffline : 21.02.2009 15:58


euthanan


zda sa ze java vyuziva directx na grafiku nasiel som to na fore:
http://forum.zive.sk/viewtopic.php?f=919&t=1067071

tu si mozes stiahnut Java 2 SDK - standard development kit, aby si v nej mohol programovat:
https://cds.sun.com/is-bin/INTERSHOP.en ... _Developer

potom si mozes stiahnut JCreator - asi najoblubenejsi editor na Javu:
http://www.jcreator.com/download.htm inak by si musel pisat v textovom editore a volat kompilator z prikazoveho riadku: javac nazov_suboru.java a spustat pomocou: java nazov_suboru.class (dufam ze som to napisal spravne). JCreator je vo verzii Lite, urcite su aj nejake freeware programy.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 20.11.07
Prihlásený: 04.07.12
Príspevky: 405
Témy: 89
Príspevok NapísalOffline : 21.02.2009 19:22

som si spravil hello java aplikaciu a ulozil som ju ako sa mi ulozila ako class to znamena teraz ju ako spustim ked dam spustit v jcreatore sa mi spusti ako ju spustim z windowsu alebo ako?
treba to kompilovat do nejakej podoby? poradte


Offline

Skúsený užívateľ
Skúsený užívateľ
dobre java navody a nova tema JAVA

Registrovaný: 30.05.06
Prihlásený: 08.10.14
Príspevky: 1756
Témy: 35
Bydlisko: BA - WESTSIDE
Príspevok NapísalOffline : 21.02.2009 20:35

Najlepšie zdroje pochopiteľne nájdeš na oficiálnej stránke, teda http://java.sun.com kde sú tutoriály, kompletne zdokumentované api a všetko ostatné, čo si vieš predstaviť. Samozrejme, budeš k tomu potrebovať angličtinu, ale keď chceš "programovat programy v ktorych sa programuju programovacie jazyky", isto to pre teba nebude problém. ;)

Čo sa týka tvojej otázky, to musíš poznať význam statických metód (a statických premenných). Tie sa viažu k triede samotnej (aj trieda je objekt) a nie k jej inštanciám. Nestatické metódy a premenné má každá inštancia vlastné. Keď sa teda pokúšaš volať zo statickej metódy nestatickú, kompilátor nemôže vedieť, ku ktorej inštancii sa viaže to volanie, takže vyhlási chybu.







_________________
A. S. Tanenbaum píše:
The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice.
Offline

Užívateľ
Užívateľ
dobre java navody a nova tema JAVA

Registrovaný: 30.05.07
Prihlásený: 29.03.14
Príspevky: 641
Témy: 46
Príspevok NapísalOffline : 21.02.2009 22:02

imho najoblubenejsie prostredia pre javu su NetBeans a Eclipse - teda z tych co su zadarmo

java a directX - java je platformovo neviazana, uz z toho si kazdy odvodi ze grafika v jave (ako java.awt a java.swing) s tym nema nic spolocne, o vyvoji grafickych DX aplikacii v jave neviem, zistoval som si info iba o openGL

niekto sa pytal na spustanie - treba mat na kompe nainstalovany interpret (to asi mate ked robite programy v jave) a potom je viac moznosti, vacsinou sa hotovy projekt vyexportuje ako jar, ak chcete .exe tak na to je par nastrojov, ja som skusal JSmooth - zoberie tusim tie jarka a zabali ich spolu do exe, ten ked uzivatel spusti, tak ono to najde ci je na pc jre, ak je tak spusti program, ak nie tak uzivatelovi napise odkial si moze interpreta stiahnut.
No a prave v tomto je hlavny problem preco sa zatial java neoplati na vyvoj desktopovych aplikacii - bezny user nechce instalovat jre, pripadne to ani nevie, a potom kym sa jvm zapne tak to vyrazne predlzuje start java aplikacie

zaujimavo ste zacali o tom ako naprogramovat programovaci jazyk - to je podla mna nevhodny vyraz, programovaci jazyk sa neprogramuje, ale proste vznikne - programuje sa ked tak kompiler alebo interpret pre dany jazyk. Tieto nastroje by mali dokazat kontrolovat syntax a zostrojit binarny kod, pripadne hned interpretovat program. Takze treba vyrobit program, ktory bude vas text kontrolovat a potom ho prelozi do assembleru a potom do binarneho kodu (pripadne robi dalsie veci).
"Myslíš, že vytvoriť vývojové prostredie (to je ten "program na programovanie programovacích jazykov")" - IDE (vyvojove prostredie) nie je program na programovanie programovacich jazykov, lebo ako som uz pisal, prog. jazyk sa neda naprogramovat. Vseobecne by som za IDE povazoval nastroj na programovanie aplikacii v nejakom jazyku. Snad ked sa nejake IDE pouzije na tvorbu kompilera pre novy jazyk tak sa to da takto oznacit.

Tak vam teda drzim palce nech vas to neomrzi ta java, je to moj oblubeny jazyk, ked potrebujem nejaku malu vecicku tak v jave to je za chvilu hotove a clovek nemusi tyzden hladat riesenia na nete ako v c++. Co sa tyka tych desktopov tak tam bude musiet sun zapracovat ak ju chce presadit, na druhej strane - mozno im staci kam to dotiahli v enterprise sfere a budu sa aj dalej orientovat hlavne na nu.


Offline

Užívateľ
Užívateľ
dobre java navody a nova tema JAVA

Registrovaný: 11.02.09
Prihlásený: 28.03.23
Príspevky: 2208
Témy: 145
Bydlisko: Liptovský M...
Príspevok Napísal autor témyOffline : 21.02.2009 22:12

Takze tlacitko Enter nam toho dost vysvetlil. Akurat k tym spustitelnym suborom: mne JCreator nevytvoril ziadne .jre ani .exe ani som nikde v nom nenasiel taku moznost. Akurat .jcp co je my otvori JCreator a ten projekt a .jcu co windows nevie cim to ma otvorit. Tak teraz neviem co s tym, mozno keby som pouzil iny editor ale musi to ist nejak aj pri JCreatore.

p360t
aha takze som skusil vytvorit objekt z hlavnej triedy, ktora obsahuje metodu main a tu metodu, ktoru som chcel volat. teraz ked napisem v metode main objekt.ina_metoda() tak to funguje. Nieje to ale trochu zvlastne vytvarat objekty ktore obsahuju metodu main() ? Robi sa to aj v skutocnosti?


Takze ako vlastne sa daju vytvorit .jre aplikacie (ak to nevytvori editor napr. JCreator? )

Inak zistil som ze pre applet na web stranku netreba .jre staci .class a v html kode importovat applet asi takto:

Kód:
<APPLET      CODE = Obrazek.class       HEIGHT = 100       WIDTH = 100   >
   <PARAM      NAME = obrazek      VALUE = meno_suboru.class   >
   Váš browser nepodporuje Java aplikacie.
</APPLET>


Offline

Užívateľ
Užívateľ
dobre java navody a nova tema JAVA

Registrovaný: 30.05.07
Prihlásený: 29.03.14
Príspevky: 641
Témy: 46
Príspevok NapísalOffline : 22.02.2009 0:06

Nie jre ale jar, jre je java runtime enviroment teda vlastne ten interpret ktory je potrebny aby sa java aplikacia spustila. Ja som sa nikdy nezaoberal distribuciou java aplikacii tak v tomto sa skoro vobec nevyznam. Akurat co viem ze java aplikacie su casto vo forme jar co je nieco ako kniznica alebo skor balik alebo ako to mam nazvat. Napisem o tom viac, myslim ze sa o tom budeme aj prave ucit v skole.

K druhej casti, robi sa to tak ze iba spustiaca trieda ma main() a vacsinou z nej sa vytvaraju objekty. Hento co si napisal je ok, zalezi na situacii, neviem ci to je tak bezne ale da sa to, preto musi byt main static aby tam bola iba raz pre vsetky instancie.


Offline

Skúsený užívateľ
Skúsený užívateľ
dobre java navody a nova tema JAVA

Registrovaný: 30.05.06
Prihlásený: 08.10.14
Príspevky: 1756
Témy: 35
Bydlisko: BA - WESTSIDE
Príspevok NapísalOffline : 22.02.2009 10:12

V praxi sa skôr spraví jedna trieda so statickou main metódou a potom v tom istom balíčku sa spravia ďalšie triedy a z main-u vyrábaš objekty týchto tried a voláš ich metódy. Aby si o tom mal trochu predstavu, tu sú dve riešenia toho istého zadania - mojej skúšky z programovania 3 na matfyze:

Zadaním bolo vytvoriť nejakú reprezentáciu aritmetického výrazu, ktorý podporuje premenné, konštanty, základné binárne operácie, vie sa vypísať, vie sa ohodnotiť (premenným sa priradia nejaké hodnoty) a vie sa vyhodnotiť (vyráta sa hodnota výrazu podľa ohodnotenia premenných); vypisovanie a vyhodnocovanie má byť návrhový vzor Visitor.

http://www.st.fmph.uniba.sk/~kovac77/skuska.zip - tu je trieda Skuska s jedinou metódou: public static void main(), jej inštancie sa nevytvárajú, ale pracuje s ostatnými objektami z tried v rámci svojho package

https://www.st.fmph.uniba.sk/~danko13/f ... class.java - tu je to všetko v jednom súbore, ale trieda main_class s metódou main sa tiež neinštancuje, ale pracuje s ostatnými triedami







_________________
A. S. Tanenbaum píše:
The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 20.11.07
Prihlásený: 04.07.12
Príspevky: 405
Témy: 89
Príspevok NapísalOffline : 22.02.2009 10:18

robim v jcreator
spravim si subor a ulozi mi ho ako subor.java
a teraz ho chcem zkopilovat ako na bin=class.
ako to docielim aby som mal calss a mohol hocikedy hocikde zavolat
java subor.class
a neni lepsie c++ alebo c#


Offline

Užívateľ
Užívateľ
dobre java navody a nova tema JAVA

Registrovaný: 30.05.07
Prihlásený: 29.03.14
Príspevky: 641
Témy: 46
Príspevok NapísalOffline : 22.02.2009 10:55

presne ako pise p360t - tak som to myslel

euthanan - neda sa povedat ci je lepsia java alebo c++ (c sharp som nikdy nevidel, neviem o tom prakticky nic, iba ze to je pod zastitou MS, je to OOP jazyk odvodeny z cpp). C plus plus oproti jave je niekedy skor C minus minus a naopak, niekedy sa java neoplati pouzit. Java - lahky vyvoj, pomalsi program; c++ tazky vyvoj, ale ked to vies tak super vykon za behu. Proste java je vyssi jazyk nez c++ a z toho vychadzaju vsetky rozdiely (a este to ze c++ je cisty kompiler)

.java skompilujes na .class bud automaticky v nejakom IDE (jcreator nepoznam tak neviem co dokaze, ale ak to je vyvojove prostredie pre javu tak to musi vediet), alebo pouzi prikaz/program javac {menosuboru}
javac je java compiler, nachadza sa v kazdom JDK/SDK v priecinku bin - treba zadat ten prikaz spravne - teda ak je treba tak classpath pripadne dalsie veci, to najdes na nete/v helpe


http://www.exampledepot.com/ - velmi dobra stranka s rieseniami ciastkovych problemov, nenaucite sa tam komplexne programovanie ze ako ma vyzerat struktura a cely program, ale najdete tam ukazky pouzitia roznych java tried - casto su tam veci ktore sa daju pouzit priamo v praxi.


Offline

Užívateľ
Užívateľ
dobre java navody a nova tema JAVA

Registrovaný: 11.02.09
Prihlásený: 28.03.23
Príspevky: 2208
Témy: 145
Bydlisko: Liptovský M...
Príspevok Napísal autor témyOffline : 22.02.2009 15:50

skusal som pochopit priklady p360t od a narazil som na nejake pre mna este nezname veci:

- interface (rozhranie) - nieco som nasiel aj na internete http://java.sun.com/docs/books/tutorial ... rface.html ale asi som to celkom nepochopil. Asi definuje nejake nove funkcie ktore mozme pripojit k triede (prip. viacerim) ale neviem ake to ma prakticke vyuzitie. Keby sa niekto na to citil mohol by sem napisat nejaky co najjednoduchsi prikladovy kod na par riadkov, ako sa da toto rozhranie pouzit a ako funguje.

- abstraktna trieda, metoda, premenna - na co sluzi a cim sa lisi?


Offline

Užívateľ
Užívateľ
dobre java navody a nova tema JAVA

Registrovaný: 30.05.07
Prihlásený: 29.03.14
Príspevky: 641
Témy: 46
Príspevok NapísalOffline : 22.02.2009 18:12

Obe veci suvisia s dedenim. Zoberme si priklad:
Kód:
abstract class Vehicle {
    String spz;

    String getSpz() {...}
    void setSpz(String spz) {...}
}

class Car extends Vehicle {
    ...
}

class Motorcycle extends Vehicle {
    ...
}

Mame abstraktnu triedu Vehicle (dopravny prostriedok). To ze je abstraktna znamena, ze sa z nej nedaju vytvorit objekty - neda sa spravit Vehicle v = new Vehicle();
Dalej tam mame Auto a Motorku. Slovo extends znamena, ze auto je potomok triedy Vehicle, to znamena ze dedi jej vlastnosti. Preto sa da vytvorit Car auto = new Car(); a potom zavolat auto.getSpz(); pretoze Car zdedilo vsetky tieto metody a premenne a pridalo ich k svojim. Rovnako to zdedi aj motorka. Takze v tomto pripade sme pouzili dedenie, aby v triede auto aj motorka nemuseli byt rovnake metody, staci ked su raz vo vozidle (Vehicle) a hentam sa prenesu zdedenim. Slovo abstract je tam preto aby bolo jasne ze vozidlo ako take sa neda vytvorit - kompilator ohlasi chybu ak sa o to pokusite.

Interface: interface je akoby obal, supka. Interface moze obsahovat iba definicie/hlavicky metod: String nejakeSlovo(); ale String nejakeSlovo() { return "nejake slovo"; } tam byt nemoze. Vyuzitie je napriklad take, ze ma sa spravit zlozity program tak ako priprava sa spravia taketo rozhrania (interfaces) a tie sa potom nasledne implementuju - to znamena ze niekto navrhne interface a niekto iny podla neho spravi implementaciu. Nenapada ma nejaky roumny priklad na to, ked si napriklad pozrete v java API, tak List je interface (konkretne java.util.List) a tento tam ma kopu metod ze ake maju parametre a co vracaju. Ale List list = new List() sa neda pouzit, lebo List nie je trieda. Existuje ale ArrayList alebo LinkedList - oboje implementuju List - to znamena ze maju vsetky tie metody nejako vymyslene. Da sa teda vytvorit List arrayList = new ArrayList(); alebo ArrayList arrList = new ArrayList(); alebo List l = new LinkedList(); ... Toto sa da docielit slovom implements - class ArrayList implements List {...} a class LinkedList implements List {...}

Ked sa pozrete v tom api tak tam je konkretne:
public class ArrayList<E>
extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, Serializable
To znamena ze trieda ArrayList je potomkom AbstractListu a implementuje List, RandomAccess, ...
To ze to implementuje znamena proste to, ze ked si pozres specifikaciu tych rozhrani List, RandomAccess, Cloneable a Serializable tak vsetky vlastnosti ArrayList musi splnat, resp musi obsahovat vsetky metody ktore su v tychto rozhraniach.

edit: toto je celkom dobre http://java.sun.com/docs/books/tutorial ... tract.html teda ak viete po anglicky (taketo tutorialy su asi najlahsie anglicke texty ake mozu byt, tak to by bolo treba zvladat ak sa chcete niekam dostat s programovanim)


Offline

Užívateľ
Užívateľ
dobre java navody a nova tema JAVA

Registrovaný: 11.02.09
Prihlásený: 28.03.23
Príspevky: 2208
Témy: 145
Bydlisko: Liptovský M...
Príspevok Napísal autor témyOffline : 22.02.2009 20:00

Pozrel som si Enterov odkaz a docital som sa nieco o interface. Je tam uvedeni priklad:
Predstavte si, ze mame nejake futuristicke roboticke vozidlo ktore transportuje pasazierov v meste bez ludskeho vodica, ale je riadene pocitacom. Jedna firma vyvynie softver tochto vozidla a metody ako startuj, zastav, zrychli, spomal, otoc. Dalsia firma vyvynie navigacny GPS system pre toto vozidlo, ale nepozna obsah metod (programovy kod) tohto vozidla. Preto im vyrobcovia daju zoznam (iba nazvy) tychto metod - to je ten interface, pomocou ktorych moze GPS riadit chod vozidla, a oni ich implemetuju do svojho GPS zariadenia.

Ak som to spravne pochopil, tak dajme tomu ze mame objekt istej triedy so svojimi metodami, a zaroven mame dalsi objekt inej metody. Ak chceme, aby tento objekt mohol riadit prvy objekt, vytvorime rozhranie tohto prveho objektu (len zoznam metod bez kodu) a implementujeme ho do nasho druheho objektu. Ak teda volame nejaku implementovanu metodu interface-u tohto druheho objektu, prvy objekt vlastne vykona v sebe tuto volanu metodu. Cize objekt GPS napr. vyvola imlementovanu metodu Zastav(parametre...), objekt Vozidlo pouzije tuto metodu Zastav(...) a zastavi. Dufam ze som to pochopil spravne, ak nie prosim opravte ma...


Tak a teraz idem kuknut ten popis API ako to vsetko je vlastne zorganizovane


Offline

Užívateľ
Užívateľ
dobre java navody a nova tema JAVA

Registrovaný: 30.05.07
Prihlásený: 29.03.14
Príspevky: 641
Témy: 46
Príspevok NapísalOffline : 23.02.2009 17:10

No neviem ci si to uz uplne pochopil, je to nejake zlozite co si napisal.
Skusim dat nejake priklady:
- jeden dolezity vyznam ma interface na zovseobecnenie niecoho (podobne ako aj dedenie)
takze bude napriklad interface Animal a bude mat prototyp metody napriklad vydajZvuk(). Potom bude trieda Pes implements Animal a metoda bude vyzerat vydajZvuk() { hafhaf }.
Dalej moze byt trieda Macka impl. Animal s metodou vydajZvuk() { mnau mnau }.
No a potom mozme vlastne spravit niekde metodu pridajZviera(Animal nejakeZviera) {...} a tuto metodu mozme pouzit aj pre macku aj pre psa, lebo oboje implementuju Animal. Takze mozme zavolat pridajZviera(new Macka() ).

(Ak robi hentaky neuplny zapis problem tak povedzte, nechce sa mi vsetko vypisovat, pre predstavu by to malo stacit)

K tomu tvojmu prikladu - myslim, ze si myslis, ze interface dokaze viac nez naozaj dokaze. Skusim to nejako vseobecne napisat: interface je abstraktna trieda (alebo skor typ), ktora obsahuje prototypy metod (a pripadne konstantne premenne) ktore musi trieda implementujuca toto rozhranie implementovat. Interface neobsahuje definicie metod (ich telo). Ak nejaka trieda implementuje rozhranie, musi vo svojom tele implementovat vsetky metody z rozhrania.
Nefunguje tu nic take, ze cez rozhranie sa budu volat metody inej triedy, rohranie ma v podstate iba informativny charakter o tom, ake metody musi mat trieda ktora ho implementuje.


Offline

Skúsený užívateľ
Skúsený užívateľ
dobre java navody a nova tema JAVA

Registrovaný: 30.05.06
Prihlásený: 08.10.14
Príspevky: 1756
Témy: 35
Bydlisko: BA - WESTSIDE
Príspevok NapísalOffline : 23.02.2009 20:01

Aby som k tomu aj ja trošku prispel:
V skutočnom svete sa denne stretávame s rozhraniami. Ráno vstaneš, a ideš zo svojej izby do kúpeľne, no musíš si otvoriť dvere - do svojej izby aj dvere do kúpeľne. Chceš si vyvetrať, tak otvoríš okno. Chceš sa najesť, tak prídeš k chladničke a otvoríš ju, otvoríš kuchynskú skrinku a vyberieš si tanier...

Predstav si, že máš triedy Dvere, Okno, Chladnička, Skrinka ktoré všekty implementú rozhranie Otvárateľné. Pritom napr. Chladnička má rodičovskú triedu Kuchynský spotrebič, Skrinka má rodičovskú triedu (trebárs abstraktnú) Nábytok. Rozhranie Otvárateľné má len jednu metódu: void otvor(). Vďaka tomu, že všetky implementujú rovnaké rozhranie, vieš, že keď chceš niečo otvoriť, stačí ti zavolať metódu otvor. Nezaujíma ťa, že napr. okno má 2 kľučky a musíš otočiť obe, je ti jedno, že na chladničke máte opačné otváranie ako na kúpeľnových dverách... Tebe stačí vedieť, že máš volať otvor().

Rozhrania ti umožňujú jednotný prístup k úplne rôznym objektom. Zaujímavé rozhranie je napr. Comparable, ktoré ti umožní porovnávať objekty a vďaka tomu môžeš napr. implementovať nejaký sort na úplne iných štruktúrach ako sú čísla.







_________________
A. S. Tanenbaum píše:
The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice.
Offline

Užívateľ
Užívateľ
dobre java navody a nova tema JAVA

Registrovaný: 11.02.09
Prihlásený: 28.03.23
Príspevky: 2208
Témy: 145
Bydlisko: Liptovský M...
Príspevok Napísal autor témyOffline : 24.02.2009 10:36

Som s toho jelen. :joyous:
Cital som o tom co sa dalo a vsade sa pise, ze rozhranie ma len nazvy metod (rovnake nazvy metod viacerych roznych tried), pricom kazda tato trieda musi mat ZNOVU tieto nazvy a musi mat aj OBSAH TELA napisany (kazda metoda tychto tried ma iny kod v tele, lebo ako povedal p360i chladnica sa otvara inak ako okno aj ako dvere). S toho my vychadza, ze rozhranie vlastne nema ziadnu funkcnost a kludne ho mozme s programu vymazat a bude to fungovat aj tak (kedze vsetky triedy implementujuce rozhranie aj tak maju zadefinovane tieto metody) a ma len cisto informacny charakter ake metody ma trieda obsahovat. To by som si vlastne mohol pisat aj do poznamok //, alebo na zdrap papiera je tak?

tlacitko Enter u teba este nechapem tomu pridajZviera(Animal nejakeZviera), co to vlastne spravi ked je tam parameter typu interface?


Offline

Užívateľ
Užívateľ
dobre java navody a nova tema JAVA

Registrovaný: 30.05.07
Prihlásený: 29.03.14
Príspevky: 641
Témy: 46
Príspevok NapísalOffline : 24.02.2009 12:35

to je prave jedno z vyuziti rozhrania, je tam parameter Animal, pricom je jasne, ze nic nie je len Animal kedze to je rozhranie - teda neda sa vytvorit objekt Animal. Ale ine triedy ktore implementuju Animal su tiez Animal. Napr ten Pes je zaroven Pes aj Animal, takze sa moze pouzit v tej metode.
Animal nejakeZviera = new Pes();
pridajZviera(nejakeZviera);

rovnako moze byt aj:
Pes nejakyPes = new Pes();
pridajZviera(nejakyPes);

No a niekedy sa prave hodi tato vec, ze chces spravit metodu ktora by robila to iste pre psa aj pre macku, tak namiesto toho aby si ju robil dvakrat: metoda (Pes pes) {...} a metoda (Macka macka) {...} tak ju spravis naraz pre oboch s tym Animal a pouzijes interface aby si zadefinoval ze pes aj macka su zaroven aj animal. Ako som uz pisal, namiesto toho sa da pouzit dedenie, lebo plati, ze kazdy potomok je zaroven aj svojim predchodcom (opacne to neplati). Ale dedenie sa odporuca pouzivat co najmenej - da sa nahradit prave tym interfacom alebo aj inak ale to su uz pokrocile veci (a nie vzdy sa da uplne nahradit).


Offline

Užívateľ
Užívateľ
dobre java navody a nova tema JAVA

Registrovaný: 11.02.09
Prihlásený: 28.03.23
Príspevky: 2208
Témy: 145
Bydlisko: Liptovský M...
Príspevok Napísal autor témyOffline : 24.02.2009 13:48

konecne tomu zacinam rozumiet :D

musim podakovat tlacitku Enter a p360i za trpezlivost a ja idem skusat co vsetko sa s tym interfaceom da urobit.


Offline

Užívateľ
Užívateľ
dobre java navody a nova tema JAVA

Registrovaný: 11.02.09
Prihlásený: 28.03.23
Príspevky: 2208
Témy: 145
Bydlisko: Liptovský M...
Príspevok Napísal autor témyOffline : 26.02.2009 11:49

Vedeli by ste povedat ake su najvacsie rozdiely medzi verziami JAVA 1 a JAVA 2 ? Mam knizku "Myslime objektove v jave" a chcel by som vediet co by v nej uz nemuselo fungovat.

Edit: A neviete niekto o nejakej dobrej knihe o jave, nieco co je lahko pochopitelne ale aby ma aj nieco naucial?


Offline

Užívateľ
Užívateľ
dobre java navody a nova tema JAVA

Registrovaný: 30.05.07
Prihlásený: 29.03.14
Príspevky: 641
Témy: 46
Príspevok NapísalOffline : 26.02.2009 16:51

to cislovanie ktore je pri jave nechapem, takze neviem co je 1 a co 2. Pred tym sa pouzivalo 1.x - ked som zacinal tak konkretne 1.4, potom 1.5 a teraz 1.6 (neviem ci je uz novsia) no a ta sa oznacuje aj ako java 6. Takze fakt neviem, su v tom zmatky. Kazdopadne rozdiely medzi hentymi verziami su male, sem tam nejaka nova trieda, resp cely balicek, niektore metody ktore boli problematicke su nahradene... A samozrejme vnutorne zmeny v JVM.

Ja mam jednu knihu ale nic moc, ani neviem nazov a nemam ju pri sebe. Ak chces nieco na zaciatok tak hocijaka kniha + zdroje na nete, neskor sa oplati java kucharka (neviem presny nazov - taka hruba kniha co stala pred rokom cez 1000sk). Inak mna vacsina knih o programovani (java, c++, flash) dost sklamala tak ich uz nekupujem, vacsinou je tam problem rieseny len povrchne a po par mesiacoch aktivneho pouzivania jazyka budes vediet 10krat viac nez je v tych knihach.
Existuju urcite aj dobre knihy ale to necham na inych nech ti poradia.


Offline

Užívateľ
Užívateľ
dobre java navody a nova tema JAVA

Registrovaný: 11.02.09
Prihlásený: 28.03.23
Príspevky: 2208
Témy: 145
Bydlisko: Liptovský M...
Príspevok Napísal autor témyOffline : 27.02.2009 13:14

Tak a zasa mam jeden smiesny problem. :(
Stiahol som si kopec megabajtov TEXTU a knih, pdf o jave, kadejake prirucky navody a tak. Vsade je to len o tom istom - premennych, triedach a podobnych somarinach co uz viem naspamat ale nikde nikoho nenapadlo napisat aspon vetu o tom ako sa da vytvorit nejaky USER INTERFACE :indicare:. Viem ze na pracu z grafikou a ovladacimi prvkami sluzi balik java.awt a este su nejake rozsirenejsie komponenty Swing.

Chcel by som vas poprosit ci by ste mi nenapisali nejaky jednoduchy kod alebo sposob ako sa da vytvorit jednoduche okno dajme tomu z jednym textovym polom a jednym tlacitkom, ktore ked stlacim tak sa text toho pola vypise napr. do nejakej label. Viac by som potom uz hadam zvladol pomocou API referencnej prirucky. Slo by to? :hacker: :)


Offline

Užívateľ
Užívateľ
dobre java navody a nova tema JAVA

Registrovaný: 30.05.07
Prihlásený: 29.03.14
Príspevky: 641
Témy: 46
Príspevok NapísalOffline : 27.02.2009 13:59

tak kod sa mi zrovna pisat nechce, grafika je na dlho. Iba chcem poznamenat, ze ak chces robit graficke veci v jave tak sa vykasli na awt a swing a nauc sa SWT (standard widget toolkit) - napises v tom program a ked ho spustis na win xp bude vyzerat ako na winxp ked na linuxe bude zas vyzerat ako ma... teda program pouzije standardne graficke prvky z daneho prostredia, awt a swing su extremne skarede :)

na webe najdes mnozstvo hentakych jednoduchych kodov - aj awt aj swing aj swt, ja som sa to ucil iba z webu


Offline

Užívateľ
Užívateľ
dobre java navody a nova tema JAVA

Registrovaný: 11.02.09
Prihlásený: 28.03.23
Príspevky: 2208
Témy: 145
Bydlisko: Liptovský M...
Príspevok Napísal autor témyOffline : 27.02.2009 14:31

ano nieco som nasiel na starnke od eclipse. Niecomu tam nechapem.

import org.eclipse.swt.*; - co znamena to eclipse? to je pokial viem iba vyvojove prostredie tak preco je to v nejakom baliku? To znamena ze musim mat eclipse aby som to mohol pouzivat? A co ked mam ine IDE? Alebo uzivatel nema eclipse ked nieje vyvojar tak odkial on dostane tie eclipse funkcie. Ako to mam pochopit?







_________________
"Only a warrior chooses pacifism, others are condemned to it."
- unknown author
Offline

Užívateľ
Užívateľ
dobre java navody a nova tema JAVA

Registrovaný: 30.05.07
Prihlásený: 29.03.14
Príspevky: 641
Témy: 46
Príspevok NapísalOffline : 27.02.2009 16:34

eclipse je organizacia, nie len ide, ty na vyvoj swt potrebujes nejake kniznice, neviem uz ci swt staci alebo este nieco, uzivatel nic specialne nepotrebuje lebo to ma kazdy OS v sebe

ak chces napis mi do SS tovj mail a poslem ti knihu SWT and JFace in action (je to o tvoreni GUI v eclipse pomocou swt a jface - ale po anglicky) inak nemalo by zalezat ci robis v eclipse alebo v inom


Offline

Užívateľ
Užívateľ
dobre java navody a nova tema JAVA

Registrovaný: 11.02.09
Prihlásený: 28.03.23
Príspevky: 2208
Témy: 145
Bydlisko: Liptovský M...
Príspevok Napísal autor témyOffline : 27.02.2009 19:07

diky poslal som ti ten mail.
Aj som si stiahol eclipse ide aj sa mi podla navodu na 3 pokus podarilo nejake to okno spravit. Musim povedat ze eclipse oproti jcreator je ako word oproti notepadu. :D

A ked spravim nejaky programik s pouzitim kniznic a vytvorim .jar tak v tom jar uz by mali byt zahrnute aj tie potrebne kniznice vsak?


Offline

Užívateľ
Užívateľ
dobre java navody a nova tema JAVA

Registrovaný: 03.03.09
Prihlásený: 29.03.10
Príspevky: 65
Témy: 10
Bydlisko: Bratislava
Príspevok NapísalOffline : 04.03.2009 0:23

Zdravim, vopred sa ospravedlnujem ak pisem odveci alebo offtopic ale mam taky maly velky problem. Asi pred 4 mesiacmi som sa rozhodoval ktory jazyk by som sa mal zacat ucit pretoze ma to velmi lakalo, zvolil som si JAVU, ako som sa tak ucil a prechadzal lekciu za lekciou uvedomil som si ze to asi nieje najlepsia volba, dal som si pauzu a rozmyslal som, ze ci nieje lepsie sa zacat ucit najprv C++, predsa len pochytim lepsie zaklady a tak.

Od vianoc som teda JAVU nacas odlozil a zacal sa ucit C++ z knihy Mistrovstvi v C++. teraz som na mrtvom bode. Neviem co je lepsie, neviem ci je lepsie sa najprv naucit C++ a potom prejst na Javu lebo ta ma laka najviac, alebo sa rovno ucit javu. Neviem ci budem ukrateny o nieco dolezite co sa potrebujem naucit z C++ . Uz od 16 rokov tuzim tvorit hry a podobne sa zaujimam oto ako su tvorene, aka je v nich grafika a pod.

taktiez sa zaujimam o mobilne technologie ale aj viem ze JAVA je buducnost, kedze je jednoduhsia ako C/C++ neviem presne na ake aplikacie je urcena, je to asi tym ze som toho vela na nete neprecital alebo som nemal nato cas. JAVU som sa ucil z knihy JAVA 6 od C.Press, neviem ci je to odporucana kniha no zdala sa mi vhodnou.

Momentalne studujem na nadstavbe/pomaturitne a ucim sa Xhtml CSS potoshop illustrator a Flash, no ak mam pravdu povedat bavi ma to ale ja som vzdy bol narocny a vzdy som chcel viac :-D.

Ak by som vas mohol poprosit o radu scim je lepsie zacat. Co je lepsie. Aku literaturu by ste odporucali. ci ma vobec zmysel ucit sa C++ pred Javou alebo subezne s nou. Dalej by som mal este otazku ohladom OS. Ako st si iste vsimli v mojom logu je Apple cize WIN ma velmi nelaka aj ked viem ze je najrozsirenejsi, ale chcel by som vediet ci je dost hodnotne programovat v JAVA aj na Macosx, ci je oproti WIN nejaky podstatny rozdiel.

Velmi pekne dakujem za odpovede :)


Offline

Užívateľ
Užívateľ
dobre java navody a nova tema JAVA

Registrovaný: 30.05.07
Prihlásený: 29.03.14
Príspevky: 641
Témy: 46
Príspevok NapísalOffline : 07.03.2009 12:45

Java sa na tvorbu hier nepouziva lebo v konecnej faze je to interpret. Vdaka tomu je aj jedno aky mas OS. Ci je java buducnost je skor v rukach sunu ako v tom ze je jednoducha. Momentalne sa pouziva v oblasti internetu a na servroch, vynimocne v desktopovych aplikaciach, ja osobne ju pouzivam na robenie malych programkov ktore urychlia pracu hlavne s textom.

Dalej tym ze budes vediet aj javu aj c++ bude dobre pre teba, pre javu c++ nepotrebujes a pre c++ nepotrebujes javu, v podstate su to dva odlisne jazyky, kazdy je dobry na nieco ine. Narocnu hru by si radsej robil v c++ aby to malo poriadny vykon a jednoduchu utilitku v jave aby si s tym nezabil 5krat viac casu. Ak to zvladnes uc sa ich kludne naraz, lepsie je ale podla mna C -> C++ -> java, ja som mal bohuzial javu ako prvu a potom som sa mohol zblaznit pri uceni c a c++.

A ovladat nejaky jazyk nie je to hlavne ak nechces byt na najspodnejsej priecke v softverovej firme.


Odpovedať na tému [ Príspevkov: 36 ] Choď na stránku: 1, 2 ďalšia


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. nova tema

v Správy pre vedenie fóra

2

983

16.01.2010 15:56

janc-o Zobrazenie posledných príspevkov

Táto téma je zamknutá, nemôžete posielať nové príspevky alebo odpovedať na staršie. phpbb ikona nova tema

v Redakčné systémy

2

350

12.05.2014 23:36

shaggy Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Rozdiel medzi Java Standard a Java EE

v Assembler, C, C++, Pascal, Java

1

844

02.04.2014 12:41

XOLOO Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Návody

v Správy pre vedenie fóra

15

2097

20.10.2008 19:21

walther Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Navody

v Ostatné

5

1098

07.05.2007 23:23

kmsa Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Navody

v Delphi, Visual Basic

0

1744

13.10.2006 14:31

javo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Foto navody

v Mobilné zariadenia

7

906

13.06.2009 13:46

marzo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Joomla! návody...

v Redakčné systémy

5

1404

28.03.2010 17:22

Ezekiell Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Hladam navody

v Webdesign

1

696

12.11.2008 18:06

ma®tin Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. C# - návody

v Technológia .NET

15

14422

20.12.2008 21:11

marian_sk Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Ebook a navody

v Redakčné systémy

1

1029

31.08.2008 11:29

JanoF Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Návody na programovanie

v Ostatné

2

593

18.04.2008 16:12

M@Xo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. LED UV METER NAvody

v Elektronika

10

801

08.02.2014 15:35

opeth1 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Mody, tweaky, návody, trainery

v Počítačové hry

24

12364

29.01.2013 17:23

iawim Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. JAVA - java.lang.NullPointerException

v Assembler, C, C++, Pascal, Java

1

1084

04.01.2010 17:05

emigrate Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. NHL 2007- Problemy, riesenia, navody...

v Počítačové hry

16

4452

25.03.2008 13:26

OmeGa Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra