[ BOOK @ 29.12.2003. 22:45 ] @
Neka imam ovakav method u mojoj klasi...

private int dff()
{
...
}

Moje pitanje je da li ima smisla definisanje takvog method-a? dff() je dakle private (ne moze se pozivati iz druge klase), ali i non-static (ne mogu ga pozvati iz nekog drugog metoda te klase)!
[ dejankr @ 30.12.2003. 10:53 ] @
Citat:
BOOK:
Neka imam ovakav method u mojoj klasi...

private int dff()
{
...
}

Moje pitanje je da li ima smisla definisanje takvog method-a? dff() je dakle private (ne moze se pozivati iz druge klase), ali i non-static (ne mogu ga pozvati iz nekog drugog metoda te klase)!


Pogrešno si shvatio pojam statičkih metoda. Statičke metode su one koje su definisane nad samom klasom a ne nad instancom klase. Tj, za pozivanje static metode ne moraš da imaš kreiranu instancu klase za razliku od non-static metode gde moraš imati kreiranu instancu.

Dakle, non-static metode se MOGU pozivati iz drugih non-static metoda, ili čak i iz static metoda u kojima je kreirana instanca te klase. Na primer:
Code:

public class NekaKlasa {
private int dff()
 {
   ...
 }

private void pr() {
 dff(); //poziv iz non-static metode
}
public static void main(String[] args) {
  new NekaKlasa().dff();  //poziv iz static metode - mora se instancirati klasa
}
}


Znači, private non-static metoda itekako ima smisla i koristi se u gotovo svakoj klasi...
[ BOOK @ 30.12.2003. 13:00 ] @
Hvala sa iscrpnom objašnjenju. Inače, znam ja da su static metode vezane za klasu, a ne za instancu klase, ali je moja greška što sam uvek pokušavao iz main-a (koji je static) da pozivam svoje private metode bez instanciranja klase kojoj pripadaju ti metodi.
[ tweeester @ 30.12.2003. 15:47 ] @
Tvoja greska je sasvim razumljiva jer u vecini knjiga mozes da nadjes ovakve primere:

Code:


public class Glavna {

   public static void main(String[] args) {

    Glavna instanca = new Glavna();

     instanca.radiPoso();

   }

    void radiPoso() {
          System.out.println("radim poso ...");
    }
}



Sto je blesavo jer glavna klasa nikad ne radi nista smisleno osim sto instancira neku klasu koja predstavlja tvoju aplikaciju ili slicno ali u knigama im je ovako najjednostavnije da napisu programce koje treba da ilustruje neki feature ...

Pozdrav