Java programiranje izdvojena tema

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

Radim na projektu za faks
i sad sam zapeo na jednom dijelu

ukratko aplikacija je za prodaju računalnih komponenti
zastali smo na dijelu di bi mi trebali napraviti privremenu listu dodavanja komponenti u kosraicu i izbacivanje 
pa tek kod potvrde da se sve šta je ostalo spremi u bazu podataka

da li netko može baciti oko na to

 

https://www.dropbox.com/s/ubvz4473ph6bvr9/RacunalneKomponente.zip?dl=0

Moj PC  
0 0 hvala 0
16 godina
offline
Java programiranje

Ima li tko kakvu preporuku za dobre video tutoriale za javu i android programiranje? Da se krene od početka sve do advanced stvari?

 

Po mogućnosti da je free.

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

Je li dobro krenuti s Javom ako sam potpuni pocetnik u programiranju?

Moj PC  
0 0 hvala 0
14 godina
neaktivan
offline
Re: Java programiranje
fizicar1 kaže...

Je li dobro krenuti s Javom ako sam potpuni pocetnik u programiranju?

 Pogledaj si osnove C programiranja kako bi shvatio kostur programiranja
kako se stvari odvijaju
to ti govorim samo radi uporabe petlji

a sad java nije tako teška samo se nekad zapne pa treba dobro razmislit jer je objektno orijentirano progrmiranje u pitanju

9 godina
neaktivan
offline
Re: Java programiranje
Poz. Malo me zbunjuju constructori u javi i njihova prizivanja i metode koje u zagradi imaju varijable i slicno. Ako neko ima vremena bio bih veoma zahvalan jer je na materinjem jeziku ipak lakse shvatiti. Takodjer, gledao sam neku lekciju na yt, i u jednom dijelu definira class box u kojem ima double lenght, width i height i onda napravi objekt Box pencilBox = new Box() i sad mi nije jasno zasto je ok pisao box.height=20 a ne pencilBox.height=20. Je li to samo greska na prezentaciji ili? I zadnje pitanje, zasto bi itko htio koristiti private u metodi, fakat ne vidim prednosti ispred public.
Inace, mislim da solidan sam u Pythonu jer ga ucimo u skoli (makar oko logike programiranja, nez jel znam sve naredbe i slicno) pa ako netko misli radit kakve analogije s njim, moze, a u javi mi muce samo ta "prizivanja" u druge classove i opcenito pojam classa i constructora.
Unaprijed puno hvala na pomoci :)
 
0 0 hvala 0
15 godina
odjavljen
offline
Re: Java programiranje

Tebe muče osnove OOP-a...

 

Ukratko:

 

Imamo psa. Pas ima propertye pasimina, visina, težina. Metode bi bile Lajanje, Donesi, Sjedni.

 

Dakle

 

class Pas

{

    string pasmina;

    int visina;

    int tezina;

 

    // konstruktor

    public void Pas()

    {

    }

   

    public void Lajanje()

    {

    }

 

    public void Donesi()

    {

    }

 

    private bool Nadji(string predmet)

    {

         // pas traži predmet

         return true; // našao

    }

 

    public void Lajanje()

    {

    }

}

 

Tu klasu bi instancirali i koristili ovako nekako:

 

Pas mojPas = new Pas();

mojPas.pasmina = "Njemački ovčar";

mojPas.visina = 50;

mojPas.tezina = 45;

// i onda

mojPas.Donesi();

 

Recimo da pas uvijek može lajati, bez obzira da li znamo koji je. Sad Lajanje pretvaramo u static metodu i možemo ju pozvati bez instanciranja klase:

 

// pas nas vidi

// pas laje na nas jer nismo simpatični

Pas.Lajanje();

 

E sada, pošto smo gore rekli da ne znamo čiji je pas, ne možemo ni težinu/visinu postaviti, pa ih stavljamo private. Da bi ju postavili, pas mora biti naš, moramo ga instancirati. Prepravljamo konstruktor.

 

public Pas(int _visina, int _tezina)

{

    visina = _visina;

    tezina = _tezina;

}

 

I sada kod instanciranja, možemo zadati te parametre.

 

Pas mojPas = new Pas(50 ,45);

// možemo provjeriti je li postavljeno

system.out.println(mojPas.visina);

// ali ne možemo to, jer je private. Treba nam metoda koja će nam vratiti vrijednost private varijable

 

public int Visina()

{

    return visina;

}

 

Pas mojPas = new Pas(50,45);

int visinaMogPsa = mojPas.Visina();

system.out.println(visinaMogPsa);

// e sad ćemo dobiti visinu

 

Sa private varijablama se na neki način zaštitimo da se ta vrijednost ne mijenja/ne čita izvana tj. da se mijenja samo kod instanciranja klase ili nekom posebno metodom koja je dio te klase. Možemo dodati takvu metodu.

 

public void UnesiVisinu(int _visina)

{

    visina = _visina;

}

 

Pas mojPas = new Pas(50, 45);

// ovo može

mojPas.UnesiVisinu(55);

// ovo ne može, jer je private

mojPas.Visina = 55;

// ali možemo postaviti pasminu, jer nije private

mojPas.Pasimna = "Njemački ovčar";

 

Još malo o parametrima i metodama. Imamo metodu Donesi. Za nju moramo instancirati psa i reći mu što da donese i pas će nam reći je li to našao ili ne. Prvo ju malo prepravimo.

 

public bool Donesi(string predmet)

{

     if (predmet == "") return false;

     return Nadji(predmet);

}

 

Dakle, ova public metoda kaže psu da nešto donese. Ako to nešto nije definirano, vraća false. Ako ima neki predmet, on ga traži sa private metodom "Nadji" i ona vraća true, da je našao.

 

Boolean trazi = mojPas.Donesi("štap");

if (trazi)

{

    // našao

}

else

{

   // nije našao

}

 

Ima tu jako puno (nasljeđivanje, superklase, interfacei...) i bilo bi ti dobro da naučiš osnove OOP prije bilo kakvog rada sa nekim OOP jezikom.

A rifle is like a human. The stock is the skeleton, the scope is the eyes, the action is the brain, and the barrel is the heart. But you, the man behind the rifle, you are the soul.
9 godina
neaktivan
offline
Re: Java programiranje
Puno hvala, sad mi je dosta jasnije. A znas li neki tutorial dobar ili mozda knjigu za object oriented programiranje ili da se snadjem sa ovim tutorialima na yt o javi i sam programiram dok mi ne sjedne?
 
0 0 hvala 0
15 godina
odjavljen
offline
Re: Java programiranje

Head First Java.

A rifle is like a human. The stock is the skeleton, the scope is the eyes, the action is the brain, and the barrel is the heart. But you, the man behind the rifle, you are the soul.
12 godina
neaktivan
offline
Re: Java programiranje
Sum_of_all_fears kaže...

Tebe muče osnove OOP-a...

 

Ukratko:

 

Imamo psa. Pas ima propertye pasimina, visina, težina. Metode bi bile Lajanje, Donesi, Sjedni.

 

Dakle

 

class Pas

{

    string pasmina;

    int visina;

    int tezina;

 

    // konstruktor

   public void Pas()

    {

    }

   

    public void Lajanje()

    {

    }

 

    public void Donesi()

    {

    }

 

    private bool Nadji(string predmet)

    {

         // pas traži predmet

         return true; // našao

    }

 

    public void Lajanje()

    {

    }

}

 

 

Ima tu jako puno (nasljeđivanje, superklase, interfacei...) i bilo bi ti dobro da naučiš osnove OOP prije bilo kakvog rada sa nekim OOP jezikom.

 Zar se u konstrutoru mora napisati return type? Zar nije da konstruktor ima isto ime kao i klasa, i da se prije napiše samo public ili private.

 

public class Pas{

   

   // konstruktor

   public Pas(){

     

     // Ovrije idu varijable i funkcije

   }

 

   // metoda

   public void Lajanje(){

 

   }

}

 

fpozar kaže...
Puno hvala, sad mi je dosta jasnije. A znas li neki tutorial dobar ili mozda knjigu za object oriented programiranje ili da se snadjem sa ovim tutorialima na yt o javi i sam programiram dok mi ne sjedne?

 Head First Java je najbolja. Objasni ti apsolutno sve, samo se potrudi da poslje svake lekcije viježbaš. Što više viježbe bolje programiraš.

http://informacijsketehnologije.blogspot.com/
Poruka je uređivana zadnji put pon 11.1.2016 18:46 (77ari).
15 godina
odjavljen
offline
Re: Java programiranje
77ari kaže...

 Zar se u konstrutoru mora napisati return type? Zar nije da konstruktor ima isto ime kao i klasa, i da se prije napiše samo public ili private.

 

public class Pas{

   

   // konstruktor

   public Pas(){

     

     // Ovrije idu varijable i funkcije

   }

 

Jedna jedina greška a pisao iz glave sav kod . Dobar sam.

 

Da, ide bez return typea... Nisam dirao javu već tjednima pa mi to ispari jer se IDE bavi sa time.

A rifle is like a human. The stock is the skeleton, the scope is the eyes, the action is the brain, and the barrel is the heart. But you, the man behind the rifle, you are the soul.
12 godina
neaktivan
offline
Re: Java programiranje
Sum_of_all_fears kaže...
77ari kaže...

 Zar se u konstrutoru mora napisati return type? Zar nije da konstruktor ima isto ime kao i klasa, i da se prije napiše samo public ili private.

 

public class Pas{

   

   // konstruktor

   public Pas(){

     

     // Ovrije idu varijable i funkcije

   }

 

Jedna jedina greška a pisao iz glave sav kod . Dobar sam.

 

Da, ide bez return typea... Nisam dirao javu već tjednima pa mi to ispari jer se IDE bavi sa time.

 Ispravljao sam te samo zato jer sam se prepao da sam krivo naucio :D

http://informacijsketehnologije.blogspot.com/
8 godina
neaktivan
offline
Java programiranje

Vjezbam javu i apsolutni sam starter pa me nesto zanima.

Ucitavanje txt datoteke red po red i stavljanje u matricu,niz (array);

 

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;

public class TxtFileToArrayList {
public static void main(String[] args) {
BufferedReader TxtToBuffer = null;
try {
String TxtLine;
TxtToBuffer = new BufferedReader(new FileReader("D:/tekst.txt"));
int brojac=0;//brojac linija datoteke
// Citanje svih linija datoteke, linija po linija
while ((TxtLine = TxtToBuffer.readLine()) != null) {
System.out.println("Ovo je linija datoteke: " + TxtLine);
System.out.println("Pretvorena linija u Array: " + TxtToArrayList(TxtLine) + "\n");
brojac++;
System.out.println("ukupno "+brojac);
}

} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (TxtToBuffer != null) TxtToBuffer.close();
} catch (IOException TxtException) {
TxtException.printStackTrace();
}
}
}

// pretvori Txt to ArrayList upotrebom Split operacije
public static ArrayList<String> TxtToArrayList(String TxtRed) {
ArrayList<String> TxtRezultat = new ArrayList<String>();
if (TxtRed != null) {
String[] splitData = TxtRed.split("\\s*,\\s*");
for (int i = 0; i < splitData.length; i++) {
if (!(splitData[i] == null) || !(splitData[i].length() == 0)) {
TxtRezultat.add(splitData[i].trim());
}
}
}
return TxtRezultat;
}
}


