OriginalEXE pet 30.9.2011 17:09

Evo otvaram ovu temu jer sam se počeo baviti programiranjem u Javi pa ću ovdje postavljati pitanja kada zapnem a nadam se da će netko odgovoriti. Također i drugi mogu postaviti pitanja ako se bave programiranjem u Javi.

OriginalEXE pet 30.9.2011 17:12

Evo prvi problem. Učim po knjizi Objects first with Java, stvarno je odlična, kupio za sitne pare preko ebay-a a mnogi je preporučuju.

 

Uglavnom, od mene se traži da conditional statementom (dakle if...) provjerim je li duljina stringa veća ili jednaka 4.

Problem je što ja nikako ne mogu skužiti kako to napraviti. Ovo mi je već drugi put da čitam knjigu ispočetka jer sam mislio da sam možda jednostavno prekočio taj primjer, ali zbilja ga nema.

 

Zato molim nekoga tko se razumije da mi napiše kod kojim bih provjerio je li string dulji od četiri znaka. String se zove fullName

 

Hvala.

Floki pet 30.9.2011 17:39

Zašto bi ti to trebao biti neki problem - samo provučeš uvjet kroz if naredbe

Nisam nikad radio u Javi - ali to je svugdje slično:

 

 

using System;
using System.Collections.Generic;
using System.Text;

namespace DuljinaStringa
{
    class Program
    {
        static void Main(string[] args)
        {
            string recenica = Console.ReadLine();
            if (recenica.Length == 4)
            {
                Console.WriteLine("Duljina stringa je 4");
            }
            else if (recenica.Length < 4)
            {
                Console.WriteLine("Duljina stringa je manja od 4");
            }
            else
            {
                Console.WriteLine("Duljina stringa je veća od 4");
            }
        }
    }
}

OriginalEXE sub 1.10.2011 17:06

Pozdrav. Evo novog problema :) Koristim BlueJ za programiranje/kompajliranje. Uglavnom, napisao sam jedan programcic i spremim ga kao .jar file (postoji opcija u BlueJ), pri tom sam odredio main class. Zatim pokušam pokrenuti taj jar file i kaže mi da ne može pronači main class: PrikazSata (tako mi se zove glavna klasa). Pogledam u manifest datoteku i sve je dobro namješteno (BlueJ ju sam generira), ostavljena je prazna linija na kraju...

 

Googlam ali ne mogu naći riješenje. Savjeti su tipa jarfix, updateaj javu itd. ali meni je sve dobro, samo mi ne želi naći tu klasu iz nkogg raloga.

 

Zna netko kako riješiti problem?

 

EDIT: I nije problem u kodu jer se isti problem javlja i kod exportanja projekata koj isluže kao primjer a dobio sam ih na cd-u uz knjigu.

dado2202 pon 3.10.2011 11:04
OriginalEXE kaže...

Pozdrav. Evo novog problema :) Koristim BlueJ za programiranje/kompajliranje. Uglavnom, napisao sam jedan programcic i spremim ga kao .jar file (postoji opcija u BlueJ), pri tom sam odredio main class. Zatim pokušam pokrenuti taj jar file i kaže mi da ne može pronači main class: PrikazSata (tako mi se zove glavna klasa). Pogledam u manifest datoteku i sve je dobro namješteno (BlueJ ju sam generira), ostavljena je prazna linija na kraju...

 

Googlam ali ne mogu naći riješenje. Savjeti su tipa jarfix, updateaj javu itd. ali meni je sve dobro, samo mi ne želi naći tu klasu iz nkogg raloga.

 

Zna netko kako riješiti problem?

 

EDIT: I nije problem u kodu jer se isti problem javlja i kod exportanja projekata koj isluže kao primjer a dobio sam ih na cd-u uz knjigu.

java -jar komanda ili samo java?

 

Ako ti niti to ne želi pokrenuti jar, probaj sa nazivom klase koje sadrži main. Java -jar "ime jar-a" "ime klase sa package-ima" (ali ako kažeš da je sve ok u manifestu, onda ne bi trebao ovako pokretati, on bi trebao iz manifesta naći koja ti je main klasa)

 

EDIT :

 

Sad sam tek vidio kod koji si ostavio. Pa nigdje nemaš main metodu.

 

Dodaj u glavnu klasu "public static void main (String[] args)" i unutar te metode alociraj svoju "glavnu klasu"

dado2202 pon 3.10.2011 11:04
Ervin_91 kaže...

Da li ima neko ko se bavi sistemskim programiranjem u javi hitno mi je potrebna pomoc?

 

Što se podrazumjeva pod "sistemsko programiranje"?

 

Baci ovdje što ti treba, što te mući, pa možda zna netko rješenje problema.

dado2202 pon 3.10.2011 14:06
OriginalEXE kaže...

Hvala na odgovoru. S obzirom da u knjizi to nije spomenuto (niti ne znam čemu bi služio dio String[] args), neću se još time baviti.

 

Hvala svejedno ;)

Hmmmm

 

Pa to je trebalo biti spomenuto, jer je to osnova osnove.

 

Znači svaka klasa koju misliš pokretati bi trebala imati tu metodu.

 

public static void main(String[] args){

///bla bla aplikacija

}

 

Ovaj String[] args su ti ulazni parametri aplikacije. To je prva metoda koju JVM pokreće i sve kreće od nje. Ako si pokretao bilo koju aplikaciju do sada, onda je ona morala imati ovu metodu.

 

Evo za proučavanje materijala

OriginalEXE pon 3.10.2011 14:12

Radim u BlueJ.

 

Ovako sam do sada naučio:

 

 

Svaka klasa mora imati constructor (istog imena kao i ime klase). On postavlja sve varijable na određenu vrijednost itd. U knjizi još nije spomenuta riječ static, kao ni String[] args.

 

Kniga je jako kvalitetna i mnogi je preporučju tako da sumnjam da je nešto izostavljeno. Vjerojatno će mi to biti 'otkriveno' kasnije. Jedino ako nije stvar u tome što je ovo starije izdanje (aktualan je bio JDK 5)

 

 

EDIT: Samo da napomenem, u bluej mogu normalno kompajlirati i pokrenuti gore navedene klase.

dado2202 pon 3.10.2011 15:52

OMG

 

Sad sam malo pogledao taj BlueJ.

 

DEBELO PREPORUČAM IZBJEGAVATI

 

Svi koji se žele naučiti programirati u Javi izbjegavati ovaj IDE.

 

Ovo je koma živa. Kao prvo IDE pokušava sve napraviti za korisnika. Pokušava se programiranje svesti na klikanje itd. Čak IDE emulira pokretanje (tj. nije potrebna main metoda, pretpostavljam da instancira korisnikovu početnu klasu unutar neke svoje klase koja ima main), nema intelli (ajde to mu niti ne treba, ali dobro dođe).

Vidi se da je IDE napravljen samo za učenje Jave, ali ne i za rad na nekim projektima.

 

Moj savjet ti je da odabereš bilo koju drugu knjigu i bilo koji drugi IDE i onda definitivno nećeš imati ovakvih problema (kao što ih imaš sad), jer ćeš u toj knjigi pročitati o main metodi.

 

Ovo su banalni problemi koji se tebi javljaju. Moja preporuka, rađe nabavi neki drugi IDE (Intelli, Netbeans, Eclipse), prebrodi upoznavanje sa njime, uzmi drugu knjigu i kreni ispočetka.

 

Bilo koju drugu da se ne bazira na BlueJ

OriginalEXE pon 3.10.2011 15:59

Pa gle, ja upravo to i radim, učim Java programiranje. Ne radim na nekim projektima.

 

Ako ja uz pomoć BlueJ skužim programski jezik, sumnjam da će mi biti problem prebaciti se na neki drugi IDE. Ja mislim da je ovo baš super za učenje iz razloga što imam dosta toga vizualizirano, pa lakše shvatim neke stvari. Npr, skinuo sam i NetBeans i nisam ništa skužio. Imao san na odabir novi projekt i ja tamo trebam odabrati vrstu projekta. Logično, odabrah desktop app i onda mi on izbaci svoj template a ja pojma nemam šta je to i čemu služi.

 

Ovako, kroz BlueJ shvačam sve šta čemu služi, nije klikanje kako kažeš jer ja zbilja pišem kod, iz tvoje poruke dalo bi se isčitai da je to nešto poput korištenja aplikacije za izradu web stranica kroz gui.

 

I pa iako znam da imaš pojma o čemu pričaš, mislim da su profesori koji imaju puno godina iskustva iza sebe (jedan je čak i sudjelovao u izradi BlueJ-a), ipak kompetentniji. 

 

Razlog što sam uzeo ovu knjigu jest što su je mnogi preporučali kao savršenu za početnike, a ja to jesam, jer prije čitanja knjige pojma nisam imao o Javi. 

dado2202 pon 3.10.2011 16:08
OriginalEXE kaže...

Pa gle, ja upravo to i radim, učim Java programiranje. Ne radim na nekim projektima.

 

Ako ja uz pomoć BlueJ skužim programski jezik, sumnjam da će mi biti problem prebaciti se na neki drugi IDE. Ja mislim da je ovo baš super za učenje iz razloga što imam dosta toga vizualizirano, pa lakše shvatim neke stvari. Npr, skinuo sam i NetBeans i nisam ništa skužio. Imao san na odabir novi projekt i ja tamo trebam odabrati vrstu projekta. Logično, odabrah desktop app i onda mi on izbaci svoj template a ja pojma nemam šta je to i čemu služi.

 

Ovako, kroz BlueJ shvačam sve šta čemu služi, nije klikanje kako kažeš jer ja zbilja pišem kod, iz tvoje poruke dalo bi se isčitai da je to nešto poput korištenja aplikacije za izradu web stranica kroz gui.

 

I pa iako znam da imaš pojma o čemu pričaš, mislim da su profesori koji imaju puno godina iskustva iza sebe (jedan je čak i sudjelovao u izradi BlueJ-a, ipak kompetentniji. 

 

Razlog što sam uzeo ovu knjigu jest što su je mnogi preporučali kao savršenu za početnike, a ja to jesam, jer prije čitanja knjige pojma nisam imao o Javi. 

OKE, kako ti kažeš, pokušao pomoći, valjda tih 10 zadnjih godina pisanja Java aplikacija nisu relevantni.

 

Ako učiš jezik onda ga uči kako spada. Napišeš klasu, ali je ne znaš instancirat, tj. niti ne znaš što je main metoda. 

 

Oke nastavi sa tim IDE-om, pa ćemo vidjeti kako ćeš se "snaći" kad ćeš htjeti napraviti neki projekt ili se prebaciti na druga IDE rješenja. Taj BlueJ mi se čini kao "learning tool", a ne kao IDE.

 

Uživaj

 

EDIT :

 

Dobra literatura :

 

1

2

OriginalEXE pon 3.10.2011 16:16

Nadam se da se nisi našao uvrijeđenim, jer to niti najmanje nije bila moja namjera. Kao što si mogao i pročitati, naveo sam ti da mi je donekle poznata tvoja upučenost u stvari.

 

Ne kužim u čemu je problem ako, kako ti kažeš, BlueJ služi kao learning tool. Zar nije to upravo ono što mi treba? Zašto bih ga onda izbjegavao. 

 

Siguran sam milijun posto da ću kada do kraja pročitam i zbilja naučim knjigu znati što je main metoda i kako ju koristiti. 

I opet, nisam rekao da nisi relevantan, već nisi 'učitelj Jave'. Autori knjige jesu upravo to. Dapače, ako je vjerovati googlanju, imaju pozamašnu karijeru iza sebe, a ovo u knjizi nije 'samohvaljenje', već, kako sam rekao, knjiga se preporuča od mnogih ljudi.

 

EDIT: Također, knjiga i BlueJ je preporučena za one koji kreču ispočetka. Vidim da ova prvaknjiga nije tome namijenjena, a druga mi je svakako preskupa.

Deus ex machina pon 3.10.2011 16:37

Dado je u pravu.

Uzmi usporedbu - zelis voziti auto, ali treniras na biciklu s tri kotaca... ne ide to tako.

 

Uzmi normalni IDE, nabrojao ih je on nekoliko - ja osobno preporucam IntelliJ, i pocni programirati. Ovo o cemu ti pricas, ucenje Jave kroz IDE koji te ne uci Javi nego nekim svojim principima, je prazno znanje. 

 

Uostalom, u normalnom IDE-u nemas bog zna koliko puno vise posla... i cim prije naucis to, to bolje za tebe.

 

 

Ah, i da se osvrnem na te preporuke i slicno.... akademske stvari funkcioniraju u akademskoj okolini. Ako zelis biti dobar programer, onda slusaj ljude koji na tome zaradjuju zadnjih 10 godina.

OriginalEXE pon 3.10.2011 16:45

Hvala na komentaru. Ali i dalje me niste uvjerili :)

 

Ovako ja to vidim: vi se razumijete u programiranje i zato je vama svejedno koji IDE koristite. Ja na primjer krečem od nule (dobro, sad je negdje 0,00001) i znači nemam pojma o ničemu.

Upalim NetBeans i dočeka me odabir templatevoa, odaberem logično, desktop aplikaciju, on meni autmatski loada neke library-je, čak mi uplai i odjeljak u kojem odmah mogu dizajnirati GUI.

 

Upalim BlueJ, dočeka me jednostavno sučelje, napravim novi projekt i samo pišem. Čak mi i vizualizira zavisnost klasa (radi boljeg shvačanja koja utječe na koju), ja sam mogu kreirati objekte (dakle vizualno mi dočarava stvaranje obekata iz klasa) itd. 

 

