Java programiranje izdvojena tema

poruka: 402
|
čitano: 193.291
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
17 godina
offline
Java programiranje

Kod koji si napisao bi trebalo to i da radi. Šta je tačno problem? Ako hoćeš da imaš različite poruke u zavnsnosti od tipa greške, onda umesto catch(Exception e) {...} moraš ubaciti nekoliko uzastopnih catch blokova od kojih svaki hvata određeni tip greške. Otprilike ovako:


try { ... }

catch(InputMismatchException e) {...} //za unet string

catch(IllegalArgumentException  e) {...} //za deljenje nulom

 

Moj PC  
1 0 hvala 0
11 godina
neaktivan
offline
Re: Java programiranje
E pa to me i zanimalo, hvala!!! jer bi mi se onako prekinuo program!!
13 godina
neaktivan
offline
Java programiranje

imam malecno pitanjce ..

od frenda kcer (2 srednje) se zapalila na programiranje

neki izgleda zgodan lik zapalio taj nasad cura pa "poludile" za "programiranjem"

i tako sad zeli da ide na tecajeve kojih nema, pa mala malo zvjeri

pa joj preostaje samo opcija net ,video tutoriali i citanje knjiga

od knjiga ja imam  demifiticirani c++  (dobio na poklon)

nasao na netu video tutoriale od 3dbuzz c++i lynde

onda nasao dosta za javu ali nista od poznatih tutorial firmi

 

e sad pitanje...

za totalnu pocetnicu staru 16 god /gimnazija

bez opcija da ide na tecajeve uzivo

koji je najbezbolniji (da nekazem naj laksi jer tog nema) od ova 2 da uci

 

java ili c++

izbor je dala samo ta dva

(eh da i lik je rekao da je obicni c starija verzija c++ i da je c++ lakse programirati od c,

iako su meni savjetovali cak da krenem sa paskalom pa onda tek na c pa teeeek onda na c++ ,i odustao normalno )

 

eto hvala puno

 

 

Poruka je uređivana zadnji put uto 30.12.2014 8:16 (humb).
 
0 0 hvala 0
14 godina
neaktivan
offline
Re: Java programiranje

Obično se uči C pa C++ da se prvo nauči proceduralno pa objektno programiranje. U pravilu, s C++om neće sigurno pogriješiti jer ako njega nauči prelazak na Javi ili C# je bezbolan. Usto, puno je veći izbor razvojnih okruženja za C++ nego li za Javu, te se u C++u puno jednostavnije programira kada je riječ o GUI aplikacijama.

16 godina
odjavljen
offline
Re: Java programiranje
TracerCPP kaže...

Obično se uči C pa C++ da se prvo nauči proceduralno pa objektno programiranje. U pravilu, s C++om neće sigurno pogriješiti jer ako njega nauči prelazak na Javi ili C# je bezbolan. Usto, puno je veći izbor razvojnih okruženja za C++ nego li za Javu, te se u C++u puno jednostavnije programira kada je riječ o GUI aplikacijama.

A kud baš C, to se valjda još koristi u embedded svijetu i tamo gdje su nužne najbolje moguće performanse (3d engine, fizika...).

 

Ali da se u C++ lakše rade GUI aplikacije nego u Javi, to se baš i nebi složio. wxwidgetsi su donekle ok ali napraviti java app sa swingom u Eclipseu je prejednostavno. O C# i VSu da ne govorimo...

My name is Legion... For we are many!
14 godina
neaktivan
offline
Re: Java programiranje
Sum_of_all_fears kaže...
TracerCPP kaže...

Obično se uči C pa C++ da se prvo nauči proceduralno pa objektno programiranje. U pravilu, s C++om neće sigurno pogriješiti jer ako njega nauči prelazak na Javi ili C# je bezbolan. Usto, puno je veći izbor razvojnih okruženja za C++ nego li za Javu, te se u C++u puno jednostavnije programira kada je riječ o GUI aplikacijama.

A kud baš C, to se valjda još koristi u embedded svijetu i tamo gdje su nužne najbolje moguće performanse (3d engine, fizika...).

 

Ali da se u C++ lakše rade GUI aplikacije nego u Javi, to se baš i nebi složio. wxwidgetsi su donekle ok ali napraviti java app sa swingom u Eclipseu je prejednostavno. O C# i VSu da ne govorimo...

C ne radi neke praktične primjene već razumijevanja proceduralnog pristupa. Ali, nije nužno. Može odmah i C++.

 

Meni osobno je Swing nešto najgore i najsporije što sam u životu vidio. Upravo zbog njega izbjegavam Javu naširoko. Toliko koda i namještanja samo da bi napravio GUI, a tek onda pisanje funkcionalnosti...

 

Ne želim ovdje nikakav flame java vs c++ počinjati no meni osobno C++ nudi puno više izbora, počevši od puno boljih razvojnih okruženja pa do GUI biblioteka. Također, komponenti pristup je definitivno brži nego li code, a pogotovo ako se za C++ koristi npr. C++ Builder.

16 godina
odjavljen
offline
Re: Java programiranje

Nije mi cilj započeti flamewar - samo iznosim svoje mišljenje. Meni je swing sasvim ok (napravio sam aplikaciju za ispis HUB naloga u Javi i nije bilo ništa više posla nego u .Netu) a što se tiče C++, nisam već dugo gledao razvoj GUIja tamo. Zadnje što sam radio je bilo u qt-u i nisam baš bio impresioniran nit mogućnostima nit jednostavnošću rada (kao višegodišnji .Net dev).

 

Ali C i proceduralno programiranje po meni treba preskočiti.

My name is Legion... For we are many!
14 godina
neaktivan
offline
Re: Java programiranje

Dosta je to i stvar navike pa kad dugo radiš u nečemu znaš to koristiti puno brže nego ostali {#}

 

Qt nije niti meni nešto posebno, a pogotovo nije za nekakvu referencu brzine i jednostavnosti. Previše podsjeća na prastari MFC u VS-u. Probaj C++ Builder ili Appmethod (besplatan razvoj native mobilnih aplikacija u C++u) pa ćeš vidjeti koju jednostavnost i brzinu nudi komponentni pristup vs. code. Minimalno vremena i coda se troši na sučelje i ostaje ti samo pisanje funkcionalnosti.

16 godina
offline
Re: Java programiranje
humb kaže...

imam malecno pitanjce ..

 

java ili c++

izbor je dala samo ta dva

(eh da i lik je rekao da je obicni c starija verzija c++ i da je c++ lakse programirati od c,

iako su meni savjetovali cak da krenem sa paskalom pa onda tek na c pa teeeek onda na c++ ,i odustao normalno )

 

eto hvala puno

 

Evo i moja razmsljanja bez zelje za flameanjem - za totalnog pocetnika prvo krenuti s Javom koja je daleko najlaksa izmedju ta tri (Java/C++/C) jezika, a kasnije, ako zaista bude zagrizla i kad svlada imperativne i objektne principe, odmah krenuti sa Scalom koja je fenomenalan hibrid funkcijskog i imperativno-objektnog pristupa.

That being said, nisam nikakav ekspert za C++ (stovise), za te potrebe tu je Tracer.

 

S pro strane:

- upravo tim redom danas redovito idu vrhunska svjetska sveucilista (Stanford, MIT, etc), sto se pedagoski opravdava prirodnim slijedom "od lakseg prema tezem"

- Java je daleko laksa od C(++)-a buduci da "skriva" mnoge "opasne" (tj. napredne), low-level mogucnosti koje C(++) nudi i koje bi mogle pocetnika demotivirati, zamoriti i povecati greske koje je tesko na prvi pogled shvatiti zasto se desavaju, a nije nista manje znacajno mocna (osobito ne za pocetnicki nivo)

- Java je jednostavna(-ija?) za inicijalno postavljanje i koristenje, a bez potrebe za piratizacijom kvalitetnog IDE-a. Uz IntelliJ Idea CE (kojeg preporucam), Eclipse ili Netbeans (koje je sve redom trivijalno instalirati - ok osim mozda umiruceg Eclipsea), valja jos samo instalirati JDK po izboru (za pocetak krenuti s referentnim, Oracle JDK) i to je to - moze se krenuti sa programiranjem, sve je dostupno odmah.

Za C++, mislim da situacija niti je toliko jednostavna sa strane IDE-a (Visual Studio Express jest besplatan, ali radi samo na Windowsima), niti sa strane compilera (koji koristiti? Intelov? GCC? Nesto trece?), a kod koji se napise valja prvo compile-irati, linkati, napraviti izvrsnu datoteku i tek onda ga pokrenuti (vjerojatno je to moguce skriptirati, koristiti makro ili IDE to automatizira, i to nije problem samo po sebi, ali mi ovdje govorimo o pocetniku kojem je bitno krenuti sto prije i sa sto manje frustracija). Takodjer ne znam podrzavaju li C++ compileri inkrementalno compileiranje? Nadam se da da, ali po onom sto citam, ljudi iznenadjujuce s tim imaju problema jos i danas - rekao bih da je to facility koji pocetniku moze bitno olaksati stvari. That being said, koliko cujem od kolega, jos uvijek je Re-sharper za Visual Studio car IDE-ova, ali koliko je to bitno za pocetnika?

 

Sa con strane:

- mnogi opet kritiziraju te suvremene pedagoske metode; i zbilja, to je double-edged sword: ljudi krenu prvo s Javom i onda im bude kompleksno prijeci na C++, jer su se navikli na lakocu Jave. To je slicno kao sto se maloj djeci u vrticu ne preporuca krenuti s engleskim, nego s bilo kojim drugim stranim jezikom. Zasto? Zato sto je engleski morfoloski osjetno jednostavniji od ostalih germanskih jezika (koji su danas jos uvijek globalno najrelevantniji, osim mozda kineskog), djeca te obrasce usvoje i onda imaju problema kasnije sa njemackim, svedskim, francuskim (koji su svim redom osjetno kompleksnije gramaticke strukture i pravila). To je sve vrlo individualno i tesko je a priori znati, a slicno je i s programiranjem: pristup je izrazito individualan i nema tu nekih sablona ili generalnih recepata

- Java jest jednostavniji jezik od C(++)-a i kao rezultat toga, ucenik/student ce biti "nesvjesna", tj. zakinuta mnogih detalja koje ce uzeti zdravo za gotovo, a sto bi kasnije moglo biti prilicno nezgodno, jer racunala pocivaju na principima computer sciencea, a C(++) zahtijeva svladavanje tih znanja prije nego dopusti napredak dalje. Java je vise relaksirana (tako je dizajnirana), a to opet moze biti dobra i losa stvar, ovisno o covjeku

 

Sto se tice Demistificiranog C++, osobno bi to bila zadnja knjiga iz koje bi kao pocetnik ucio C++. To (mi) cak ne bi bila niti prva knjiga za prvi fakultetski course u C(++). To jednostavno nije knjiga za pocetnike, a pogotovo ne za ljude bez solidnog matematickog backgrounda.

Da me se ne shvati krivo, obozavam stil Motika i Sribara (osobito dosjetke, duhovitosti i citiranja Montyja Pythona), ljudi su vrlo strucni u svojim izlaganjima i tu nemam nikakve dvojbe, ali drugo izdanje koje ja imam sa faksa (2001.), smatram izuzetno lose pedagoski prezentiranim, sa zbrda-zdola nabacanim gradivom i poglavljima, zatim upravo grozomornim, isforsiranim vokabularom koji je posve nerazumljiv ("Razred"? "Imenici"? "Eksplicitna instantatacija predloska"?? Katastroficno.), nadalje cjelinama koji nemaju svoj smisleni flow iz teme u temu (zasto su funkcije prije klasa i objekata, a trebalo bi biti obratno? zasto su operatori obradjeni u dva dosta udaljena poglavlja? zasto je class inheritance presjecen sa strukturama i unijama te operator overloadingom? itd. itd. ) i sa zadacima koji su tesko (IMO) primjenjivi za pocetnike (ako je do-while blok pocetniku najjednostavnije docarati preko zadatka o racunanju vrijednosti sin(x) preko Taylorovog reda, jednodimenzionalni array preko Lagrangeove interpolacije, dinamicku alokaciju arraya preko odredjivanja jednadzbe pravca metodom najmanjih kvadrata, a pointer na funkciju preko integracije trapezoidnim pravilom, onda mogu reci samo - gesundheit. A to su samo par primjera koje sam po sjecanju izvukao.) Meni su osobno takvi zadaci zbilja interesantni i ne zelim umanjiti vrijednost tih zadataka, ali matematiku jako volim i bavim se programiranjem duzi niz godina - to nece biti opcenit slucaj s pocetnikom. Stoga smatram da to nije primjerena literatura pocetniku, a osobito ne srednjoskolcima. Sto je dobra literatura za C++? Zaista ne znam, znat ce Deus Ex i Tracer sigurno bolje od mene. Siguran sam da ima more kvalitetnih tutoriala na webu. Lynda se cini kao dobar izbor.

 

I tu mislim da je Java u prednosti - dostupnost i kvaliteta literature. Uzeti nesto poput Heads First: Java knjige i preko nje usvojiti osnove. Ili recimo ovaj odlicni site za koji zapravo i nije potreban poseban IDE tool, vec je dovoljan i Notepad++ ili Sublime. Odgovori se odmah testiraju, i vracaju se greske na failanim testovima. Postoji i zgodan sustavcic "achievementsa" - jako lijepo. Dakle, to su zadaci fino graduirani za pocetnike, a ne zadaci iz Demistificiranog C++.

 

 

 

/**** Par pitanja/replika kolegama ****/

 

A kud baš C, to se valjda još koristi u embedded svijetu i tamo gdje su nužne najbolje moguće performanse (3d engine, fizika...).

 

Bilo bi zgodno napraviti neki komparativni benchmark zadnjeg JVM-a i native C++ x86 koda - mislim da bi ti rezultati bili prilicno iznenadjujuci. JIT se jako optimizirao, a vec uzima maha i AOT (uzmi za primjer Dalvik vs ART runtime). Inace, zadnje sto sam gledao je da je tada (cca 2006.) razlika bila ocita u korist C-a samo prilikom intenzivnih operacija s arrayevima (sto je donekle i ocekivano - pomalo legendarno, u Javi su arrayevi kovarijantni, pa se zbog toga radi jos dodatni runtime type check koji po failu rezultira cuvenim ArrayStoreExceptionom. Taj runtime check uzima danak operacijama, ali je moguce da je i to nekom lukavstinom sredjeno).

 

Sto se tice 3D enginea, meni se cini da je tu C(++) iskljucivo dominantan po tradiciji i inerciji (sto me zalosti, jer bih se rado prebacio na igre, ali taj C++....). Recimo, JMonkeyEngine me iznenadio mogucnostima.

 

Sto se tice fizike, ljudi rade prilicno ozbiljne proracune pod JVM-om, a to ce se desavati sve vise. Recimo, vidio sam komparativne benchmarke kompleksnih simulacija termickih naprezanja kompozitnih materijala testnih letjelica modeliranih oko scram-jet motora i taj bytecode se na JVM-u izvrsava jednako brzo ili brze od native koda. Jedan od glavnih razloga? Simulacija je pisana u Scali/Akka, pa je bilo relativno bezbolno odmah napisati posve immutable i thread-safe implementaciju koja se onda trivijalno skalira na multi-core/CPU sustave. To napraviti u bilo kojem imperativnom jeziku je oduvijek bila nocna mora i bit ce jos i vise.

 

Embedded sustavi su takodjer samo po inerciji dominirani C(++)-om. Na trzistu odavno postoje real-time OS kerneli bazirani na JavaME (dobar primjer je aJile), a usput baci oko cime se bavi James Gosling u Liquid Roboticsu (flotila autonomnih solar-powered wave-glider robota koji nativno rade na JavaME platformi, vjerojatno rjesenje slicno aJile cipovima).

Bit ce zanimljivo vidjeti kamo ce sve to otici.

 

Ali C i proceduralno programiranje po meni treba preskočiti.

 

Ne znam mislimo li na istu stvar, ali ne vidim kako se moze "preskociti" proceduralno programiranje? I Java i C(++) i Scala su (i) imperativni jezici i bez toga mi je tesko zamisliti uvod u programiranje. Koje predlazes alternative? Funkcijska paradigma (Haskell, Lisp, XPath, Ocaml)? Logicka paradigma (Prolog)? Mislim da za pocetnika to nisu realne opcije - to su izvrsne (mozda cak arguably i nuzne) nadgradnje kasnije, ali za pocetnika....nisam bas siguran.

 

Meni osobno je Swing nešto najgore i najsporije što sam u životu vidio. Upravo zbog njega izbjegavam Javu naširoko. Toliko koda i namještanja samo da bi napravio GUI, a tek onda pisanje funkcionalnosti...

 

Sudimo o jeziku preko frameworka, are we? :) Inace, Swing je zaista abomination (ono malo sto sam vidio i radio, nije mi se bas svidjelo), ali kad pogledam alternative u obliku SWT/JFacea - e tu tek covjek vidi sto je patnja. S druge strane, i problem koji te platforme rjesavaju je kompleksan (uniformni GUI na razlicitim operacijskim sustavima), no opet toliko bloata i toliko crufta....uzas, i to je dobrim dijelom nasljedje i samog jezika. Java je oduvijek verbozan jezik (duga prica, znamo je svi i mozemo ili ne moramo se sloziti s njom, ali tako jest) i tu se nesto tek mijenja uvodjenjem funkcijskih elemenata i lambda izraza u JRE8 (otkad u tome radim zadnjih dva mjeseca, preporodio sam se). Neki to zovu modernim Cobolom, no mislim da to nije tako - neki jezici jednostavno imaju odredjenu razinu....ceremonije koju manje verzirani programeri zahtijevaju radi boljeg razumijevanja i vise eksplicitnosti. I zbilja, ako usporedimo, recimo, anonimnu klasu i lambda izraz, mislim da nece biti dvojbe sto je eksplicitnije i razumljivije, a sto konciznije i elegantnije. No to je vjecni trade-off - ako usporedimo recimo merge sort u C++ (ovako od oka 30-50 linija je neki minimum?) i u Scali (max. 5-10 linija uz pattern matching), ista stvar. Neki jezici teze jednom ili drugom pristupu, a pitanje je lingvistickog dizajna koliku ce fleksibilnost dozvoliti u izrazavanju. Upravo (medju ostalim i) zato mislim da je Scala jezik koji ce zamijeniti Javu.

16 godina
odjavljen
offline
Re: Java programiranje
Quantum kaže...

 Za C++, mislim da situacija niti je toliko jednostavna sa strane IDE-a (Visual Studio Express jest besplatan, ali radi samo na Windowsima), niti sa strane compilera (koji koristiti? Intelov? GCC? Nesto trece?), a kod koji se napise valja prvo compile-irati, linkati, napraviti izvrsnu datoteku i tek onda ga pokrenuti (vjerojatno je to moguce skriptirati, koristiti makro ili IDE to automatizira, i to nije problem samo po sebi, ali mi ovdje govorimo o pocetniku kojem je bitno krenuti sto prije i sa sto manje frustracija). Takodjer ne znam podrzavaju li C++ compileri inkrementalno compileiranje? Nadam se da da, ali po onom sto citam, ljudi iznenadjujuce s tim imaju problema jos i danas - rekao bih da je to facility koji pocetniku moze bitno olaksati stvari. That being said, koliko cujem od kolega, jos uvijek je Re-sharper za Visual Studio car IDE-ova, ali koliko je to bitno za pocetnika?

Visual Studio je valjda najbolji IDE koji postoji za C++, C#, ASP.Net, JavaScript i još podosta stvari (sad sa novim verzijama stiže i podrška za javu). Za kompajliranje koristi MSov kompajler ali može i gcc (VisualGDB addon) i bilo koji drugi compiler uz minimalno podešavanje. Ako već ne želiš VS, imaš code::blocks koji je genijalan IDE sa dosta mogućnosti. Uglavnom, bar za C++ ne moraš piratizirati kvalitetan IDE, kao što ti kažeš.

Quantum kaže...
I tu mislim da je Java u prednosti - dostupnost i kvaliteta literature. Uzeti nesto poput Heads First: Java knjige i preko nje usvojiti osnove. Ili recimo ovaj odlicni site za koji zapravo i nije potreban poseban IDE tool, vec je dovoljan i Notepad++ ili Sublime. Odgovori se odmah testiraju, i vracaju se greske na failanim testovima. Postoji i zgodan sustavcic "achievementsa" - jako lijepo. Dakle, to su zadaci fino graduirani za pocetnike, a ne zadaci iz Demistificiranog C++.

Kad sam ja počeo sa javom prije 3-4 godine, falilo je i knjiga (samo Head First je bio nečem), IDEovi su bili užaš u odnosu na VS koji ih i u Express verziji šije za par koplja a i cijela platforma je do zla boga fragmentirana i zakomplicirana.

Quantum kaže...

A kud baš C, to se valjda još koristi u embedded svijetu i tamo gdje su nužne najbolje moguće performanse (3d engine, fizika...).

 

Bilo bi zgodno napraviti neki komparativni benchmark zadnjeg JVM-a i native C++ x86 koda - mislim da bi ti rezultati bili prilicno iznenadjujuci. JIT se jako optimizirao, a vec uzima maha i AOT (uzmi za primjer Dalvik vs ART runtime). Inace, zadnje sto sam gledao je da je tada (cca 2006.) razlika bila ocita u korist C-a samo prilikom intenzivnih operacija s arrayevima (sto je donekle i ocekivano - pomalo legendarno, u Javi su arrayevi kovarijantni, pa se zbog toga radi jos dodatni runtime type check koji po failu rezultira cuvenim ArrayStoreExceptionom. Taj runtime check uzima danak operacijama, ali je moguce da je i to nekom lukavstinom sredjeno).

 

Sto se tice 3D enginea, meni se cini da je tu C(++) iskljucivo dominantan po tradiciji i inerciji (sto me zalosti, jer bih se rado prebacio na igre, ali taj C++....). Recimo, JMonkeyEngine me iznenadio mogucnostima.

 

Sto se tice fizike, ljudi rade prilicno ozbiljne proracune pod JVM-om, a to ce se desavati sve vise. Recimo, vidio sam komparativne benchmarke kompleksnih simulacija termickih naprezanja kompozitnih materijala testnih letjelica modeliranih oko scram-jet motora i taj bytecode se na JVM-u izvrsava jednako brzo ili brze od native koda. Jedan od glavnih razloga? Simulacija je pisana u Scali/Akka, pa je bilo relativno bezbolno odmah napisati posve immutable i thread-safe implementaciju koja se onda trivijalno skalira na multi-core/CPU sustave. To napraviti u bilo kojem imperativnom jeziku je oduvijek bila nocna mora i bit ce jos i vise.

 

Embedded sustavi su takodjer samo po inerciji dominirani C(++)-om. Na trzistu odavno postoje real-time OS kerneli bazirani na JavaME (dobar primjer je aJile), a usput baci oko cime se bavi James Gosling u Liquid Roboticsu (flotila autonomnih solar-powered wave-glider robota koji nativno rade na JavaME platformi, vjerojatno rjesenje slicno aJile cipovima).

Bit ce zanimljivo vidjeti kamo ce sve to otici.

JVM mora biti malo sporiji, isto kao i CLI tj. .Net. Native je uvijek brži mada su to danas skoro pa nemjerljive razlike i više ovise o sitnim optimizacijama.

 

3D enginei... Da, tu neko nasljeđe radi "problem". Dio zbog performansi (koje sad i možda nemaju puno veze) a kao drugo, c/c++ su oduvijek bili multiplatform jezici sa hrpom compilera za razne sustave. Portanje je trivijalno. Isto ovo vrijedi i za embedded uz jedan dodatak - native stvara manji overhead (memorijski i CPU) nego bilo koji JIT jezik/compiler. A taj overhead je u sustavima sa 2-8 MB memorije i procesorima ispod 30 mhz poprilično bitan.

Quantum kaže...

 Ne znam mislimo li na istu stvar, ali ne vidim kako se moze "preskociti" proceduralno programiranje? I Java i C(++) i Scala su (i) imperativni jezici i bez toga mi je tesko zamisliti uvod u programiranje. Koje predlazes alternative? Funkcijska paradigma (Haskell, Lisp, XPath, Ocaml)? Logicka paradigma (Prolog)? Mislim da za pocetnika to nisu realne opcije - to su izvrsne (mozda cak arguably i nuzne) nadgradnje kasnije, ali za pocetnika....nisam bas siguran.

Ne mislimo na isto. C treba preskočiti jer se početnik izgubi u njegovim "quirksima" i sitnim glupostima na koje mora paziti. Umjesto da uči logiku programiranja, bavi se sa problemima jezika koji je nastao "prije 100 godina".

Quantum kaže...

Meni osobno je Swing nešto najgore i najsporije što sam u životu vidio. Upravo zbog njega izbjegavam Javu naširoko. Toliko koda i namještanja samo da bi napravio GUI, a tek onda pisanje funkcionalnosti...

 

Sudimo o jeziku preko frameworka, are we? :) Inace, Swing je zaista abomination (ono malo sto sam vidio i radio, nije mi se bas svidjelo), ali kad pogledam alternative u obliku SWT/JFacea - e tu tek covjek vidi sto je patnja. S druge strane, i problem koji te platforme rjesavaju je kompleksan (uniformni GUI na razlicitim operacijskim sustavima), no opet toliko bloata i toliko crufta....uzas, i to je dobrim dijelom nasljedje i samog jezika. Java je oduvijek verbozan jezik (duga prica, znamo je svi i mozemo ili ne moramo se sloziti s njom, ali tako jest) i tu se nesto tek mijenja uvodjenjem funkcijskih elemenata i lambda izraza u JRE8 (otkad u tome radim zadnjih dva mjeseca, preporodio sam se). Neki to zovu modernim Cobolom, no mislim da to nije tako - neki jezici jednostavno imaju odredjenu razinu....ceremonije koju manje verzirani programeri zahtijevaju radi boljeg razumijevanja i vise eksplicitnosti. I zbilja, ako usporedimo, recimo, anonimnu klasu i lambda izraz, mislim da nece biti dvojbe sto je eksplicitnije i razumljivije, a sto konciznije i elegantnije. No to je vjecni trade-off - ako usporedimo recimo merge sort u C++ (ovako od oka 30-50 linija je neki minimum?) i u Scali (max. 5-10 linija uz pattern matching), ista stvar. Neki jezici teze jednom ili drugom pristupu, a pitanje je lingvistickog dizajna koliku ce fleksibilnost dozvoliti u izrazavanju. Upravo (medju ostalim i) zato mislim da je Scala jezik koji ce zamijeniti Javu.

Swing je sav zbrljan i zakompliciran jer je to valjda jedini UI fw koji radi podjednako na svim platformama gdje je dostupan. Jedino što je mene naživciralo je biznis oko rendanja fontova ali se to uz malo kreativnosti da srediti.

 

Inače, ja sam za to da se početniku da C# jer uzima najbolje od oba svijeta (C/C++ i Java). I brz je.

My name is Legion... For we are many!
14 godina
neaktivan
offline
Re: Java programiranje
Quantum kaže...
 Java je daleko laksa od C(++)-a buduci da "skriva" mnoge "opasne" (tj. napredne), low-level mogucnosti koje C(++) nudi i koje bi mogle pocetnika demotivirati, zamoriti i povecati greske koje je tesko na prvi pogled shvatiti zasto se desavaju, a nije nista manje znacajno mocna (osobito ne za pocetnicki nivo)

To što Java nema toliko mogućnosti kao C++ ne znači odmah da je najlakša. Nitko tebe u C++u ne sili da koristiš low-lewel stvari ukoliko to zaista ne želiš, ali ako ih želiš - tu su! Dakle, tu vidim samo plus za C++ tj. C+++ . Kasnije kako ćeš napredovati sa znanjem tako polako možeš ulaziti i u low-level stvari i još više optimizirati svoj C++ program. No za početnika to nije nužno niti ga itko sili na taj put.

 

 

Quantum kaže...
- Java je jednostavna(-ija?) za inicijalno postavljanje i koristenje, a bez potrebe za piratizacijom kvalitetnog IDE-a. Uz IntelliJ Idea CE (kojeg preporucam), Eclipse ili Netbeans (koje je sve redom trivijalno instalirati - ok osim mozda umiruceg Eclipsea), valja jos samo instalirati JDK po izboru (za pocetak krenuti s referentnim, Oracle JDK) i to je to - moze se krenuti sa programiranjem, sve je dostupno odmah.

Za C++, mislim da situacija niti je toliko jednostavna sa strane IDE-a (Visual Studio Express jest besplatan, ali radi samo na Windowsima), niti sa strane compilera (koji koristiti? Intelov? GCC? Nesto trece?), a kod koji se napise valja prvo compile-irati, linkati, napraviti izvrsnu datoteku i tek onda ga pokrenuti (vjerojatno je to moguce skriptirati, koristiti makro ili IDE to automatizira, i to nije problem samo po sebi, ali mi ovdje govorimo o pocetniku kojem je bitno krenuti sto prije i sa sto manje frustracija).

 