1.pitanje: u txt datoteci imamo slova šŠđĐžŽćĆčČ, kada prebacimo u matricu nemamo u matrici tih slova. Kako to riješiti?
2.pitanje: Kod je pisan u BlueJ i kod startam izborom void main (String [] args), kako startati sa izborom: new TxtFileToArrayList()

Poruka je uređivana zadnji put pet 22.1.2016 10:49 (drljo).
Moj PC  
0 0 hvala 0
14 godina
offline
Re: Java programiranje

Vec ti dugo nitko nije odgovorio, al evo, da malo i ovu temo osvjezimo.. I dalje samo pitaj, bar cu ti ja nastojat odgovorit ako budem u prilici :)
1. TxtToBuffer = new BufferedReader(new FileReader("D:/tekst.txt"));

Ovaj dio u kojem navodis putanju do .txt file ti bas i nije bajan. Recimo da imas jos dolje nekoliko puta citanja iz njega i sad osim sto ces svaki put morat pisat "D:/tekst.txt", sto mislis kako ce ti bit ispravit sve to kad se recimo odlucis datoteku stavit na C disk? x puta ispravljat u C:/tekst.txt ? Ovo je nije vezano samo uz javu nego je osnovna praksa pisanja razumljivog i čitkog kôda. Pitaj korisnika da upise zadanu putanju, pa onda tu varijablu predaj kao argument na sva ostala mjesta ili ju upisi kao recimo neku konstantu ili slicno.

2. Od jave 8 mozes umjesto ArrayList<String> TxtRezultat = new ArrayList<String>(), pisat ArrayList<String> TxtRezultat = new ArrayList<>(). Naime, kompajler ti vec iz ArrayList<String> pretpostavlja da se tu mora spremit nesto sto je String, pa je redundantno napisat drugacije. (googlaj Diamond operators)

3. Prvo ispitivas jel ti TxtLine = TxtToBuffer.readLine()) != null, pa onda udjes u while ako nije, a onda opet kad saljes drugoj metodi ispitivas jel taj predani argument null:  if (TxtRed != null) {...}

Ostalo je ok napravljeno.

 

E sad, dio svog rjesenja mozes zamijenit s ovim, a tim rjesenjem ces odmah dobiti i odgovor na prvo pitanje.

Gledaj ljepote: List<String> myLines= Files.readAllLines(datotekaTxt, StandardCharsets.UTF_8); Need I say more? Ako ti i dalje ne ocitava nasa slova kako treba, nadji u postavkama IDEa kojeg koristis charset in use.

Btw: ArrayList<String> bas i nije matrica, nego lista :)

 

Ti metodi main mozes poslat bilo sta sto mozes upisat na tipkovnici. Taj String[] args ti kaze da ce to sto metoda primi, protumaciti upravo kao String[] necega. Onda to nesto dalje komponiras u svoje metode, klase, objekte il sto vec. Ne razumijem sto bi zelio postic s new TxtFileToArrayList()?

Poruka je uređivana zadnji put sub 6.2.2016 19:09 (passat).
8 godina
neaktivan
offline
Re: Java programiranje

totalno sam otisao na drugu stranu. Napisao stotine linija koda i sav se zapetljao, ispravljo, dodavao, brisao itd

datoteka.txt, boja kisobrana po datumima

"8.2.2016","01","Marko Šimunović","žuti"

"9.2.2016","01","Marko Šimunović","plavi"

"10.2.2016","01","Marko Šimunović","plavi"

"11.2.2016","01","Marko Šimunović","crveni"

"12.2.2016","01","Marko Šimunović","zeleni"

"13.2.2016","01","Marko Šimunović","žuti"

"14.2.2016","01","Marko Šimunović","žuti"

"8.2.2016","02","Ivan Gosponetić","plavi"

"9.2.2016","02","Ivan Gosponetić","crveni"

"10.2.2016","02","Ivan Gosponetić","crveni"

"11.2.2016","02","Ivan Gosponetić","zeleni"

"12.2.2016","02","Ivan Gosponetić","zeleni"

"13.2.2016","02","Ivan Gosponetić","plavi"

"14.2.2016","02","Ivan Gosponetić","plavi"

"8.2.2016","03","Željko Tuk","crveni"

"9.2.2016","03","Željko Tuk","crveni"

"10.2.2016","03","Željko Tuk","zeleni"

"11.2.2016","03","Željko Tuk","zeleni"

"12.2.2016","03","Željko Tuk","plavi"

"13.2.2016","03","Željko Tuk","plavi"

"14.2.2016","03","Željko Tuk","plavi"

 

Problem je u našim slovima. Datoteku ucitam na sljedeci nacin: stavljam samo pozivanu procedure, cijeli kod je tako lose napisan da je necitljiv za bilo koga osim mene :)

 

private static void ucitajFile()

{
    public static String [] [] [] myArray = new String [7] [3] [4]
    int brojacDatuma=0;
    String workingDir=System.getProperty("user.dir");//ovo je za odredivanje dir gdje je aplikacija postavljena
    String imeDatoteke="datoteka.txt";
    BufferedReader br = null;
    String ID="01"; //ID koji trazimo

  try{
    br = new BufferedReader(new InputStreamReader(new FileInputStream(workingDir + "." + File.separator + imeDatoteke)));
    String linija=null; //postavljanje linije na "" (prazan string), ucitam jedan red u linija prije nego obradim tu liniju
    strLinija =null; //postavljanje strLinija na ""(prazan string), obradena linija, ona bi imala umjesto š = s itd

     int x=0,y=0,z=0;//ovo mi sluzi za novu matricu u koju cu spremiti obradenu datoteku.txt

    //trazimo odredenu osobu prema ID 01,02 ili 03
 

    while((linija = br.readLine())!=null)           //ako nismo dosli do kraja, ucitam jednu liniju

    { 

      

   //ovaj dio sam mislio koristiti u posebnom public ili private void tako sto nakon obrade nasih slova

  //stavim return  i vratim obradenu liniju


      strLinija=linija.replaceAll("\"",""); // u toj liniji uklonim navodnike
      String [] splitPodaci=strLinija.split("\\s*,\\s*"); //razdvojim liniju na niz splitPodaci

      if (splitPodaci[1].equals(ID)){ //ako ucitana linija sadrzi trazeni ID

      //upisujem sva 4 podatka u moju matricu datum, ID, ime Osobe i boju kisobrana 
      while (z<4){
      myArray[x][y][z]=splitPodaci[z];
      z++;
    }

 

    z=0;
    if (x<6)x++; //kada napunim svih 7 dana , krecem ispocetka
    else x=0;
    brojacDatuma++;
  }

 

   if(brojacDatuma>7)break; //kada sam svih 7 dana uhvatio za odredenu osobu izlazim iz petlje while
 }

br.close();
} catch(IOException e) {
// exception occurred.
e.printStackTrace();
}

 

//nakon ovoga myArray izgleda ovako:
//myArray[0][0][0]=8.2.2016
//myArray[0][0][1]=01
//myArray[0][0][2]=Marko Šimunović
//myArray[0][0][3]=žuti
//myArray[1][0][1]=9.2.2016
//myArray[1][0][1]= 01
//myArray[1][0][1]=Marko Šimunović
//myArray[1][0][1]=plavi
// itd do kraja
//myArray[6][0][0]=14.2.2016
//myArray[6][0][1]=01
//myArray[6][0][2]=Marko Šimunović
//myArray[6][0][3]=žuti

 

//tj.ovako ako malo doradimo pogled
//myArray[0][0][0 to 3]=8.2.2016,01,Marko Šimunović,žuti
//myArray[0][1][0 to 3]=null,null,null,null
//myArray[0][2][0 to 3]=null,null,null,null
//myArray[1][0][0 to 3]=9.2.2016,01,Marko Šimunović,plavi
//myArray[1][0][0 to 3]=null,null,null,null
//myArray[1][0][0 to 3]=null,null,null,null
...
//i tako do kraja, 7 dana
//myArray[6][0][0 to 3]=14.2.2016,01,Marko Šimunović,plavi
//myArray[6][1][0 to 3]=null,null,null,null
//myArray[6][1][0 to 3]=null,null,null,null

//ovo sto je null tek ceka da upise podatke. Na ta mjesta dolaze osobe koje su taj dan nosile kisobran iste boje kao i trazena osoba
//ponovno ucitavam datoteku iz vise razloga, a to su:
//neznam postavljat mark i reset.

//Oni sluze da bi citali datoteku od mjesta gdje smo oznacili mark pa sa reset vracamo se na tu tocku i citamo jos jednom
// meni dode do kraja i nemogu vratiti na mark tocku pa sam iz toga razloga jos jednom ucitao datoteku
//drugi razlog je sto neznam raditi sa bazom podataka i koristit SQL jezik kojim bi ja mislim sve ovo olaksao
//dakle, ucitavam jos jednom datoteka.txt

 

try{

    br = new BufferedReader(new InputStreamReader(new FileInputStream(workingDir + "." + File.separator + imeDatoteke)));

  

   //ovdje ponovo postavljam linija i strLinija na null (prazan string) , za svaki slucaj. Neznam sto moze zaostati pa sam to ispraznio
    String linija=null,strLinija =null; 
   int x=0,y=0,z=0; //ovo su brojaci myArray koji odreduju u koji dio matrice sto moram staviti

   y=1;
   //trazimo sve osobe koje su odredenog datuma nosile kisobran boje kao i nas trazeni ID
   while((linija = br.readLine())!=null) { //ako nismo dosli do kraja, ucitamo jednu liniju

            strLinija=linija.replaceAll("\"",""); // u toj liniji uklonim navodnike
            String [] splitPodaci=strLinija.split("\\s*,\\s*"); //razdvojim liniju na niz splitPodaci

            for (x=0;x<7;x++){ //proci cu svih 7 dana

           // ovdje ispitujem sljedece uvijete : ako je se podudara datum i boja kisobrana,
           // a ne podudara se ID dakle nije osoba koju trazimo jer u tom slucaju napunilo bi novu matricu 2x

           

           if(myArray[x][0][0].equals(splitPodaci[0])

        && splitPodaci[3].equals(arrayVozac[x][0][3])

        && !splitPodaci[1].equals(arrayVozac[x][0][1]))
    {
        for (z=0;z<3;z++) {

           if (myArray[x][1][0]==null)      //ako nije popunjena myArray[][1][] 

           {
                myArray[x][1][z]=splitPodaci[z]; // onda stavljamo u myArray[][1][]
           }else{
              myArray[x][2][z]=splitPodaci[z]; // jedna je osoba vec nadena pa stavljamo u myArray[][2][]

           }
       }
    }
  }
}
br.close();
} catch(IOException e) {
// exception occurred.
e.printStackTrace();
}

ovo gore sve radi i u konacnici izgleda ovako:

//myArray[0][0][0 to 3]=8.2.2016,01,Marko Šimunović,žuti
//myArray[0][1][0 to 3]=8.2.2016,02,Ivan Gosponetić,žuti
//myArray[0][2][0 to 3]=null,null,null,null

i tako do kraja, zadnjeg dana u sedmici

//myArray[6][0][0 to 3]=14.2.2016,01,Marko Šimunović,plavi
//myArray[6][1][0 to 3]=14.2.2016,02,Ivan Gosponetić,plavi
//myArray[6][2][0 to 3]=14.2.2016,03,Željko Tuk,plavi

 

 

dakle program radi ono sto zelim, preostaju mi nasa slova.
Recimo da nakon sto ucitam red i stavim u strLinija, posaljem strLinija u public (private) void. U voidu obradim nasa slova i vratim obradeni strLinija tada bi rijesio problem.

 

u BlueJ sam trazio u postavkama izmjenu seta karaktera no nisam nista nasao. Trenutno radim tako da obradim datoteka.txt u word padu sa zamijenom znakova š u s itd 

i onda radim na toj datoteci u javi. Traje duze al jbg kad neznam u javi moram pripremiti datoteku prije

Poruka je uređivana zadnji put pet 12.2.2016 14:12 (drljo).
14 godina
offline
Re: Java programiranje
Problem je sto ne razmisljas na objektni nacin :)
Umjesto Array[][][] napravi jedan Objekt u kojem ces imat varijable koje ce ti predstavljat svojstva kisobrana. Koliko god onda tih objekata imao, mozes ih smjestit u neku Listu ili polje i zbog polimorfizma ces tim clanovima uvijek moci pristupati i vrsiti nj metode.
Tvoje je rijesenje proceduralno i svojstveno je recimo dobrom rjesenju kad bi pisao u C-u. Iako bi i tad koristio structove, prije nego Array[][][], al nebitno..
Ugl, posveti paznju malo na objekte/instance klase, polimorfizam nasljedjivanje. To je zapravo i bit jave i sl jezika.
Ako i dalje nemas ideju kako bi to trebalo izgledat, reci pa cu ti napisat nekakav kostur kad dodjem doma.
8 godina
neaktivan
offline
Re: Java programiranje

