Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Značenje rezervisane reči static

[es] :: Java :: Značenje rezervisane reči static

[ Pregleda: 4899 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

stevan_nk
Stevan Bogosavljevic
Niksic,Crna Gora

Član broj: 275514
Poruke: 212
*.crnagora.net.

Sajt: stevyhacker.wordpress.com


+4 Profil

icon Značenje rezervisane reči static17.05.2011. u 20:00 - pre 157 meseci
Počeo sam da pišem rewrite mojih Python programčića u Javu ali sam se spetljao oko static-a i nonstatic-a.U knjizi Misliti na Javi sam čitao o značenju reči static ali mi nije baš najjasnije.
U programu sam definisao void Uvod() funkciju ali kad sam je pozvao u main metodi piše " Cannot make static reference to nonstatic method " . O čemu se ovdje radi , to sam rešio tako što sam ispred imena metode dopisao static i eclipse mi je dodao throws InterruptedException i onda radi ali... u drugoj metodi koristim Scanner i za njega nemože da se koristi static i onda mi više ništa nije jasno . Da li mi neko može pomoći da se izvučem iz ovih g***** ?
 
Odgovor na temu

losm1

Član broj: 253305
Poruke: 30
*.dynamic.sbb.rs.



+2 Profil

icon Re: Značenje rezervisane reči static17.05.2011. u 20:38 - pre 157 meseci
Static -> odnosi se na klasu
Code:

Object.Uvod(); // Nema operatora new tj. kreiranja novog objekta na heap-u

Non-static -> odnosi se na instancu klase tj. objekat
Code:

Object o = new Object(); // Prvo se kreira objekat da bi se putem reference moglo pristupiti metodu
o.Uvod();


Ukratko, da bi resio ovaj konkretan problem kreiraj instancu klase pre nego sto pozoves Uvod(). (Kapiram da je u pitanju Main.class)

Code:

public class Main {

public static void main (String[] args) {

Main m = new Main();
m.Uvod();

}


public void Uvod() {

System.out.println("Ja sam metod instance!");

}


}
 
Odgovor na temu

biske86
Ivan Biševac
Zubin Potok

Član broj: 62435
Poruke: 979
*.dynamic.isp.telekom.rs.

Sajt: biske.rs


+39 Profil

icon Re: Značenje rezervisane reči static17.05.2011. u 23:27 - pre 157 meseci
static u javi znači da to polje (ili metoda) ne pripadaju objektu već klasi. Npr. kao što reče @losm1 ne moraš da koristiš new Klasa() tj. ne moraš da praviš novi objekat.
Tipičan primer su metode klase Math. Na primer ne moraš da kreiraš objekat Math da bi izvršio kvadratni koren već možeš da radiš sa klasom. Evo konkretnog primera:
Code:

import java.lang.Math;
public Test {
    public static void main(String[] args){
        int a = 4;
        b = Math.pow(a, 2);
        
        System.out.println(b);        
    }
}

Poenta cele priče je da nisi morao da kucaš Math math = new Math(); math.pow(4,2). Znači nije ti trebao objekat već si mogao direkt na klasi da pozoveš metodu pow().

Slična stvar je i sa poljima. Za nešto više pogledaj sledeći link:
http://download.oracle.com/jav...ial/java/javaOO/classvars.html
 
Odgovor na temu

stevan_nk
Stevan Bogosavljevic
Niksic,Crna Gora

Član broj: 275514
Poruke: 212
*.crnagora.net.

Sajt: stevyhacker.wordpress.com


+4 Profil

icon Re: Značenje rezervisane reči static18.05.2011. u 07:22 - pre 157 meseci
Hvala na odgovorima , sad mi je jasnije :)
 
Odgovor na temu

[es] :: Java :: Značenje rezervisane reči static

[ Pregleda: 4899 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.