| | |
| Stránka: 1 z 1
| [ Príspevkov: 9 ] | |
Autor | Správa |
---|
Registrovaný: 23.11.08 Príspevky: 187 Témy: 34 Bydlisko: IP: 209.85.... | Napísal Logik: 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. |
|
Registrovaný: 15.03.10 Prihlásený: 20.03.10 Príspevky: 4 Témy: 0 |
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.
|
|
Registrovaný: 23.11.08 Príspevky: 187 Témy: 34 Bydlisko: IP: 209.85.... | Napísal autor témy Logik: 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. |
|
Registrovaný: 16.02.08 Prihlásený: 08.12.10 Príspevky: 235 Témy: 13 | Napísal ado21: 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. |
|
Registrovaný: 15.03.10 Prihlásený: 20.03.10 Príspevky: 4 Témy: 0 |
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.
|
|
Registrovaný: 23.11.08 Príspevky: 187 Témy: 34 Bydlisko: IP: 209.85.... | Napísal autor témy Logik: 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. |
|
Registrovaný: 16.02.08 Prihlásený: 08.12.10 Príspevky: 235 Témy: 13 | Napísal ado21: 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. |
|
Registrovaný: 15.03.10 Prihlásený: 20.03.10 Príspevky: 4 Témy: 0 |
á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.
|
|
Registrovaný: 23.11.08 Príspevky: 187 Témy: 34 Bydlisko: IP: 209.85.... | Napísal autor témy Logik: 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. |
|
| Stránka: 1 z 1
| [ Príspevkov: 9 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| Problém s prístupom k súborom v Operačné systémy Microsoft | 1 | 388 | 27.02.2012 20:30 majky358 | | WIN 7-Problem s pristupom v Operačné systémy Microsoft | 3 | 209 | 19.02.2014 18:17 simonKO | | problem s pristupom k suborom v Operačné systémy Microsoft | 2 | 264 | 12.01.2013 23:13 JanoF | | Windows Vista problem z pristupom v Operačné systémy Microsoft | 0 | 355 | 02.01.2008 17:10 wolf14 | | Databaza z pristupom zvonku v Databázy | 5 | 695 | 21.05.2010 10:47 dartanan | | Databáza s vonkajším prístupom v Databázy | 0 | 675 | 02.02.2009 19:18 Unlink | | webhosting s pristupom zvonka v Webhosting a servery | 1 | 642 | 04.03.2010 15:26 max-m | | Rozdiel medzi Java Standard a Java EE v Assembler, C, C++, Pascal, Java | 1 | 832 | 02.04.2014 12:41 XOLOO | | dobre java navody a nova tema JAVA [ Choď na stránku: 1, 2 ] v Assembler, C, C++, Pascal, Java | 35 | 5416 | 09.03.2009 17:14 tlacitko Enter | | Minecraft - java problém v Počítačové hry | 3 | 566 | 29.08.2012 0:42 jtbs | | Java JButton problém v Assembler, C, C++, Pascal, Java | 1 | 213 | 10.04.2013 10:58 FBerente | | Problem encoding JAVA MAIL v Assembler, C, C++, Pascal, Java | 2 | 553 | 18.03.2011 16:15 arnie16 | | Problém s nainštalovaním Java v Ostatné programy | 0 | 291 | 08.03.2017 22:25 MirThreeC | | JAVA - PROBLEM s XOR-om v Assembler, C, C++, Pascal, Java | 8 | 676 | 07.10.2010 10:57 coldak | | Java problem so spustenim .jar v Assembler, C, C++, Pascal, Java | 2 | 881 | 30.01.2012 19:19 Logik | | JAVA-problem z nacitamin zo suboru v Assembler, C, C++, Pascal, Java | 3 | 396 | 06.05.2011 22:49 Davik |
| 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
|
|