da, upravo tako. Ne razmisljam na objektni nacin. Java je sasvim nesto drugacije od c jezika ili vb6. Trebao bi prvo razmisljati u javi, a ne prevoditi c ili vb u javu. Nesto kao kad covjek savlada strani jezik i onda ne prevodi materinji u strani nego prica sto misli. Mislim da mi nije bas sve jasno ali cu se potruditi jer mi je zanimljivo.

trebao sam mozda krenuti nekom drugom stazom, recimo ovako:

 

import java.util.*;

 

public class kisobranPopis{

   

    private ArrayList<osoba>popis;

   

 

    class osoba{

     String datum;

     String ID;

     String imeOsoba;

     String bojaKisobrana;

    }

 

  //konstruktor

  public kisobranPopis(){
     popis=new ArrayList<osoba>();
  }

 

 

  public static void main (String[] args){

    kisobranPopis mojPopis=new kisobranPopis();

}

 

znaci iz class osoba ja bi trebao moci napraviti nove obijekte, dodavati nove osobe, brisati ih prema potrebi itd.

 

nebi htio bas da mi das gotovo rijesenje jer onda nismo napravili nista. Trebam nauciti loviti ribu, a ako mi das ribu onda smo na pocetku jer sutra cu pitati opet nesto drugo.

Moram jednostavno shvatiti  klasu, objekat, metodu. 

Vec i sam odgovor na moje pitanje mi puno znaci, zahvaljujem.

Potrudicu se , jos cu malo citati knjige i prepisivati primjere pa cu vidjeti

dobro ako bas ti nije problem dva-tri retka napisi

14 godina
offline
Re: Java programiranje

Na dobrom si putu, samo cu ti evo dat malo smjernica kako se to inace radi.

 

Prvo, Objekte ces uvijek modelirat u zasebnim klasama. Dakle umjesto da unutar kisobranPopis.java imas i main metodu i konstruktor i novu ugniježdenu klasu, tvoji ce objekti obavezno nastajat u klasi koja stoji sama za sebe. Ta klasa sama po sebi naravno ne znaci nista, ona je samo nacrt za objekt koji ces ti stvoriti. Tek kad u npr main metodi stvoris instancu(primjerak) te klase(tog nacrta), stvorio si objekt koji je "ziv" i s kojim mozes radit sto hoces. (Naravno, u javi se moze pravit klasa unutar klase, al to u pocetku zna bit dosta zbunjujuce i vuce puno drugih pitanja, pa je bolje to na trenutak zaboraviti.)

 

Znam da ne trazis kôd i svaka cast za takav nacin ucenja, al evo tebi ipak nekakvo mini-rjesenje koje ce ti vjerujem dosta pomoc kod shvacanja osnovne ideje razmisljanja na objektni nacin.

 

Ovako bi ti izgledao Kisobran:

package ...

public class Kisobran {
   private String datum;
  private String ID;
  private String imeOsobe;
  private String bojaKisobrana;

  public Kisobran(String datum, String ID, String imeOsobe,String bojaKisobrana){
    this.datum = datum;
    this.ID = ID;
    this.imeOsobe = imeOsobe;
    this.bojaKisobrana = bojaKisobrana;
  }

  public String getDatum(){
    return datum;
  }
  public String getID(){
    return ID;
  }
  public String getImeOsobe(){
    return imeOsobe;
  }
  public String getBojaKisobrana(){
    return bojaKisobrana;
  }

}

 

a ovako recimo main metoda:

package ...

public class Bug{

   public static void main (String[] args){
    Kisobran prviKisobran = new Kisobran("27.2", "42", "Pero", "Plava");
    Kisobran drugiKisobran = new Kisobran("26.2", "42", "Jozo", "Zelena");
    Kisobran treciKisobran = new Kisobran("23.2", "42", "Marko", "Siva");

    System.out.println("Boja prvog kisobrana:" + prviKisobran.getBojaKisobrana());
    //...
  }
}

Poruka je uređivana zadnji put pet 12.2.2016 19:46 (passat).
8 godina
neaktivan
offline
Re: Java programiranje

nije mi proradilo iz prve ruke morao sam napisati ovako 

public class Kisobran {
   private String datum;
  private String ID;
  private String imeOsobe;
  private String bojaKisobrana;

  public Kisobran(String datum, String ID, String imeOsobe,String bojaKisobrana){
    this.datum = datum;
    this.ID = ID;
    this.imeOsobe = imeOsobe;
    this.bojaKisobrana = bojaKisobrana;
  }