Ovo je tek djelomično istina. Visual Studio postoji u besplatnoj verziji i za početnike je sasvim dovoljan. Boljeg od njega za početnike (konzolne aplikacije) stvarno ne znam, a ima i drugih kvalitetnih alternativa. Piratizacija C++ IDE-a se događa tek na profesionalnom nivou kada je riječ o GUI aplikacijama, ali to nije ono čime se početnik uopće zamara jer - on je početnik. I ne vidim u čemu je uopće problem s compiliranjem C++ aplikacija. To je automatski proces koji početniku ionako ništa ne znači, a rezultat je native aplikacija. S druge strane Java tu koristi svoj famozni VM, a svi znamo koliko to negativno utječe na performanse Java aplikacija. Usto, C++ compileri su izrazito brzi i ne vidim tu nikakvih negativnih stvaki na račun C++a.


 

Quantum kaže...
 

Sa con strane:

- mnogi opet kritiziraju te suvremene pedagoske metode; i zbilja, to je double-edged sword: ljudi krenu prvo s Javom i onda im bude kompleksno prijeci na C++, jer su se navikli na lakocu Jave. To je slicno kao sto se maloj djeci u vrticu ne preporuca krenuti s engleskim, nego s bilo kojim drugim stranim jezikom. Zasto? Zato sto je engleski morfoloski osjetno jednostavniji od ostalih germanskih jezika (koji su danas jos uvijek globalno najrelevantniji, osim mozda kineskog), djeca te obrasce usvoje i onda imaju problema kasnije sa njemackim, svedskim, francuskim (koji su svim redom osjetno kompleksnije gramaticke strukture i pravila). To je sve vrlo individualno i tesko je a priori znati, a slicno je i s programiranjem: pristup je izrazito individualan i nema tu nekih sablona ili generalnih recepata

- Java jest jednostavniji jezik od C(++)-a i kao rezultat toga, ucenik/student ce biti "nesvjesna", tj. zakinuta mnogih detalja koje ce uzeti zdravo za gotovo, a sto bi kasnije moglo biti prilicno nezgodno, jer racunala pocivaju na principima computer sciencea, a C(++) zahtijeva svladavanje tih znanja prije nego dopusti napredak dalje. Java je vise relaksirana (tako je dizajnirana), a to opet moze biti dobra i losa stvar, ovisno o covjeku

 

Sto se tice Demistificiranog C++, osobno bi to bila zadnja knjiga iz koje bi kao pocetnik ucio C++. To (mi) cak ne bi bila niti prva knjiga za prvi fakultetski course u C(++). To jednostavno nije knjiga za pocetnike, a pogotovo ne za ljude bez solidnog matematickog backgrounda.

Da me se ne shvati krivo, obozavam stil Motika i Sribara (osobito dosjetke, duhovitosti i citiranja Montyja Pythona), ljudi su vrlo strucni u svojim izlaganjima i tu nemam nikakve dvojbe, ali drugo izdanje koje ja imam sa faksa (2001.), smatram izuzetno lose pedagoski prezentiranim, sa zbrda-zdola nabacanim gradivom i poglavljima, zatim upravo grozomornim, isforsiranim vokabularom koji je posve nerazumljiv ("Razred"? "Imenici"? "Eksplicitna instantatacija predloska"?? Katastroficno.), nadalje cjelinama koji nemaju svoj smisleni flow iz teme u temu (zasto su funkcije prije klasa i objekata, a trebalo bi biti obratno? zasto su operatori obradjeni u dva dosta udaljena poglavlja? zasto je class inheritance presjecen sa strukturama i unijama te operator overloadingom? itd. itd. ) i sa zadacima koji su tesko (IMO) primjenjivi za pocetnike (ako je do-while blok pocetniku najjednostavnije docarati preko zadatka o racunanju vrijednosti sin(x) preko Taylorovog reda, jednodimenzionalni array preko Lagrangeove interpolacije, dinamicku alokaciju arraya preko odredjivanja jednadzbe pravca metodom najmanjih kvadrata, a pointer na funkciju preko integracije trapezoidnim pravilom, onda mogu reci samo - gesundheit. A to su samo par primjera koje sam po sjecanju izvukao.) Meni su osobno takvi zadaci zbilja interesantni i ne zelim umanjiti vrijednost tih zadataka, ali matematiku jako volim i bavim se programiranjem duzi niz godina - to nece biti opcenit slucaj s pocetnikom. 

 Nisam preveliki stručnjak za popis literature no znam neke ljude koji su i knjige pisali za C++ pa mislim da se ne bi složili s tobom. Naime, najveći problem je što u našem jeziku uopće ne postoji prijevod za neke engleske izraze sa područja informatike i programiranja, pa ti zato pojmovi poput "razred, imenici" i sl. djeluju čudno. No što je - tu je. I meni je prije desetak godina bilo čudno kada umjesto "File" na meniju (čitaj: "izbornik" ) piše "Datoteka", no čovjek se navikne i prihvati.

 

A zašto su funkcije prije klasa je sasvim logično i ne vidim tu nikakvih problema. Funkcija može postojati zasebno kao entitet ili može biti dio većeg entiteta (klase). Ne možeš objašnjavati prvo klase i njene metode (funkcije) ako uopće ne razumiješ što je globalna funkcija sama po sebi. Zadaci u demistificiranom jesu teži i u dosta slučajeva zahtjevaju predznanje iz više matematike i to je ono u čemu se mogu složiti. No generalno nemam nekih većih primjedbi.


 

Quantum kaže...
 

 

Meni osobno je Swing nešto najgore i najsporije što sam u životu vidio. Upravo zbog njega izbjegavam Javu naširoko. Toliko koda i namještanja samo da bi napravio GUI, a tek onda pisanje funkcionalnosti...

 

Sudimo o jeziku preko frameworka, are we? :) Inace, Swing je zaista abomination (ono malo sto sam vidio i radio, nije mi se bas svidjelo), ali kad pogledam alternative u obliku SWT/JFacea - e tu tek covjek vidi sto je patnja. S druge strane, i problem koji te platforme rjesavaju je kompleksan (uniformni GUI na razlicitim operacijskim sustavima), no opet toliko bloata i toliko crufta....uzas, i to je dobrim dijelom nasljedje i samog jezika. Java je oduvijek verbozan jezik (duga prica, znamo je svi i mozemo ili ne moramo se sloziti s njom, ali tako jest) i tu se nesto tek mijenja uvodjenjem funkcijskih elemenata i lambda izraza u JRE8 (otkad u tome radim zadnjih dva mjeseca, preporodio sam se). Neki to zovu modernim Cobolom, no mislim da to nije tako - neki jezici jednostavno imaju odredjenu razinu....ceremonije koju manje verzirani programeri zahtijevaju radi boljeg razumijevanja i vise eksplicitnosti. I zbilja, ako usporedimo, recimo, anonimnu klasu i lambda izraz, mislim da nece biti dvojbe sto je eksplicitnije i razumljivije, a sto konciznije i elegantnije. No to je vjecni trade-off - ako usporedimo recimo merge sort u C++ (ovako od oka 30-50 linija je neki minimum?) i u Scali (max. 5-10 linija uz pattern matching), ista stvar. Neki jezici teze jednom ili drugom pristupu, a pitanje je lingvistickog dizajna koliku ce fleksibilnost dozvoliti u izrazavanju. Upravo (medju ostalim i) zato mislim da je Scala jezik koji ce zamijeniti Javu.

Meni se Java nije svidjela upravo zbog Swinga i nekako sam kasnije dobio potpunu averziju općenito prema Javi zbog toga. Znam da vjerojatno postoje i bolja rješenja, no nakon 4 sata mučenja s običnim GUI-jem koji komunicira s derbi bazom bilo mi je svega dosta za cijeli život s Javom. A i osobno sam perfekcionist i baš želim imati low-level kontrolu nad kodom, i ako mogu optimizirati obični array s emplace_back umjesto s push_back ili ako igdje mogu iskoristiti move konstruktor ja to jednostavno moram napraviti .

 

I inače, u C++u lambde i anonimne klase zu zapravo jedno te isto. Na osnovu labmda izraza se u pozadini generira anonimna klasa s funkcijskim operatorom () koji odradi posao i vrati povratnu vrijednost.

16 godina
offline
Re: Java programiranje

Rant off-topic: ja ne znam tko je smisljao UI za ovaj forum, ali ja niti nakon 6 godina ovdje ne uspijevam napraviti smisleni multi-quote. I gdje je nekakav markdown editor, zasto toga nema? Ah, nema veze, napravit cu sto mogu....sorry, momci, na nepreglednosti, ali bolje ne znam i izgubio sam zivce 10 minuta cackajuci sa ovim nesretnim editorom pa odustajem.

Anyway.....

 

JVM mora biti malo sporiji, isto kao i CLI tj. .Net. Native je uvijek brži mada su to danas skoro pa nemjerljive razlike i više ovise o sitnim optimizacijama.

 3D enginei... Da, tu neko nasljeđe radi "problem". Dio zbog performansi (koje sad i možda nemaju puno veze) a kao drugo, c/c++ su oduvijek bili multiplatform jezici sa hrpom compilera za razne sustave. Portanje je trivijalno. Isto ovo vrijedi i za embedded uz jedan dodatak - native stvara manji overhead (memorijski i CPU) nego bilo koji JIT jezik/compiler. A taj overhead je u sustavima sa 2-8 MB memorije i procesorima ispod 30 mhz poprilično bitan.

 

To sam i ja mislio, medjutim, mislim da je automatska paralelna optimizacija kljuc zasto su performanse "better-than-native". VM ce uvijek imati odredjen overhead, medjutim, ako je kod intrinzicno immutable, onda ga je daleko jednostavnije strojno optimizirati za izvodjenje u multi-cpu okruzenju. To se upravo tu desilo (kod je pisan cisto funkcijski u Scali, ali se compilea u isti bytecode jer se vrti na JVM-u), i to je najveca ljepota funkcijske paradigme. Vidjet cu mogu li iskopati clanak/prezentaciju negdje. Sto se tice overheada JVM-a za takve sustave koje si spomenuo, mislim da je JavaME i tu napravila dosta po pitanju trimmanja VM-a i raznih optimizacija, no jasno mi je zasto je C(++) weapon of choice za takve sustave.

 

Ne mislimo na isto. C treba preskočiti jer se početnik izgubi u njegovim "quirksima" i sitnim glupostima na koje mora paziti. Umjesto da uči logiku programiranja, bavi se sa problemima jezika koji je nastao "prije 100 godina".

 

Mozda je i to pitanje ukusa? U dosta navrata sam naisao na velike kritike C++ jezika (recimo, Linus Torvalds).

 

Swing je sav zbrljan i zakompliciran jer je to valjda jedini UI fw koji radi podjednako na svim platformama gdje je dostupan. Jedino što je mene naživciralo je biznis oko rendanja fontova ali se to uz malo kreativnosti da srediti.

 

Da, ali treba biti posten i reci - problem koji rjesavaju je tezak. Napraviti UI framework koji ce raditi na svim OS-ovima sa svim razlicitostima widgeta, kerninga, fontova i ostalih cudesa koji su imanentni svakom OS je sve samo ne trivijalan zadatak. U mnogo situacija, AWT/Swing su (poput Jave) bili pioniri na tom polju i nije cudo sto su se radile greske. Svi ti problemi nisu evidentni ako imas "luksuz" da ti se programi vrte iskljucivo pod jednom platformom i jos uz to imas kontrolu nad tom platformom. Najzad, jos nije nadjen generalno prihvacen nacin konstrukcije UI-a: koristenje imperativnog jezika za opis UI-a ima svoj set prednosti i mana, a koristenje markupa svoj. Svi hibridi koji su pokusani ostavljaju vise-manje gorak okus u ustima. Nije Swing jedini - spomenuti SWT/JFace je tu (to je UI framework cudoviste iz IBM-ovih tamnica na kojem je Eclipse napravljen). JavaFX je sluzbena zamjena za Swing, moderna clean-room implementacija s kojom su ljudi prilicno zadovoljni - medjutim sve to polako postaje nebitno jer programiranje desktop aplikacija odumire i postaje niche grana.

 

Inače, ja sam za to da se početniku da C# jer uzima najbolje od oba svijeta (C/C++ i Java). I brz je.

 

C# je izvrstan jezik, mislim trenutno bolji od Jave (sto je i normalno, ako se zna kako i kada je svaki nastajao). Slozio bih se (i vjerojatno radio u njemu) da me ne veze za jednu platformu (osoban stav i princip).

 

/***********/

 

To što Java nema toliko mogućnosti kao C++ ne znači odmah da je najlakša. Nitko tebe u C++u ne sili da koristiš low-lewel stvari ukoliko to zaista ne želiš, ali ako ih želiš - tu su!

 

Naravno, subjektivan sam - govorim iz vlastitog iskustva tu: mene je C++ privukao sintaksom, ali i odbio low-level konceptima koje upravo nisam mogao izbjeci, a zahtjevaju osjetno iskustvo (koje dobijas nakon bolnih pogresaka) i oprez u radu; jednostavno jezik mi je imao prestrmu i presporu krivulju ucenja. Koji to iole netrivijalan program u C++ mozes napisati bez potpunog razumijevanja pointera/referenci? U Javi te sam dizajn jezika sprjecava da se uopce dotices tih problema (pointeri su skriveni i nikakva aritmetika nije dopustena, a reference su striktno pass-by-value i koriste se intuitivno) - tasteful reduction koji rezultira brzim i laksim napretkom. Ista stvar za memorijsku alokaciju - GC vs new operator i free(). Dok covjek dodje do inheritancea i objektnog modeliranja, potrebno je prilicno polomiti mozak i izgubiti vremena, a tek tada zapravo pocinjes sa programiranjem. Ja i dan-danas ne razumijem sasvim templating u C++ (koji mi se cini u biti naboostani macro), dok su genericsi u Javi (sotonskom type eraseru usprkos) relativno jednostavni za koristenje (premda su u osnovi tek syntactic sugar i nisu bez svojih caveats). Itd.

 

Java upravo jest i dizajnirana s tim problemima na umu - da se ljudima (prvenstveno C++ programerima) olaksa zivot, smanji mogucnost greske te olaksa dizajn, slicno kao sto to Scala radi danas s Java programerima. Stoga, zasto odmah ne poceti s onim sto je lakse?

 

I ne vidim u čemu je uopće problem s compiliranjem C++ aplikacija. To je automatski proces koji početniku ionako ništa ne znači, a rezultat je native aplikacija. S druge strane Java tu koristi svoj famozni VM, a svi znamo koliko to negativno utječe na performanse Java aplikacija.

 

Postavio sam pitanje zbog inkrementalnog compileranja jer ne znam podrzavaju li IDE-ovi automatsko, on-the-fly upozoravanje korisnika na greske u editoru (sto je pocetniku, IMO, izuzetno bitno). Citao sam (i iznenadio se) pred koji mjesec nekakav post na StackOverflowu gdje je covjek pitao preporucuju li da se builda cijeli projekt prije svakog commita na VCS buduci da on inace ne vidi i ne zna za sve moguce compile-time greske na projektu. Recimo, to na Eclipseu radi bez greske, na IDEA-i ne bas toliko dobro, a za C++ ne znam, stoga pitanje. Pricali smo iznad o JVM-u i mislim da su bilo kakve razlike u performansama danas prilicno marginalne (sto ne znaci i nebitne, jasno). Ako si mislio na JVM warm-up, to je druga stvar, ali da li je to zapravo pocetniku uopce relevantno?

 

Nisam preveliki stručnjak za popis literature no znam neke ljude koji su i knjige pisali za C++ pa mislim da se ne bi složili s tobom. Naime, najveći problem je što u našem jeziku uopće ne postoji prijevod za neke engleske izraze sa područja informatike i programiranja, pa ti zato pojmovi poput "razred, imenici" i sl. djeluju čudno. No što je - tu je. I meni je prije desetak godina bilo čudno kada umjesto "File" na meniju (čitaj: "izbornik") piše "Datoteka", no čovjek se navikne i prihvati. A zašto su funkcije prije klasa je sasvim logično i ne vidim tu nikakvih problema. Funkcija može postojati zasebno kao entitet ili može biti dio većeg entiteta (klase). Ne možeš objašnjavati prvo klase i njene metode (funkcije) ako uopće ne razumiješ što je globalna funkcija sama po sebi. 

 

Eh, vidis, zaboravio sam na to - ti si napisao knjigu iz tog podrucja, right? Postujem tvoj stav, ali ostajem pri svom iz dva razloga:

1) premda opcenito ne vidim nikakvog razloga za prevodjenje rijeci iz podrucja IT-a, osobito ne vidim razloga za upotrebu onih za koje ne postoje adekvatni prijevodi. "Razred" je los prijevod - rijec je overloadana u Hrvatskom, zbunjuje (me) i uopce ne djeluje sugestivno; ne vidim nikakav problem u rijeci "klasa", premda je class jos bolji. Slicno i s "Imenici" - koji imenici? Telefonski? Ili je rijec o dativu singulara rijeci imenica? O "predlosku" i "instantaciji" (?? sto fali rijeci "kreiranje"?) da i ne pricam. :division_by_zero: Najzad - koristenje ne-engleskog jezika u source mi je frapantno. Djeluje to sve skupa jako isforsirano i podsjeca na kretenske novokovanice tipa "vrtolet" i "zrakomlat" koje ni dan-danas ne znam jesu li plod briljantne trash-inspiracije ili pomracenja necijeg uma.

Ja kad vidim hrvatski na racunalu izvan word processora ili browsera, prvo se najezim, onda se izgubim, a nakon toga jednostavno zatvorim aplikaciju - tako da priznajem svoju subjektivnost.

2) Funkcije (u smislu metoda) izvan klasa, objektno gledajuci, nisu smislen pojam i cini mi se da se tu vidi nasljedje iz C-a. One su u ovom kontekstu sigurno bliskije metodama, nego "pravim" funkcijama (koje su first-class citizen jezika i svoje korjene imaju u lambda calculusu). Posljedicno tome, funkcije/metode su definirane kao operacije na objektima (Grady Booch) i stoga mi se ne cini smisleno definirati ih prije objekata kada su dio objekata (koji su opet instance klasa, itd.). U objektnoj paradigmi ne postoji globalna varijabla ili globalna funkcija (osim ako ne mislimo na singletone - koji su, skoro u pravilu, bad design - ili na staticke factory metode). Stoga ostajem pri ocjeni da je takav pristup proceduralni relikt i da bi bilo smislenije obraditi to u sklopu klasa (ako nista drugo, onda zbog toga da se odmah pocne promovirati objektno razmisljanje, a mozda spomenuti ovo sto si rekao kao fusnotu ili kao exception to the rule) - kao sto to cini i vecina modernije literature koju sam ja citao (Deitel, Eckel, Booch, Sierra/Bates).

 

I inače, u C++u lambde i anonimne klase zu zapravo jedno te isto. Na osnovu labmda izraza se u pozadini generira anonimna klasa s funkcijskim operatorom () koji odradi posao i vrati povratnu vrijednost.

 

Sto je zapravo i razumljivo - lambda expressions su syntactic sugar za anonymous classes i na JVM-u oboje takodjer generiraju identican bytecode (ako rade istu stvar). Tu govorimo o ekspresivnosti i konciznosti jezika - verbozniji jezik je jasniji, daje vecu kontrolu, ali i mogucnost pogreske, dok je koncizniji izraz elegantniji, inicijalno manje razumljiv i ne daje toliku mogucnost utjecanja na tijek izvodjenja (usp. for-iteracija i map-reduce stil). Mislim da Java za pocetnika daje pravi balans izmedju prevelikog bavljenja bare-metal stvarima (C[++]) i sazetosti i elegancije (Haskell, Scheme).

Poruka je uređivana zadnji put sri 31.12.2014 21:47 (Quantum).
12 godina
neaktivan
offline
Java programiranje

public static void main(String[] args) { 
    int x = 1; 

    int n1 = 0, n2 = 0;
    Scanner input = new Scanner(System.in); 
    do{ 
        System.out.println("Enter first number: "); 
       int n1 = input.nextInt(); 
        System.out.println("Enter second number: "); 
        int n2 = input.nextInt(); 
        int devide = n1/n2; 
        System.out.println("Devide = "+ devide); 
        if(n1 == 0 || n2 == 0){

            System.out.println("You made mistake, please try again:"); 

        }

        else{

            x = 2;

        }
    }while(x == 1); 
}

 
0 0 hvala 0
13 godina
neaktivan
offline
Java programiranje

hvala na odgovoru ,prenio sam joj da  uci c++ i dao knjigu demifistirani c++

e sad jos 2 pitanjca .. 

skinio sam visual c++  od programa i onaj free dev c++ ,da li jos treba sto od programa ?

i zadnje ,da li moze samo uz tu knjigu nauciti programirati u c++ ?

ili da joj skinem neki od video tutoriala(koje?) ili knige (koje')  ili ??

 

hvala jos jednom

 

 
0 0 hvala 0
14 godina
neaktivan
offline
Java programiranje

Pozdrav, imamo jedno pitanjce vezano uz jedan zadatak.

 

Naime ja sam kreno sa c-a na javu i pokušavam riješiti jednostave zadatke sa zbrajanjem i tu sam došao do problema. U c-u sam u radu sa poljima jednostavno kroz For petlju upisivao vijednosti u polja dok mi ta opcija u java-i ne funkcionira(to sam pretpostavio XD)

 

npr u c-u:

 

for(i=0;i<4;i++){

 

printf("\n Upisi %d. broj: ",i+1);

.

.

.

}

 

Može li mi itko napisati kako da to napravim u for petlji u java-i ili postoji neko jednostavnije rješenje? 

Unaprijed hvala :)

Poruka je uređivana zadnji put sri 7.1.2015 17:23 (EvilRobi).
 
0 0 hvala 0
17 godina
offline
Java programiranje

Ekvivalent

 

printf("\n Upisi %d. broj: ",i+1);

 

bi bio

 

System.out.format("%nUpisi %d. broj: ", i+1);

Moj PC  
0 0 hvala 1
10 godina
neaktivan
offline
Java programiranje

Pozdrav! Ja sam takodje novi u javi pa ako moze neko da mi preporuci nekakvu knjigu ili neki free online kurs ili neki koji malo kosta? :)

Poruka je uređivana zadnji put uto 20.1.2015 3:40 (proawd97).
Moj PC  
0 0 hvala 0
17 godina
offline
Java programiranje

