Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 2 odgovora
  • 3.533 pregleda

Najnovija ↓

Banalan problem u C# 22.05.2005. u 19:36 · pre 261 mesec #1
Postoji klasa u kojoj se nalaze dve promenljive i dve metode... i naravno main()... ja ovu klasu ne koristim (znaci nista nasledjivanje, nista pravljenje objekata njenog tipa), ona je tu samo zato sto C# kaze da ona mora da postoji... Ja iz main() zelim da pozivam svoje dve metode bez da pravim objekat te klase... on mi kaze da metode moraju a budu static... ok nema problema... sada ja metode mogu da pozovem ali...

Gde i kako da inicijalizujem svoje dve promenljive? Konstruktor se ne poziva? Meni je sve ovo vrlo konfuzno... ako ja imam klasu unutar koje postoji konstruktor i main()... 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().

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.

Ja ovaj problem mogu da resim tako sto cu te metode i promenljive staviti u jednu klasu a main() u drugu... i onda cu u main() napraviti jedan objekat prve klase... ali mi to zvuci toliko glupo...
Re: Banalan problem u C# 23.05.2005. u 00:58 · pre 261 mesec #2
Main je (mora biti) staticka funkcija i kao takva ne pripada nijednoj instanci klase vec je na neki nacin "usluga" klase i kao takva moze biti pozvana bez instanciranja ijednog objekta te klase (bice da ti malo nedostaju osnove OOP-a, procesljaj to malo...).
E sad, u Frameworku postoji nesto sto se zove staticki konstruktor i njegova namena je da unutar njega inicijalizujes staticke promenljive clanice klase (sto mozes uraditi i inline...). Inicijalizuj te tvoje promenljive u statickom konstruktoru ili inline i koristi ih u statickim funkcijama...
Nemoj zaboraviti da cpp i nije pravi OO jezik (a koji i jeste... ;)) i nemoj da povlacis velike paralele izmedju ova dva...
Potpis
If it's a girl then they're gonna call it Sigourney, after an actress. If it's a boy, then they're gonna call it Rodney, after Dave!
Re: Banalan problem u C# 23.05.2005. u 08:51 · pre 261 mesec #3
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 ...

Potpis
OTPOR blokadi ulica, OTPOR blokiranom Beogradu, OTPOR blokiranoj Srbiji
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme