Code:
public class MojaKlasa {
private String mojaPromenljiva;
public MojaKlasa() {
// ovde radim sve sto posten svet radi u konstruktoru
mojaPromenljiva = "Vajfert pivo, ohladjeno ! ";
}
private String uradiNesto() {
// evo radim nesto
return "ono sta sam uradio";
}
public static void main(String[] arguments) {
new MojaKlasa();
}
}
Ramirez:
Ja iz main() zelim da pozivam svoje dve metode bez da pravim objekat te klase... on mi kaze da metode moraju a budu static...
Logično da moraju biti static, jer je i main static, tj. poziva se bez instanciranja objekta klase.
Ramirez:
Konstruktor se ne poziva? Meni je sve ovo vrlo konfuzno... meni je logicno da kada pokrenem taj program jedan objekat tipa te klase bude napravljen. Tom prilikom po mojoj logici bi trebao da se pozove konstruktor te klase a zatim da pocne da se izvrsava main().
Konstruktor se ne poziva. Ti ga po želji možeš ( a i ne moraš ) pozvati iz main(). Dakle, biće pozvan samo main(), sve ostalo je na tebi.
Ramirez:
... Ono sto ja zelim je nesto sto je u C/C++ tako lako... pre main() deklarisem svoje funkcije i onda ih lepo pozivam bez da pravim neke objekte, a dve promenljive koje imam su globalne za taj program.
Ti si zapravo žrtva Mikrosoftove laži da je C# mešavina Jave i C++, a C# u stvari je 95% Java. Dakle, pre svega zaboravi termine "program", "globalne promenljive" i sve tome slično ...