  public String getDatum(){
    return datum;
  }
  public String getID(){
    return ID;
  }
  public String getImeOsobe(){
    return imeOsobe;
  }
  public String getBojaKisobrana(){
    return bojaKisobrana;
  }

public static void main (String[] args){
    Kisobran prviKisobran = new Kisobran("27.2", "42", "Pero", "Plava");
    Kisobran drugiKisobran = new Kisobran("26.2", "42", "Jozo", "Zelena");
    Kisobran treciKisobran = new Kisobran("23.2", "42", "Marko", "Siva");

    System.out.println("Boja prvog kisobrana:" + prviKisobran.getBojaKisobrana());
    //...
  }

}

dobro necu sada gnjaviti svaki dan. Malo cu izucavati. Probacu napraviti umjesto prviKisobran, drugiKisobran, trecuKisobran kisobran[i]

hvala

8 godina
neaktivan
offline
Re: Java programiranje
Oprostite,vi koji imate iskustva na feru jel mozete mi reci ako sam pao programiranje i programsko inzenjerstvo tj nisam skupio dovoljno bodova na kolokvijima,sad imam ispit za par dana. Kakva su iskustva sa prolazom na ispitu? Jel tesko proci? Jel velika tragedija ako ne uspijem ovaj semestar dati to programiranje posto postoji uvjet za drugi semestar?
 
0 0 hvala 0
11 godina
offline
Re: Java programiranje

Osobno nisam pao PiPI pa ti ne mogu direktno odgovoriti na to pitanje. PiPi ti vuće ASP (Algoritimi i strukture programiranja) u drugom semestru. Taj predmet ti se 98% vrti oko pisanja i učenja algoritama napisanih u C-u s puno pokazivača i dvostrukih pokazivača. Ako misliš ići na R smjer onda se potrudi ovo položiti što prije, ali ako ideš i na E smjer opet ti vrijedi isti savjet jer na FER-u što god da upišeš nešto ćeš morati programirati. Sad nisam ziher jel vuće i Arhitekturu računala (ARH1) - mislim da vuće. Tu se isto programira ali u asembleru. Ako ćeš ići na R smjer onda ćeš se upoznati s Javom u 3. semestru na predmetu Objektno Orijentirano Programiranje (OOP) za što ti je opet nužno imati položen PiPI odnosno ASP. Također i za Operacijske sustavi ti vrijedi ista stvar, tako da je ovo stvarno dosta bitan predmet - POLOŽI GA ŠTO PRIJE. 

8 godina
neaktivan
offline
Java programiranje

što se tice onoga gore koda potrebno je ovo:

 

try{
    br = new BufferedReader(

     new InputStreamReader(

     new FileInputStream(workingDir + "." + File.separator + imeDatoteke)));

 

zamijeniti a ovim:

try{

   br = new BufferedReader(
      new InputStreamReader(
      new FileInputStream(workingDir + "." + File.separator + imeDatoteke),"windows-1250"));

 

dakle dodati ovo :

 

"windows-1250"

 

i to radi! cita nase znakove.

Moj PC  
0 0 hvala 0
8 godina
neaktivan
offline
Java ,string

Koliko ima slova oko u stringu < Napisao sam recenicu Oko   moje,uradio sam alio mi java gresku. Moze li pomoc ili neki drugi nacin da se uradi zadatak ,ili neki dobar tutorijal koji se odnosi na novo!!!

 

Scanner scn = new Scanner(System.in);
String tekst;
System.out.println(" OKO MOJE");
tekst = scn.nextLine();

int brojac = 0;
char slovo = 'o';

for (int i = 0; i < tekst.length(); i++) {
if (tekst.toLowerCase().charAt(i) == slovo) {
brojac++;
}
}

System.out.println("Broj slova o u nasoj recenici ima slova o: " + brojac);



 
0 0 hvala 0
8 godina
neaktivan
offline
Java programiranje

Tek sam nedavno ovdje dosao i vratio sam se programiranju nakon duge stanke ( a ne znam ni sam zbog cega, bit ce lijenost ). Dosta dobra stranica za ucenje i usavrsavanje u programiranju u Javi je codeacademy.com . Pokusajte tu, preporucujem jer u korak ide s pocetnikom i moze se lako nauciti. Probajte, nemate sto izgubiti a uz to imate i forum za svaki zadatak, imate i pomoc ako vam ne ide. Ako ste voljni mozete i nauciti. Pozdrav i sretno svima :)

 
4 0 hvala 0
10 godina
neaktivan
offline
Java programiranje

da li mi može netko objasniti smisao sučelja (interface)?

koliko sam ja skužio, sucelje je popis metoda koje neka klasa MORA implementirati. dakle, u sucelju se nista ne implementira, nikakav kod.

to znaci, imao ja sucelje ili ne, ja svejedno moram sve implementirati u klasama, i to u svim klasama koje implementiraju određeno sucelje jer se nikakav kod ne nasljeđuje.

i koji je onda smisao toga? ja mogu implementirati sve te metode i bez da koristim sucelje, tj. bez da me sucelje natjera na to, a ako mi neka metoda ne treba, onda je uopce i ne implementiram umjesto da radim neki dummy kod.

 

jel mi moze netko objasniti cemu u biti sluze ta sucelja i dati nekoliko konkretnih primjera gdje su sucelja potrebna?

 
0 0 hvala 0
14 godina
offline
Re: Java programiranje
Cartman93 kaže...

da li mi može netko objasniti smisao sučelja (interface)?

koliko sam ja skužio, sucelje je popis metoda koje neka klasa MORA implementirati. dakle, u sucelju se nista ne implementira, nikakav kod.

to znaci, imao ja sucelje ili ne, ja svejedno moram sve implementirati u klasama, i to u svim klasama koje implementiraju određeno sucelje jer se nikakav kod ne nasljeđuje.

i koji je onda smisao toga? ja mogu implementirati sve te metode i bez da koristim sucelje, tj. bez da me sucelje natjera na to, a ako mi neka metoda ne treba, onda je uopce i ne implementiram umjesto da radim neki dummy kod.

 

jel mi moze netko objasniti cemu u biti sluze ta sucelja i dati nekoliko konkretnih primjera gdje su sucelja potrebna?

 Sučelje služi kao ugovor između korisnika klasa i stvaratelja klasa. Ako neka klasa implementira neko sučelje, onda sigurno znaš da ona ima implementirane metode koje sučelje propisuje. Njih možeš promatrati kao potpuno abstrakne klase. Npr. imaš sučelje Drawable koje ima metodu draw. Sad ti možeš napisati negdje napisati metodu
void nacrtajDvaPuta(Drawable drawable){

        drawable.draw();

        drawable.draw();

}

 

Ti sad toj metodi mozes poslati bilo koji objekt koji je primjerak razreda koji implementira sučelje Drawable. Ok, ti ćeš možda reći da možeš umjesto toga koristiti nasljeđivanje. No zamisli da imaš još jedno sučelje Printable, i hoćeš da ti klasa implementira oba sučelja tada nasljeđivanje ne bi funkcioniralo jer ne u javi ne postoji višestruko nasljeđivanje (dakle možeš naslijediti samo jednu klasu). Onda bi Printable npr. moralo biti nadklasa od Drawable (ili obrnutno), i onda bi na objektima koji su Drawable mogao pozivati i metode od Printablešto ne bi imalo smisla.

15 godina
neaktivan
offline
Re: Java programiranje
Cartman93 kaže...

da li mi može netko objasniti smisao sučelja (interface)?

koliko sam ja skužio, sucelje je popis metoda koje neka klasa MORA implementirati. dakle, u sucelju se nista ne implementira, nikakav kod.

to znaci, imao ja sucelje ili ne, ja svejedno moram sve implementirati u klasama, i to u svim klasama koje implementiraju određeno sucelje jer se nikakav kod ne nasljeđuje.

i koji je onda smisao toga? ja mogu implementirati sve te metode i bez da koristim sucelje, tj. bez da me sucelje natjera na to, a ako mi neka metoda ne treba, onda je uopce i ne implementiram umjesto da radim neki dummy kod.

 

jel mi moze netko objasniti cemu u biti sluze ta sucelja i dati nekoliko konkretnih primjera gdje su sucelja potrebna?

 

U osnovi, sucelje predstavlja ugovor kojim se klasa obvezuje da ce implementirat sve sto sucelje trazi. 

Meni je draze na sucelje gledati kao "jednu vrsta pogleda" na neku klasu koja ga implementira. Da, kada se sucelje implementira, klasa mora dati implementaciju svih metoda koje sucelje trazi (upravo zato se kaze ugovor).

Smisao je da kad ti implementiras neko sucelje, kao sto si sam rekao, moras ponuditi sucelju metode kroz koje ce on "gledati" na klasu. Sucelje ne zanima kako ces ti to implementirati, to je na tebi, ali trazi od tebe da ispostujes 

dogovor na koji si se obvezao i ponudis sve sto trazi.

 

Evo primjer 

 

Recimo imas sucelje Readable i da ono sadrzi metode read(),readAll(), readNextLine() i mozda jos neke nije bitno. 

I recimo da imas klase Database i TextFile. I sada kada ti implementiras sucelje Readable, ti MORAS ponuditi navedene metode, i ti zapravo ostvarujes komunikaciju sa svih klasa koje implementiraju to sucelje.

I sad recimo jedan put se trebas spojiti na bazu podataka, drugi dan iz datoteka citati neke narudzbe. Ti kao korisnik samo trebas znati da su ti klase Readable, daju se citati. Znas sto klasa treba imati da bude readable, i 

tebe apsolutno ne zanima kako se podaci dobavljaju. 

 

Pravi primjer ti je sucelje List u samom Java Collection Frameworku. Sucelje List implementiraju dvije klase, ArrayList i LinkedList. Te dvije klase imaju skroz druge implementacije (ArrayList koristi interno polje za cuvanje elemenata, a LinkedList

koristi povezanu listu) znaci 2 skroz drukcije strukture podataka, ali tebe to ne zanima. Ti ces s listom raditi na isti nacin, oni nude JEDNAKO SUCELJE prema tebi kao korisniku tih klasa. U tom je poanta.

 

Meni je isto u pocetku bio problem shvatiti sucelja, pogotovo sto se obicno rade u sklopu nasljedjivanja. I to se dosta da izmjesati. Uvijek se probaj sjetiti ovoga:
Kada razred B nasljedjuje razred A, on je A. Kada razred B implementira sucelje I, on stvara novi pogled na samog sebe. 

Na primjer kada se rodi musko dijete, to dijete je SIN. Taj sin moze biti nogometas, moze biti otac, moze biti vozac auta, moze biti profesor. To bi bili pogledi na tu osobu, kako se ona predstavlja svijetu. 

 

EDIT: Kolega preduhitrio dok sam ja mozgao o dobrim primjerima :P 

Poruka je uređivana zadnji put pet 8.4.2016 18:30 (Neutral).
14 godina
offline
Re: Java programiranje
Cartman93 kaže...

da li mi može netko objasniti smisao sučelja (interface)?

koliko sam ja skužio, sucelje je popis metoda koje neka klasa MORA implementirati. dakle, u sucelju se nista ne implementira, nikakav kod.

to znaci, imao ja sucelje ili ne, ja svejedno moram sve implementirati u klasama, i to u svim klasama koje implementiraju određeno sucelje jer se nikakav kod ne nasljeđuje.

i koji je onda smisao toga? ja mogu implementirati sve te metode i bez da koristim sucelje, tj. bez da me sucelje natjera na to, a ako mi neka metoda ne treba, onda je uopce i ne implementiram umjesto da radim neki dummy kod.

 

jel mi moze netko objasniti cemu u biti sluze ta sucelja i dati nekoliko konkretnih primjera gdje su sucelja potrebna?

 Sto se "smisla" sucelja tice.. Zamisli da imas program koji se rasprostire kroz 10 paketa u projektu, u svakom paketu imas bar 5 .java datoteka i u svakoj datoteci minimalno 100 linija kôda. Ti to sve lijepo napises, i onda nakon nekog vremena dodje na red da tvoj kolega doda neku novu opciju u toj aplikaciji. Bit ce mu trilijun puta lakse se snac ako ima na "jednoj strani" klase, a na drugoj strani sucelja. I onda samo gleda koja klasa sto implementira, otidje na to sucelje, kaze, aha, mora imat to, to i to.. Slicna stvar sa nasljedjivanjem.

 

Od jave 8, sucelja vise ne moraju biti prazna. Mozes i navest default metodu koja moze imat nekakav kôd u sebi.

11 godina
neaktivan
offline
Java programiranje

glupost .... skuzio

Poruka je uređivana zadnji put uto 31.5.2016 21:11 (someguy).
 
0 0 hvala 0
8 godina
neaktivan
offline
Java programiranje
Ja imam neki problem sa zagradama nezeli mi upisati ovu zagradu- { -ali ovu hoce - } -

izbacuje mi ovo "Skip all breakpoints" kao neki hotkey ili nesto kako se to makne ?

hvalaa
Jos se ucim :D
Moj PC  
0 0 hvala 0
15 godina
odjavljen
offline
Re: Java programiranje

Vjerojatno pitaš za Eclipse. Obriši shortcut Ctrl + Alt + B

Ovaj forumaš je netolerantan prema osobama svih nacionalnosti, rasa i spolnog opredjeljenja te smatra da svaka osoba ima pravo biti ugnjetavana zbog svojih glupih mišljenja.
Nova poruka
E-mail:
Lozinka:
 
vrh stranice