Ne znam, meni se čini da e BlueJ više namijnjen meni. 

 

A i pričate kao da ja neću znati pisati kod u Javi ako koristim BlueJ. A za pravo, jedino što smo do sad shvatili jest da nisam upoznat sa označavanjem main metode. 

 

Ja ne očekujem da ću stvarati aplikacije kada završim s ovom knjigom. Ono što sam siguran jest da ću znati pisati strukturu programa i sam program, a kada jednom naučim ovu knjigu, koliko će mi lakše biti kada krenem sa nekom 'ozbiljnijom' knjigom koja koristi 'ozbiljniji' IDE

 

Dakle, ono što hoću reči jest da koristeči BlueJ mogu puno brže shvatiti programiranje nego koristeći eki drugi IDE (NetBeans npr.), a kasnije, kada od ove knjige više ne budem imao što naučiti, prei ću na neku drugu koja koristi drugi IDE.

 

Što mislite o tome?

Deus ex machina pon 3.10.2011 16:52

Ja mislim da si tvrdoglav i trazis pomoc, ali je ne zelis prihvatiti jer ne ide u smjeru u kojem zelis.

Ako ti dvoje ljudi s 10godisnjim iskustvom savjetuje da odbijes od BlueJ-a i da uzmes normalni IDE, a ti se diskutiras - ne vidim o cemu se ima dalje pricati?

OriginalEXE pon 3.10.2011 16:54

Ma gle, samo želim biti uvjeren da ste u pravu, neda mi se opet tražit knjigu i bacat pare kad sam već ovu kupio.

 

Daj mi onda preporučite neku knjigu koja stvarno jest za početnike ali da ne košta milijun kuna kao ona gornja preporuka. Hvala.

Deus ex machina pon 3.10.2011 17:16

Pa nije problem u knjizi? Zar se knjiga drzi iskljucivo BlueJ-a? Mislio sam da je to knjiga o Javi?

Ako knjiga trazi BlueJ za rad, onda nemas bas puno izbora... dovrsi knjigu, nauci sto mozes, i onda kreni s normalnim IDE-om.

 

Osobno, preporucam HeadFist seriju knjiga. Iako ne volim previse kupovati strucne knjige jer smatram da je Internet puno bolji izvor svih informacija, ove knjige su fenomenalno napisane.

 

http://shop.oreilly.com/product/9780596009205.do

http://shop.oreilly.com/product/9780596007126.do

OriginalEXE pon 3.10.2011 17:19

Da, knjiga se drži isključivo BlueJ-a i svi su primjeri u istom. Kao što sam napisao, koautor knjige je i koautor BlueJ-a.

 

Ja bih eto rado uštedio 300 kuna ali ako želim drugi IDE, moram kupovati novu knjigu.

 

A što se tiće toga da je internet bolji, ne bih se složio (opet ja jel :D) jer mi je u knjizi sve sistemataski objašnjeno i nema (ili ne bi trebalo biti) preskakanja, dok je na netu sve to razbacano.

 

Da ne spomenem koliko mi je lakše čitati i shvatiti nešto sa pravog papira nego sa ekrana.

 

Ti ne misliš tako?

Deus ex machina pon 3.10.2011 17:26

 

Tesko mi je objektivno ovo zakljuciti, sto zbog iskustva, sto zbog nacina na koji razmisljam. Mislim da je knjiga definitivno bolji izbor ako trazis sistematicnost. No onda s druge strane, imas krdo besplatnih tutoriala na internetu, koji su nekad bezvezni a nekad odlicni.

 

OriginalEXE pon 3.10.2011 17:33

Znam, zato ti i kažem, knjiga izgleda puno bolje riješenje iz moje perspektive. Radije ću uložiti tristo kuna za sistematičnost (koja je meni kao neznalici dakako potrebna) nego kopati po internetu šta je ovo a šta ono (kada se to autor tutoriala ne dosjeti napisati)

Floki pon 3.10.2011 19:13

On kaže da je ta knjiga dobra, ok, možda i jest

međutim po kojoj to logici prije uči konstruktor klase nego string[] args

dakle, prije uči instancirati kasu nego što zna tipove varijabli

ja sam bar godnu dana utrošio učeći osnovne stvari i vježbajući zadatke dok sam uopće čuo za klase

Ako već pita savjet - onda bi ga trebao i uvažiti - čovjek mu je rekao da ne koristi taj IDE - nema intelli -

pametome dosta - batali, uzmi nešto što valja