Bruce Eckel - Thinking in Java

 

probaj doci do pola knjige

Moj PC  
1 0 hvala 0
16 godina
offline
Re: Java programiranje
proawd97 kaže...

Pozdrav! Ja sam takodje novi u javi pa ako moze neko da mi preporuci nekakvu knjigu ili neki free online kurs ili neki koji malo kosta? :)

 

Citat od iznad:

"Uzeti nesto poput Heads First: Java knjige i preko nje usvojiti osnove. Ili recimo ovaj odlicni site za koji zapravo i nije potreban poseban IDE tool, vec je dovoljan i Notepad++ ili Sublime. Odgovori se odmah testiraju, i vracaju se greske na failanim testovima. Postoji i zgodan sustavcic "achievementsa" - jako lijepo."

 

Bruce Eckel i Deitel su odlicni, ali ako si novi u Javi, bolje Heads First.

11 godina
neaktivan
offline
Java programiranje

Pozdrav,

 

nije mi najjasniji polimorfizam, pa ako bi mogao netko odgovoriti na sljedeća pitanja. Npr, recimo da imamo ovako:

 

class food {

public void ispis(){

System.out.println("hrana");

}

}

 

class apple extends food {

@Override

public void ispis() {

System.out.println("jabuka");

}

 

public static void main(String args[]) {

food objekt1=new food();

food objekt2=new apple();

 

objekt1.ispis //ispisati će hrana

objekt2.ispis //ispisati će jabula

}

 

E sada. Mene zanima zašto bi netko pisao food objekt2=new apple(); kada umjesto food može ići apple i sve će biti isto? Da li to može biti korisno npr ako je apple apstraktna klasa pa radi toga ili? Ne vidim neku preveliku svrhu osim da lijepo piše da je apple zapravo food? I koliko sam ja shvatio, nema polimorfizma bez nasljeđivanja?

Poruka je uređivana zadnji put pon 23.2.2015 23:44 (decartes).
 
0 0 hvala 0
17 godina
offline
Java programiranje

Food je opštiji tip iz koga se izvodi apple, a potencijalno i mnoge druge klase. Ako te interesuje samo onaj deo ponašanja klase apple koji je definisan već u njenoj nadklasi, onda je sasvim ok da kažeš food jabuka=new apple(); Osim toga, ti možeš da poželiš da deklarišeš niz

food[] hrana;

i da ga onda popuniš objektima različitih tipova koji su izvedeni iz klase food.

hrana=new food[3];

hrana[0]=new apple();

hrana[1]=new bread();

hrana[2]=new cheese();

Sada imaš niz hranljivih namirnica različitih vrsta, što može da ti bude korisno (može predstavljati recept, spisak za kupovinu, itd) i za svaki član niza možeš pozivati metode koje su definisane u klasi food, a one će se izvršavati baš onako kako bi trebalo za onaj podtip food-a kome pripadaju.

 

EDIT: Da, kada pričamo o polimorfizmu, to je sastavni deo priče o nasleđivanju. Inače ti u istoj klasi možeš imati veći broj srodnih metoda istog naziva, ali one moraju imati različit "potpis", tj primati različite parametre, pa se tu radi o potpuno odvojenim metodama, a ne o polimorfnim metodama.

 

 

 

Poruka je uređivana zadnji put uto 24.2.2015 0:17 (Ivan(4)).
Moj PC  
1 0 hvala 1
14 godina
neaktivan
offline
Re: Java programiranje
decartes kaže...

E sada. Mene zanima zašto bi netko pisao food objekt2=new apple(); kada umjesto food može ići apple i sve će biti isto? Da li to može biti korisno npr ako je apple apstraktna klasa pa radi toga ili? Ne vidim neku preveliku svrhu osim da lijepo piše da je apple zapravo food? I koliko sam ja shvatio, nema polimorfizma bez nasljeđivanja?

 Recimo da trebaš napisati metodu koja ispisuje npr. težinu jabuke, ili težinu kruške. Onda umjesto da pišeš dvije funkcije gdje prvi put primaš objekt tipa jabuka a drugi put objekt tipa kruška napraviš samo jednu funkciju koja prima objekt tipa hrana. I čim predaš jabuku ili krušku toj funkciji događa se polimorfizam.

12 godina
neaktivan
offline
Re: Java programiranje

Postoje slučajevi kada konkretan tip objekta nije unaprijed poznat, npr.

 

food objekt1;
int slucajni_broj = new Random().nextInt(10);

if (slucajni_broj > 4){
    objekt1 = new apple();
} else {
    objekt1 = new food();
}

objekt1.ispis();

 

 

15 godina
offline
Java programiranje

Dali ima netko ovu knjigu i da ju prodaje?

Moj PC  
0 0 hvala 0
12 godina
neaktivan
offline
Java programiranje

Pozdrav!

Jedno padobransko pitanje:

 

Kako ispisati bold liniju ili liniju u oboji ?

System.out.println("blablabla");

 
0 0 hvala 0
14 godina
neaktivan
offline
Java programiranje

Koji je najbolji widget u Android Studiu za unos niza brojeva,ili odvojenih razmakom ili svaki u novom redu ?

 
0 0 hvala 0
17 godina
offline
Java programiranje

Pozdrav ljudi!

 

eo nakon 12 godina rada u prodaji, servisu, po terenima i ostalih peripetija u svijetu hardvera odlucih dici sidro i vratit se staroj ljubavi - programiranju :)

Ustedio sam neku lovu, dao otkaz i navalio na ucenje...

 

nakon pomnog istrazivanja odlucih se za Javu!

tako da u zadnjih mjesec dana intenzivno ucim po 2 jubito tutoriala i HeadFirst knjizi... skuzio sam da kada iste stvari ucim iz vise perspektiva znanje bolje legne, tj. dobijem potpuniju sliku.

e sad, volio bi kad bi naletio na nekog entuzijastu pocetnika/pocetnicu poput mene da mozemo u realnom vremenu komentirati ono sto ucimo i radimo (gtalk, skype, ili kava il pivo ak ste iz VK) i jedno drugom pomoci.

Jos za faxa sam skuzio da je lakse i efikasnije uciti s jos nekim koga zanima gradivo nego sve sam...

Ako ima takvih ovdje, slobodno se javite ;)

 

pozdrav!

and the heavens shall tremble
Moj PC  
2 1 hvala 0
15 godina
neaktivan
offline
Java programiranje

Ovako imam upit
dobio sam za seminar StringReader iz jave
dala mi je poveznicu 
http://docs.oracle.com/javase/7/docs/api/java/io/StringReader.html

ali tu nemam nekih općih informacija šta je StringReader

može neka pomoć od vas

Moj PC  
0 0 hvala 0
13 godina
offline
Java programiranje

Imaš još nešto definirano ? Tipa objasniti na primjeru ili nešto ?

Sad ovisi koliko tog seminara mora biti, jednostavno googlaj tipa: java StringReader example. Ovako globalno možeš oko 5 stranica napisati nekog Arial 12 fonta 1.5 razmak.

Napiši ćemu služi, kako radit s time, neke metode main koje se koriste (s tog link-a), primjer "koristan" (zaljepi kod, googlaš primjer neki, objasniš kod kako radi), uvodno o java jeziku, IDE (razvojno okruženje koje koristiš), instalacija Java SDK itd :)

Poruka je uređivana zadnji put čet 16.4.2015 17:01 (ContoNick).
 
0 0 hvala 0
Nova poruka
E-mail:
Lozinka:
 
vrh stranice