Vezbam malo nasledjivanje i naidjem na ovaj primer iz knjige..Koliko sam ja ranije shvatio, kompajler trazi metodu main prvo u glavnoj public klasi, cije je ime isto kao i ime fajla.. medjutim, kad to pokusam sa kodom ispod, javalja mi se greska koja kaze da ne pronalazi main metodu u klasi Cistac (to kada je main metoda pod komentarom tj kad je izbacim iz programa, u suprotnom na izlaz izbaci samo rezultat za Cistac, za Deterdzent nista) Error: Main method not found in class Cistac, please define the main method as: public static void main(String[] args)..
Ispis na ekranu ( u knjizi):
Cistac razredi() sipaj() Deterdzent.ribaj() ribaj() zapeni()
Testiranje osnovne klase:
Cistac razredi() sipaj() ribaj()
Kada stavim klasu Cistac za public i promenim sam naziv fajla po njoj, a zatim pozovem klasu Deterdzent.main(args) program daje ispis na ekranu, naravno suprotnim redosledom. (Da li glavna public klasa mora da bude i osnovna) ?
E sad, po ovome, kompajler prvo obradi metodu main u klasi Deterdzent, a zatim pozivom Cistac.main(args); prelazi i na osnovnu klasu.. moje pitanje je da li su u kasnijim verzijama Jave promenili nesto ili ?
Hvala
Kod:
//Vezba/Deterdzent.java
class Cistac{
private String s="Cistac";
public void dodaj(String a) {
s+=a;
}
public void razredi() {
dodaj(" razredi()");
}
public void sipaj() {
dodaj(" sipaj()");
}
public void ribaj() {
dodaj(" ribaj()");
}
public String toString() {
return s;
}
/*public static void main(String args[]) {
Cistac x=new Cistac();
x.razredi(); x.sipaj(); x.ribaj();
System.out.println(x);
}
*/
}
public class Deterdzent extends Cistac{
//Promeni metodu
public void ribaj() {
dodaj(" Deterdzent.ribaj()");
super.ribaj();
}
//Dodaj novu metodu klasi
public void zapeni() {
dodaj(" zapeni()");
}
//Testira novu klasu
public static void main(String args[]) {
Deterdzent x=new Deterdzent();
x.razredi();
x.sipaj();
x.ribaj();
x.zapeni();
System.out.println(x);
// System.out.println("Testiranje osnovne klase");
// Cistac.main(args);
}
}
Ispis na ekranu ( u knjizi):
Cistac razredi() sipaj() Deterdzent.ribaj() ribaj() zapeni()
Testiranje osnovne klase:
Cistac razredi() sipaj() ribaj()
Kada stavim klasu Cistac za public i promenim sam naziv fajla po njoj, a zatim pozovem klasu Deterdzent.main(args) program daje ispis na ekranu, naravno suprotnim redosledom. (Da li glavna public klasa mora da bude i osnovna) ?
E sad, po ovome, kompajler prvo obradi metodu main u klasi Deterdzent, a zatim pozivom Cistac.main(args); prelazi i na osnovnu klasu.. moje pitanje je da li su u kasnijim verzijama Jave promenili nesto ili ?
Hvala
Poslednja izmena: