Java program - pomoc.

poruka: 40
|
čitano: 14.305
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
14 godina
offline
Re: Java program - pomoc.
cale kaže...

Pojam Abstract class.Shvacam kako funkcionira. No ne vidim neke velike prednosti koristenja,kao i apstraktne metode.Jedino sto mi sada ovako pada na pamet,da kada radim novu klasu koja je produzetak Apstraktne klase,da me podsjeti koje metode moram imati i definirati.Zanima me da znam da li da se zadrzavam na tom poglavlju ili da idem na neke druge "bitnije stvari".

Dosta su korisne kada kreiras puno klasa koje su prakticki iste jer ne moras raditi isti posao vise puta.

Ako radis one labose koje sam ti poslao, to ti je vidljivo dosta dobro kroz labos di radit "football managera"

Sve ovisi na sta naletis kasnije u zivotu, mozda ce ti biti apsolutno beskorisne, a mozda ces ih koristiti skoro svaki dan.

 

Ako se mene pita jako su korisne, jedina stvar je da moras razmisljati unaprijed kad programiras di ju mozes uvaliti da ti olaksa posao.

Poruka je uređivana zadnji put uto 15.11.2016 19:04 (CroNk3r).
13 godina
offline
Re: Java program - pomoc.
cale kaže...

Pojam Abstract class.Shvacam kako funkcionira. No ne vidim neke velike prednosti koristenja,kao i apstraktne metode.Jedino sto mi sada ovako pada na pamet,da kada radim novu klasu koja je produzetak Apstraktne klase,da me podsjeti koje metode moram imati i definirati.Zanima me da znam da li da se zadrzavam na tom poglavlju ili da idem na neke druge "bitnije stvari".

Prilično bitna stvar jer ne da te podsjeća da moraš imati, nego nasljeđivanjem takve klase ti jamčiš da tvoja izvedena klasa sadrži te metode. Dobro za polimorfizam - imaš neku metodu koja prima referencu na životinju, a ti joj daješ objekte pse, mačke, štakore... i svaka ta klasa mora imati primjerice metodu makeSound() koju onda implementira na vlastiti način. Ne samo to, nego osiguravaš da nitko ne može instancirati osnovnu klasu, korisno ako nema smisla da postoje objekti. Slična je stvar oko definiranja takvih ugovora i sa sučeljima, ali različita je namjena i mogućnosti koje ti stoje na raspolaganju. Sučelje definira ugovor o ponašanju, a apstraktna klasa može sadržavati i podatke i definicije metoda koje su zajedničke svim izvedenim klasama, dok sučelje ima samo deklaracije metoda koje si dužan implementirati. Opet, u Javi možeš naslijediti samo jednu klasu, dok sučelja možeš implementirati i više.

15 godina
neaktivan
offline
Java program - pomoc.

 

Uglavnom trebao bi nastaviti program koji je zapocet:

 

 

public class Inner_class {

static class TreeNode{
TreeNode left;
TreeNode right;
String data;
}



public static void main(String[] args){

TreeNode node = null;
node = insert(node, "Jasna");
node = insert(node, "Ana");
node = insert(node, "Ivana");
node = insert(node, "Anamarija");
node = insert(node, "Vesna");
node = insert(node, "Kristina");
System.out.println("Writing tree inorder:");
writeTree(node);
node = reverseTreeOrder(node);
System.out.println("Writing reversed tree inorder:");
writeTree(node);
int size = sizeOfTree(node);
System.out.println("Number of nodes in tree is "+size+".");
boolean found = containsData(node, "Vesna");
System.out.println("Searched element is found: "+found);

 

OVAKO JE ZADATAK ZADAN.OD MENE SE TRAZI DA NAPISEM FUNKCIJE KOJE SU GORE PODCRTANE



}

static boolean containsData(TreeNode treerot,String data){--------Ovaj dio koda mi stvara problem
String name="";
char[] letters=treerot.data.toCharArray();

for(int i=0;i<treerot.data.length();++i){

if (letters[i]!=','){
name+=letters[i];-----------Dodaje sva slova sve do prvog zareza,npr.(Ana,).Dobit cu name=Ana i to cu onda usporedivati s proslijedenim argumentom String data.
}
else{
if(name.matches(data)){--------------------U ovom dijelu koda,ako stavim IF(name==data),uvjet ne prolazi,no ako ga stavim s funkcijom matches(),uvjet prolazi.
return true;}
name="";}}
return false;

}
static void writeTree(TreeNode treerot){

print(treerot.data);

}

static int sizeOfTree(TreeNode treerot){
char [] letters=treerot.data.toCharArray();
int count=0;
for(char x:letters){
if(x==','){
++count;
}
}
return count+1;
}
static TreeNode insert(TreeNode treerot,String data){
if (treerot==null){
treerot=new TreeNode();
treerot.data=data;
return treerot;}

treerot.data+=","+data;
return treerot;

}

static TreeNode reverseTreeOrder(TreeNode treerot){
int first_count=0;
char[] letters=treerot.data.toCharArray();
for (char x:letters){
if (x==','){
++first_count;
}

}


int size_of=treerot.data.length();
int comma_count=0;
int temp_comma_count=size_of;
String reverse_order="";
for(int first=0;first<first_count+1;++first){
for(int second=0;second<size_of;++second){
if (letters[second]==','&& second<temp_comma_count){
comma_count=second;}}
temp_comma_count=comma_count;
comma_count=0;
if(temp_comma_count==0){
temp_comma_count=-1;
reverse_order+=treerot.data.substring(temp_comma_count+1, size_of);}
else{
reverse_order+=treerot.data.substring(temp_comma_count+1, size_of)+',';}
size_of=temp_comma_count;}



treerot.data=reverse_order;

return treerot;
}

}

Poruka je uređivana zadnji put pet 18.11.2016 15:05 (cale).
 
0 0 hvala 0
14 godina
offline
Java program - pomoc.

Ov je zapravo jako jednostavno, ono sto tebe muci je ja mislim nepoznavanje struktura podataka:

 

 

Prodi ove video tutoriale s razumjevanjem i ne bi trebao imati problema.

Mozes i preskociti na Tree i to obraditi pa rjesiti zadatak i nakon toga savladas strukture podataka.

Takoder i sortiranje prodi kroz neko vrijeme, dosta je korisno.

Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
Java program - pomoc.

pitanje u vezi Map-a.

 

Zanima me na koji nacin mogu upisati elemente key/value odmah pri deklaraciji mape,da ne moram stalno koristiti funkciju put();

Nesto tipa kao kod pythona:

dictionary={"test":1};

 

 

 
0 0 hvala 0
16 godina
neaktivan
offline
Re: Java program - pomoc.
cale kaže...

pitanje u vezi Map-a.

 

Zanima me na koji nacin mogu upisati elemente key/value odmah pri deklaraciji mape,da ne moram stalno koristiti funkciju put();

Nesto tipa kao kod pythona:

dictionary={"test":1};

Ne. Ako pogledas dokumentaciju vidjet ces da ne postoji konstruktor koji bi takvo nesto radio.

Trebalo je nesto takvo doci u Javi 8, ali nije, tako da nije moguce. Ostaje ti napraviti sam nesto, ovdje mozes vidjeti par prijedloga.

 

Ili ako imas vec listu, mozes napraviti nesto ovako:

List<Item> list;
Map<Key,Item> map =newHashMap<Key,Item>();
for(Item i : list) map.put(i.getKey(),i);

 

Dakle, samo okines jednu for petlju. Drugo mi nista ne pada na pamet.

Perhaps today IS a good day to die. PREPARE FOR RAMMING SPEED!
11 godina
neaktivan
offline
Re: Java program - pomoc.
Arto kaže...
cale kaže...

Pojam Abstract class.Shvacam kako funkcionira. No ne vidim neke velike prednosti koristenja,kao i apstraktne metode.Jedino sto mi sada ovako pada na pamet,da kada radim novu klasu koja je produzetak Apstraktne klase,da me podsjeti koje metode moram imati i definirati.Zanima me da znam da li da se zadrzavam na tom poglavlju ili da idem na neke druge "bitnije stvari".

Prilično bitna stvar jer ne da te podsjeća da moraš imati, nego nasljeđivanjem takve klase ti jamčiš da tvoja izvedena klasa sadrži te metode. Dobro za polimorfizam - imaš neku metodu koja prima referencu na životinju, a ti joj daješ objekte pse, mačke, štakore... i svaka ta klasa mora imati primjerice metodu makeSound() koju onda implementira na vlastiti način.

Ovo je tipičan primjer kada umjesto apstraktne klase treba koristiti interface. Ako (kad) se program proširi klasama koje isto mogu prozvoditi zvuk (imaju metodu makeSound) , ali nisu životinje (npr. Vodopad, Klavir ili Grom) sustav više ne drži vodu bez refaktorizacije, ili proglašavanja Klavira podvrstom Životinje.

13 godina
offline
Re: Java program - pomoc.
Bobobo-bo Bo-bobo kaže...
Arto kaže...
cale kaže...

Pojam Abstract class.Shvacam kako funkcionira. No ne vidim neke velike prednosti koristenja,kao i apstraktne metode.Jedino sto mi sada ovako pada na pamet,da kada radim novu klasu koja je produzetak Apstraktne klase,da me podsjeti koje metode moram imati i definirati.Zanima me da znam da li da se zadrzavam na tom poglavlju ili da idem na neke druge "bitnije stvari".

Prilično bitna stvar jer ne da te podsjeća da moraš imati, nego nasljeđivanjem takve klase ti jamčiš da tvoja izvedena klasa sadrži te metode. Dobro za polimorfizam - imaš neku metodu koja prima referencu na životinju, a ti joj daješ objekte pse, mačke, štakore... i svaka ta klasa mora imati primjerice metodu makeSound() koju onda implementira na vlastiti način.

Ovo je tipičan primjer kada umjesto apstraktne klase treba koristiti interface. Ako (kad) se program proširi klasama koje isto mogu prozvoditi zvuk (imaju metodu makeSound) , ali nisu životinje (npr. Vodopad, Klavir ili Grom) sustav više ne drži vodu bez refaktorizacije, ili proglašavanja Klavira podvrstom Životinje.

 Istina, s obzirom da je riječ samo o ponašanju, slažem se da mi primjer nije dobar i da je ovdje nužno koristiti interface.

15 godina
neaktivan
offline
Java program - pomoc.

knjiga iz koje ucim mi je na engleskom i tesko mi shvatiti generics i zasto su "losi" odnosno negativne strane genericsa.Spominje se pojam erasure. Sad koliko sam ja shvatio problem kod genericsa je kad napises:

 

public <A> void test(A objekt){}

 

-ja sad ne mogu dohvatiti ostale funkcije ovog objekta,ako sam dobro shvatio on ovaj A tretira kao "Object".

 

-ako napravim:

public <A extends Test> void test( A objekt){}----na ovakav nacin sam si opet suzio opseg objekata koji su mi dozvoljeni staviti.

 

Zanima me da li se na to odnosi kada se spominje pojam "erasure"?

 
1 0 hvala 0
3 godine
neaktivan
offline
Java program - pomoc.

Ima mozda neko cupicevu skriptu da bi htio poslat na email, ili neku koja je također dobra za Javu

 
0 0 hvala 0
Nova poruka
E-mail:
Lozinka:
 
vrh stranice