[ Príspevkov: 9 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Java, problem s objektovym pristupom

Registrovaný: 23.11.08
Príspevky: 187
Témy: 34 | 34
Bydlisko: IP: 209.85....
NapísalOffline : 20.03.2010 19:30 | Java, problem s objektovym pristupom

Ahojte, pracujem na projekte rezervacie leteniek, no neviem ako nastavit vlastnosti objektu z mainu..Mam triedu Osoba, z ktorej dedi trieda Cestujuci a Kapitan. Dalej mam triedu Lietadlo, Let a LetSpolocnost. Neviem ako mam nastavit vlasnosti Lietadla a Kapitana z mainu. Viete niekto pomoct? Robim v NetBeanse. Prikladam vybratu cast z koodov:

Main.java:
tu mi pise chybu, neviem co mam dat do fcie zriadLet(); ako nastavim tie dve vlastnosti lietadla,
kapitana, ako nastavim datum a neviem ani co mam dat namiesto pola cestujucich...
Kód:
package letisko;

public class Main {
    public static void main(String[] args) {
        LetSpolocnost Airlines = new LetSpolocnost();
        Airlines.zriadLet("sk","London", l, k, null, 32000, "zoxcv"); // ked spoznamkujem tento riadok nepise nikde ziadnu chybu
    }
}

Datum.java:
Kód:
package letisko;

public class Datum {
    private String rok;
    private String mesiac;
    private String den;
    private String hodina;
    private String minuta;
    //private int sekunda;

    public Datum(String vRok, String vMesiac, String vDen, String vHodina, String vMinuta) { // konstruktor
        rok = vRok;
        mesiac = vMesiac;
        den = vDen;
        hodina = vHodina;
        minuta = vMinuta;
    }
}

LetSpolocnost.java:
Kód:
package letisko;

public class LetSpolocnost {
    public Let[] lety;
    public Lietadlo[] lietadla;
    public Kapitan[] kapitani;
    public int pocetLetov = 0;

    public LetSpolocnost() {
        lety = new Let[100];
        lietadla = new Lietadlo[100];
        kapitani = new Kapitan[100];
    }

    public void getVsDestinacie() {
       
    }

    public void getLet() {  // zobrazi vsetky lety
       
    }

    public void getUrcityLet() {    // zobrazi vsetko o lete
       
    }

    public void vyhladajCestVoVsLetoch() {

    }

    // urci sa destinacia, typ lietadla, pocet miest, meno kapitana,
    public void zriadLet(String vKod, String vDest, Lietadlo vL, Kapitan vK, Datum vDatum, int vCena, Cestujuci[] vZoz) {
        lety[pocetLetov] = new Let(vKod, vDest, vL, vK, vDatum, vCena, vZoz);
        pocetLetov++;
    }

    public void zrusLet() { // urcity let

    }
}

Let.java:
Kód:
package letisko;

public class Let {
    private String kod;
    private String dest;
    private Lietadlo l;
    private Kapitan k;
    private Datum datum;
    private int cena;
    private Cestujuci[] zozCestujucich;

    public Let(String vKod, String vDest, Lietadlo vL, Kapitan vK, Datum vDatum, int vCena, Cestujuci[] vZoz) {
        kod = vKod;
        dest = vDest;
        l = vL;
        k = vK;
        cena = vCena;
        zozCestujucich = vZoz;
    }

    public Cestujuci[] getZoznamCestujucich() {
        return zozCestujucich;
    }

    public String getDest() {
        return dest;
    }

    public boolean vyhladajCestujuceho() {  // true/false ci je dany cestujuci v zozname
        return false;
    }

    public Cestujuci[] getABCZoznam(Cestujuci[] pole) { // vytriedi zoznam cestujucich
        return zozCestujucich;
    }

    public void urobRezervaciu() {  // pridava cestujuceho do zoznamu letu
       
    }

    public void zrusRezervaciu() {
       
    }
}

Lietadlo.java:
Kód:
package letisko;

public class Lietadlo {
    private String typ;
    private int kapacita;

    public Lietadlo(String vTyp, int vKapacita) {
        typ = vTyp;
        kapacita = vKapacita;
    }

    public String getTyp() {
        return typ;
    }

    public int getKapacita() {
        return kapacita;
    }

    public void setTyp(String vTyp) {
        typ = vTyp;
    }

    public void setKapacita(int vKapacita) {
        kapacita = vKapacita;
    }
}

Cestujuci.java:
Kód:
package letisko;

public class Cestujuci extends Osoba {  // dedi z triedy Osoba
    private String statPrisl;
    private String dest;

    public Cestujuci(String vMeno, String vPriezv, String vRC, String vStatPrisl, String vDest) {
        super(vMeno, vPriezv, vRC);
        statPrisl = vStatPrisl;
        dest = vDest;
    }

    public String getStatPrisl() {
        return statPrisl;
    }

    public String getDest() {
        return dest;
    }
}

Kapitan.java:
Kód:
package letisko;

public class Kapitan extends Osoba {    // dedi z triedy Osoba
    private int pocetNalietHodin;

    public Kapitan(String vMeno, String vPriezv, String vRC, int vPocetNalietHodin) {
        super(vMeno, vPriezv, vRC);
        pocetNalietHodin = vPocetNalietHodin;
    }

    public int getPocetNalietHodin() {
        return pocetNalietHodin;
    }
}

Osoba.java:
Kód:
package letisko;

public class Osoba {
    private String meno;
    private String priezv;
    private String rc;  // rodne cislo

    public Osoba(String vMeno, String vPriezv, String vRC) {
        meno = vMeno;
        priezv = vPriezv;
        rc = vRC;
    }

    public String getMeno() {
        return meno;
    }

    public String getPriezv() {
        return priezv;
    }

    public String getRC() {
        return rc;
    }

    @Override
    public String toString() {
        return meno + " " + priezv + "-" + rc;
    }
}


_________________
Tajna misia: Ignorovat dlzne a makcene.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 15.03.10
Prihlásený: 20.03.10
Príspevky: 4
Témy: 0 | 0
NapísalOffline : 20.03.2010 20:42 | Java, problem s objektovym pristupom

Akú chybu ti kompilátor vyhodil ? Na prvý pohľad to vyzerá, že tvoja funkcia zriadLet očakáva ako posledný argument pole cestujúcich nie reťazec.


Offline

Užívateľ
Užívateľ
Java, problem s objektovym pristupom

Registrovaný: 23.11.08
Príspevky: 187
Témy: 34 | 34
Bydlisko: IP: 209.85....
Napísal autor témyOffline : 20.03.2010 21:04 | Java, problem s objektovym pristupom

pisalo chybu: illegal start expression
ako tam dostanem pole cestujucich? takto?
Kód:
Lietadlo l = new Lietadlo("fdsa", 243);
Kapitan k = new Kapitan("meno", "priezvisko", "1212189", 2432);
Airlines.zriadLet("sk","London", l, k, null , 32000, Airlines.lety[0].getZoznamCestujucich());

tak nepise ziadnu chybu, no po spusteni to spadne error:Exception in thread "main" java.lang.NullPointerException. Ako tam dostanem datum?
Ale aj tak nechapem ako to sklbim s polom lietadiel, a s polom kapitanov, ktore su deklarovane v triede LetSpolocnost...ako sa to robi?


_________________
Tajna misia: Ignorovat dlzne a makcene.
Offline

Užívateľ
Užívateľ
Java, problem s objektovym pristupom

Registrovaný: 16.02.08
Prihlásený: 08.12.10
Príspevky: 235
Témy: 13 | 13
NapísalOffline : 20.03.2010 21:28 | Java, problem s objektovym pristupom

- Pis relevatne komentare. Komentere typu, toto je konstruktor, ze nieco dedi... To je hned jasne z kodu....

- 5. paramater (datum) zadavas ako null a hlasi Ti NullPointerException. Nie Ti to podozrive? Mozes si to aj odkrovat kde to spadne...

- datum sice priradis to letu cez konstruktor (metoda ziardLet mi nejako postrada zmysel) ale v konstruktore Let s datumom vobec nic nerobis... Jednoducho ho zabudnes.

- Spomen si, ako sa inicializuju argumenty (globalne premenne) triedy.

- pouzivas referenciu this.

- Skus sa este raz zamysliet na logikou navrhu (ak pozeram na tvoj nick, nemalo by ti to robit problem :)). Vidi sa mi, ze veci navrhujes zbytocne zlozito. Z tvojho vagneho popisu sa to zda byt jednoducha uloha.

-ak ma metoda 5 parametrov, tak to je uz vela. Podstatne sa znizuje prehliadnost.


_________________
Učet je neaktívny.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 15.03.10
Prihlásený: 20.03.10
Príspevky: 4
Témy: 0 | 0
NapísalOffline : 20.03.2010 21:40 | Java, problem s objektovym pristupom

povedal by som že ti to padá práve na Airlines.lety[0].getZoznamCestujucich() . Snažíš sa pristúpiť k objektu ktorý si ešte nevytvoril.


Offline

Užívateľ
Užívateľ
Java, problem s objektovym pristupom

Registrovaný: 23.11.08
Príspevky: 187
Témy: 34 | 34
Bydlisko: IP: 209.85....
Napísal autor témyOffline : 20.03.2010 21:41 | Java, problem s objektovym pristupom

Ked to odkrokujem, spadne to na metode zriadLet() v maine.
Som to skusal upravit:
Kód:
Airlines.zriadLet("sk","London", Airlines.lietadla[Airlines.pocetLetov], Airlines.kapitani[Airlines.pocetLetov], null , 32000, Airlines.lety[Airlines.pocetLetov].getZoznamCestujucich());
ale aj tak pri spusteni spadne java.lang.NullPointerException. Neviem ako dat datum...
Metoda zriadLet() je povinna zo zadania. Ano, ano konstruktor Let upraveny:
Kód:
    public Let(String vKod, String vDest, Lietadlo vL, Kapitan vK, Datum vDatum, int vCena, Cestujuci[] vZoz) {
        kod = vKod;
        dest = vDest;
        l = vL;
        k = vK;
        datum = vDatum;
        cena = vCena;
        zozCestujucich = vZoz;
    }

Ako sa inicializuju argumenty (globalne premenne) triedy? Myslis zapuzdrenie?
pouzivam referenciu this? to mam pouzit, ci ako si to myslel.
No neviem ako s tym polom.

ma3stro-> mozno mas pravdu, ale na zaciatku mainu vytvaram objekt Airlines, a tam sa zavola konstruktor v ktorom sa alokuje pole letov, pole lietadiel a pole kapitanov.


_________________
Tajna misia: Ignorovat dlzne a makcene.
Offline

Užívateľ
Užívateľ
Java, problem s objektovym pristupom

Registrovaný: 16.02.08
Prihlásený: 08.12.10
Príspevky: 235
Témy: 13 | 13
NapísalOffline : 20.03.2010 21:47 | Java, problem s objektovym pristupom

- prepac, preklep. Malo byt ze pouzivaj referenciu this. Jednak je to aj citatelnejsie a nemusis pisat cudne nazvy.

- boolean na inicializuje na false, cisleny typu na 0, referencie na null. Predpokladam, ze to bude ten dovod, nieco neinicializujes, tak sa to inicializuje na null.

-Ono jednak aj zadavas ako pamater null na mieste datumu, ale nic z s nim nerobis, teda ho zabudnes a na nom Ti nespadne.

-Odporucam zmazat vsetko a urobit navrh este raz. Nie je to dlha uloha a ovela viac sa to naucis aj to spravis ovela lepsie, ako keby si sa mal snazit toto nejako upravit...


_________________
Učet je neaktívny.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 15.03.10
Prihlásený: 20.03.10
Príspevky: 4
Témy: 0 | 0
NapísalOffline : 20.03.2010 21:51 | Java, problem s objektovym pristupom

áno pole inicializuješ, ale je prázdne a snažíš sa pristúpiť k prvému letu ( dajme tomu že vytváraš prvý let ), ale tento let pridáš do poľa až volaním metódy zriadLet. A taktiež sa prikláňam k názoru že by to chcelo zmeniť celkový návrh.


Offline

Užívateľ
Užívateľ
Java, problem s objektovym pristupom

Registrovaný: 23.11.08
Príspevky: 187
Témy: 34 | 34
Bydlisko: IP: 209.85....
Napísal autor témyOffline : 20.03.2010 21:58 | Java, problem s objektovym pristupom

No dobre, zmenit navrh, nemam s tym problem zacat odznova, ale co na tom zmenit?

taketo je zadanie:
Kód:
Ako OOP projekt vytvorte:

********************************************************
SYSTÉM NA REZERVÁCIU LETENIEK
********************************************************

Triedy:

------------------------------------------------------
LetSpolocnost
------------------------------------------------------
Let[] lety;
Lietadlo [] lietadla;
Kapitan [] kapitani;

zriadLet();
//urci sa destinacia, typ lietadla, pocet miest, meno kapitana,
getLet();
//zobrazi vsetky lety
getUrcityLet();
//zobrazi vsetko o lete
vyhladajCestVoVsLetoch();
getVsDestinacie();
zrusLet();
//urcity let

------------------------------------------------------
Let
------------------------------------------------------
String kod;
String dest;
Lietadlo l;
Kapitan k;
Date datum;
int cena;
Cestujuci [] zozCestujucich;

urobRezervaciu();
//pridava cestujuceho do zoznamu letu
zrusRezervaciu();
getZoznamCestujucich();
getDest();
vyhladajCestujuceho();
// true/false ci je dany cestujuci v zozname
getABCZoznam();
//vytriedi zoznam cestujucich

------------------------------------------------------
Lietadlo
------------------------------------------------------
String typ;
int kapacita;

getTyp();
getKapacita();
setTyp();
setKapacita();

------------------------------------------------------
Osoba
------------------------------------------------------
String meno;
String priezv;
String rc;

getMeno();
getPriezv();
getRC();
toString();

------------------------------------------------------
Cestujuci extends Osoba
------------------------------------------------------
+ statPrisl;
+ dest
+ getStatPrisl();
+ getDest();

------------------------------------------------------
Kapitan extends Osoba
------------------------------------------------------
+ pocetNalietHodin;
+ getPocetNalietHodin();

jedine ma napada zmenit konstruktory nejak...


_________________
Tajna misia: Ignorovat dlzne a makcene.
 [ Príspevkov: 9 ] 


Java, problem s objektovym pristupom



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

problem s pristupom k suborom

v Windows

2

350

12.01.2013 23:13

JanoF

V tomto fóre nie sú ďalšie neprečítané témy.

Windows Vista problem z pristupom

v Windows

0

422

02.01.2008 17:10

wolf14

V tomto fóre nie sú ďalšie neprečítané témy.

WIN 7-Problem s pristupom

v Windows

3

279

19.02.2014 18:17

simonKO

V tomto fóre nie sú ďalšie neprečítané témy.

Problém s prístupom k súborom

v Windows

1

494

27.02.2012 20:30

majky358

V tomto fóre nie sú ďalšie neprečítané témy.

webhosting s pristupom zvonka

v Hosting, servery a domény

1

711

04.03.2010 15:26

max-m

V tomto fóre nie sú ďalšie neprečítané témy.

Databaza z pristupom zvonku

v Databázy

5

780

21.05.2010 10:47

dartanan

V tomto fóre nie sú ďalšie neprečítané témy.

Databáza s vonkajším prístupom

v Databázy

0

745

02.02.2009 19:18

Unlink

V tomto fóre nie sú ďalšie neprečítané témy.

Rozdiel medzi Java Standard a Java EE

v Backend

1

991

02.04.2014 12:41

XOLOO

V tomto fóre nie sú ďalšie neprečítané témy.

dobre java navody a nova tema JAVA

[ Choď na stránku:Choď na stránku: 1, 2 ]

v Backend

35

5714

09.03.2009 17:14

tlacitko Enter

V tomto fóre nie sú ďalšie neprečítané témy.

Java JButton problém

v Backend

1

287

10.04.2013 10:58

FBerente

Táto téma je zamknutá, nemôžete posielať nové príspevky alebo odpovedať na staršie.

Minecraft - java problém

v Hry a herné konzoly

3

641

29.08.2012 0:42

jtbs

V tomto fóre nie sú ďalšie neprečítané témy.

Problém s nainštalovaním Java

v Ostatné programy

0

363

08.03.2017 22:25

MirThreeC

V tomto fóre nie sú ďalšie neprečítané témy.

Problem encoding JAVA MAIL

v Backend

2

623

18.03.2011 16:15

arnie16

V tomto fóre nie sú ďalšie neprečítané témy.

JAVA - PROBLEM s XOR-om

v Backend

8

785

07.10.2010 10:57

coldak

V tomto fóre nie sú ďalšie neprečítané témy.

Java problem so spustenim .jar

v Backend

2

956

30.01.2012 19:19

Logik

V tomto fóre nie sú ďalšie neprečítané témy.

problem so spustenim prog. jazyka java

v Backend

1

902

10.07.2007 19:06

tlacitko Enter



© 2005 - 2026 PCforum, edited by JanoF