Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ 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
Bydlisko: IP: 209.85....
Príspevok NapísalOffline : 20.03.2010 19:30

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
Príspevok NapísalOffline : 20.03.2010 20:42

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
Bydlisko: IP: 209.85....
Príspevok Napísal autor témyOffline : 20.03.2010 21:04

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
Príspevok NapísalOffline : 20.03.2010 21:28

- 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
Príspevok NapísalOffline : 20.03.2010 21:40

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
Bydlisko: IP: 209.85....
Príspevok Napísal autor témyOffline : 20.03.2010 21:41

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
Príspevok NapísalOffline : 20.03.2010 21:47

- 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
Príspevok NapísalOffline : 20.03.2010 21:51

á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
Bydlisko: IP: 209.85....
Príspevok Napísal autor témyOffline : 20.03.2010 21:58

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.
Odpovedať na tému [ Príspevkov: 9 ] 


Podobné témy

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

v Operačné systémy Microsoft

1

388

27.02.2012 20:30

majky358 Zobrazenie posledných príspevkov

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

v Operačné systémy Microsoft

3

209

19.02.2014 18:17

simonKO Zobrazenie posledných príspevkov

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

v Operačné systémy Microsoft

2

264

12.01.2013 23:13

JanoF Zobrazenie posledných príspevkov

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

v Operačné systémy Microsoft

0

355

02.01.2008 17:10

wolf14 Zobrazenie posledných príspevkov

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

v Databázy

5

695

21.05.2010 10:47

dartanan Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Databáza s vonkajším prístupom

v Databázy

0

675

02.02.2009 19:18

Unlink Zobrazenie posledných príspevkov

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

v Webhosting a servery

1

642

04.03.2010 15:26

max-m Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Rozdiel medzi Java Standard a Java EE

v Assembler, C, C++, Pascal, Java

1

832

02.04.2014 12:41

XOLOO Zobrazenie posledných príspevkov

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 Assembler, C, C++, Pascal, Java

35

5416

09.03.2009 17:14

tlacitko Enter Zobrazenie posledných príspevkov

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

v Počítačové hry

3

566

29.08.2012 0:42

jtbs Zobrazenie posledných príspevkov

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

v Assembler, C, C++, Pascal, Java

1

213

10.04.2013 10:58

FBerente Zobrazenie posledných príspevkov

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

v Assembler, C, C++, Pascal, Java

2

553

18.03.2011 16:15

arnie16 Zobrazenie posledných príspevkov

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

v Ostatné programy

0

291

08.03.2017 22:25

MirThreeC Zobrazenie posledných príspevkov

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

v Assembler, C, C++, Pascal, Java

8

676

07.10.2010 10:57

coldak Zobrazenie posledných príspevkov

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

v Assembler, C, C++, Pascal, Java

2

881

30.01.2012 19:19

Logik Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. JAVA-problem z nacitamin zo suboru

v Assembler, C, C++, Pascal, Java

3

396

06.05.2011 22:49

Davik Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra