• wacki4  
    Wydział: W-8 IZ
    Rok studiów: 2

    zobacz profil
    szybka wiadomość
  • 0
  • cytuj |

  • ma ktoś może zrobione zadanie czwarte i mógłby wspomóc klasą Spis.. mam problem przy jej stwożeniu ciągle sypie mi błędami i nie mam zielonego pojęcia czemu. mogę udostępnić jeśli ktoś chętny do szukania błędu, lub jak wyżej napisałem - przyjmę gotową klasę żeby sobie zobaczyć jak rozwiązać to co u mnie sypie błędami.
    _________________
    ...kobiety to zło :]
    d41d8cd98f00b204e9800998ecf8427e
  • wacki4  
    Wydział: W-8 IZ
    Rok studiów: 2

    zobacz profil
    szybka wiadomość
  • 0
  • cytuj |

  • wczesniej stworzona klasa osoba i student i pracownik wszystko chodzi jak powinno schody zaczynają się przy:
    Cytat:
    Zdefiniować klasę Spis, w której prywatnymi polami są:
    Osoba tab[ ] – tablica 10 osób,
    int n – aktualna ilość zapisanych elementów w tablicy
    Zdefiniować konstruktor oraz metody potrzebne do wykonania następujących operacji,
    które umieścić w statycznej metodzie main:
    - wczytać naprzemiennie dane kilku studentów i kilku pracowników,
    - wyświetlić grupę pracowników oraz osobno grupę studentów,

    a tu kod klasy spis błąd zaznaczony:

    Konstruktor:
    Kod:
        Spis() {
            Osoba tab[] = new Osoba [10];
            for(int i=0; i<tab.length; i++)
                if(i%2==0) tab[i]= new Student();
                else tab[i]= new Pracownik();
            n=tab.length;
        }


    Metoda którą chce użyć na stworzonym obiekcie przez konstruktor Spis():
    Kod:
        void showAll(){
            System.out.println("Pracownicy:");
            for(int i=0;i<tab.length;i++) //tu nastepuje błąd
                if(tab[i] instanceof Pracownik)
                    ((Pracownik)tab[i]).wyswietlPracownika();
            System.out.println("__________________________");
            System.out.println("Studenci:");
            for(int i=0;i<tab.length;i++)
                if(tab[i] instanceof Student)
                    ((Student)tab[i]).wyswietlStudenta();
        }


    Kod błędu: java.lang.NullPointerException;

    zdaje mi sie ze poprostu źle odwołuje się i nie wiem konkretnie jak to zrobić, gdy wkleje kod showAll() do konstruktora to chodzi, gdy próbuje to wywołać ppm myszki na stworzonym obiekcie to błąd jak wyżej.
    _________________
    ...kobiety to zło :]
    d41d8cd98f00b204e9800998ecf8427e
  • Juzef  
    Hm
    Wydział: W-8 IZ
    Rok studiów: 1

    zobacz profil
    szybka wiadomość
  • 0
  • cytuj |

  • Na szybko obserwacja niezbyt javowym okiem: przy wypełnianiu tablicy obiektami w konstruktorze klasy Spis bardzo możliwe, że tablica powstaje pusta, lub w każdym razie jest z nią coś nie tak, a to przez użycie w warunku pętli "tab.length" - nie jestem do końca pewien, czy ta składowa klasy oznacza liczbę elementów, na ile zadeklarowano rozmiar tablicy, nawet jeśli są one null'ami, czy też może ilość aktualnie istniejących obiektów. Jeśli ten drugi wariant, to problem ma prawo powstać.
    Aby sprawdzić tę moją słabą hipotezę starczy chyba zamienić tam owo "tab.length" na te 10 i się okaże.
    d41d8cd98f00b204e9800998ecf8427e
  • 0
  • cytuj |

  • Spis() {
    tab[] = new Osoba [10];
    for(int i=0; i<tab.length; i++)
    if(i%2==0) tab[i]= new Student();
    else tab[i]= new Pracownik();
    n=tab.length;
    }

    Teraz powinno być lepiej.
    U ciebie tab było obiektem lokalnym.
    d41d8cd98f00b204e9800998ecf8427e
  • wacki4  
    Wydział: W-8 IZ
    Rok studiów: 2

    zobacz profil
    szybka wiadomość
  • 0
  • cytuj |

  • Raramir, z twoim kodem nawet nie kompiluje się.
    Juzef, tab.length działa i tablica jakby jest tworzona bo mogę odrazu po utworzeniu wyswietlic jej elementy i się zgadzają. gdy zmieniam tab.length przy metodzie którą później wywołuje na obiekcie ten błąd pojawia się przy kolejnym wywołaniu tab.

    tez mam bardzo niejawowe oko :P ktoś tu ma ratajkompilator wbudowany w głowie?
    _________________
    ...kobiety to zło :]
    d41d8cd98f00b204e9800998ecf8427e
  • Maniek89  
    coder
    Wydział: W-8 IZ
    Rok studiów: 3

    zobacz profil
    szybka wiadomość
  • 0
  • cytuj |

  • moim okiem to w konstruktorze Spis nie moze byc deklaracji tablicy, ponieważ po wykonaniu sie konstruktora tablica przestanie istnieć a zatem potem jak sie odwołujesz to sie odwołujesz do czegos co nie istnieje
    _________________
    Gdyby budowlańcy tak budowali budynki, jak informatycy piszą swoje programy, to jeden dzięcioł załatwiłby całą cywilizację.
    d41d8cd98f00b204e9800998ecf8427e
  • wacki4  
    Wydział: W-8 IZ
    Rok studiów: 2

    zobacz profil
    szybka wiadomość
  • 0
  • cytuj |

  • gdy robię:
    Kod:
            Osoba tab1=new Spis(n);

    Cytat:
    incompatible types - found Spis but expected Osoba
    jak to ominąć?
    _________________
    ...kobiety to zło :]
    d41d8cd98f00b204e9800998ecf8427e
  • Maniek89  
    coder
    Wydział: W-8 IZ
    Rok studiów: 3

    zobacz profil
    szybka wiadomość
  • 0
  • cytuj |

  • no bo wywołujesz konstruktor klasy Spis, a obiekt tworyzsz klasy Osoba wiec i konstruktor musi byc tej Klasy, zatem powinno byc Osoba tab1 = new Osoba(n), i nawet jesli klasa Spis dziedziczy po klasie Osoba to musisz pamiętać, że nie dziedziczy się konstruktorów.
    _________________
    Gdyby budowlańcy tak budowali budynki, jak informatycy piszą swoje programy, to jeden dzięcioł załatwiłby całą cywilizację.
    d41d8cd98f00b204e9800998ecf8427e
  • wacki4  
    Wydział: W-8 IZ
    Rok studiów: 2

    zobacz profil
    szybka wiadomość
  • 0
  • cytuj |

  • Maniek89, czyli rozumiem tak ze konstruktor spis jest mi po h. potrzebny tak naprawdę? i poprostu musze to co w spisie wywołać w mainie najlepiej ?
    _________________
    ...kobiety to zło :]
    d41d8cd98f00b204e9800998ecf8427e
  • Maniek89  
    coder
    Wydział: W-8 IZ
    Rok studiów: 3

    zobacz profil
    szybka wiadomość
  • 0
  • cytuj |

  • nie no konstruktor ten jest Ci potrzebny, tylko ze jesli chcesz z niego korzystac to musisz zrobic taki sam konstruktor w klasie Osoba, bo nie mozesz go dziedziczyć.
    _________________
    Gdyby budowlańcy tak budowali budynki, jak informatycy piszą swoje programy, to jeden dzięcioł załatwiłby całą cywilizację.
    d41d8cd98f00b204e9800998ecf8427e
  • wacki4  
    Wydział: W-8 IZ
    Rok studiów: 2

    zobacz profil
    szybka wiadomość
  • 0
  • cytuj |

  • jestem chyba javoodporny bo kompletnie nie kminie ocb :P
    _________________
    ...kobiety to zło :]
    d41d8cd98f00b204e9800998ecf8427e
  • Maniek89  
    coder
    Wydział: W-8 IZ
    Rok studiów: 3

    zobacz profil
    szybka wiadomość
  • 0
  • cytuj |

  • wiesz co, ja prawdopodobnie jak do jutra wyzdrowieje i znajde czas zrobie to zadanie i wrzuce Ci gotowy kod, to sobie go przeanalizujesz i znajdziesz błąd:)
    _________________
    Gdyby budowlańcy tak budowali budynki, jak informatycy piszą swoje programy, to jeden dzięcioł załatwiłby całą cywilizację.
    d41d8cd98f00b204e9800998ecf8427e
  • 0
  • cytuj |

  • wacki4 napisał/a:
    gdy robię:
    Kod:
            Osoba tab1=new Spis(n);

    Cytat:
    incompatible types - found Spis but expected Osoba
    jak to ominąć?


    Rzutowaniem?
    d41d8cd98f00b204e9800998ecf8427e
  • wacki4  
    Wydział: W-8 IZ
    Rok studiów: 2

    zobacz profil
    szybka wiadomość
  • 0
  • cytuj |

  • Szefu1989,
    Cytat:
    incompatible types - found Spis[] but expected Osoba


    podludek,
    Kod:
    Osoba tab1=new (Osoba)Spis[n];
    Cytat:
    <identifier> expected
    _________________
    ...kobiety to zło :]
    d41d8cd98f00b204e9800998ecf8427e
  • Maniek89  
    coder
    Wydział: W-8 IZ
    Rok studiów: 3

    zobacz profil
    szybka wiadomość
  • 0
  • cytuj |

  • tak jak obiecałem wrzucam to co udalo mi sie stworzyc, zapewne są tam jakies błedy gdyz w trakcie wracalem do klas i cos w nich poprawialem, ale raczej z pobieznych testow wynika ze wszystko jest ok, bede wdzieczny za zauwazone błedy:) no wiec podaje linki

    Klasa Osoba:

    http://3paste.com/s/18r

    Klasa Student:

    http://3paste.com/s/19r

    Klasa Pracownik:

    http://3paste.com/s/20r

    Klasa Spis:

    http://3paste.com/s/21r

    powodzenia:) i czekam na uwagi:)
    _________________
    Gdyby budowlańcy tak budowali budynki, jak informatycy piszą swoje programy, to jeden dzięcioł załatwiłby całą cywilizację.
    d41d8cd98f00b204e9800998ecf8427e
  • ateemka  
    Wydział: W-8 IZ
    Rok studiów: 4

    zobacz profil
    szybka wiadomość
  • 0
  • cytuj |

  • a nie powinno byc w studencie:

    Kod:
    public boolean przydzielStypendium(double prog)

    {

    return (obliczSrednia()>=prog)

    }


    ??

    ah, i w toStringach klas podrzędnych warto się odwoływać do toStringa klasy nadrzędnej, a nie pisać trzy razy "nazwisko" itp :P
    d41d8cd98f00b204e9800998ecf8427e
  • Maniek89  
    coder
    Wydział: W-8 IZ
    Rok studiów: 3

    zobacz profil
    szybka wiadomość
  • 0
  • cytuj |

  • no to chyba juz kwestia interpretacji, moim zdaniem funkcja przydziel stypendium powinna sprwadzac czy srednia dla studenta przekracza próg i wtedy ustawiac pole stypendium na true:) a co do drugiej uwagi to w sumie racja:) poprawie to jak znajde chwilke:)
    _________________
    Gdyby budowlańcy tak budowali budynki, jak informatycy piszą swoje programy, to jeden dzięcioł załatwiłby całą cywilizację.
    d41d8cd98f00b204e9800998ecf8427e
  • wacki4  
    Wydział: W-8 IZ
    Rok studiów: 2

    zobacz profil
    szybka wiadomość
  • 0
  • cytuj |

  • Maniek89, następnym razem jak możesz to weź to wszystko spakuj w jednego rara a nie sie rozdrabniasz z tak małymi plikami ;)

    dzięki za materiały.

    [ Dodano: 2008-12-09, 18:03 ]
    aaa. nie zobaczylem jak to wygląda.. ok nie było tego z pakowaniem w rara xD
    _________________
    ...kobiety to zło :]
    d41d8cd98f00b204e9800998ecf8427e
  • Maniek89  
    coder
    Wydział: W-8 IZ
    Rok studiów: 3

    zobacz profil
    szybka wiadomość
  • 0
  • cytuj |

  • ok, wrzucilem juz z poprawionymi błędami w kodzie i dodałem komentarze,
    tutaj macie link http://3paste.com/s/24r do klasy Spis, gdyż tamtej nie dalo sie wyedytowac z blizej nieokreślonych powodów. Pozostałe linki są sprawne i prowadza do juz poprawionych kodów. No to tyle:) pozdrawiam.

    P.S. w miare możliwosci postaram sie robic te zadania na laborki w miare wczesnie tak zeby wszyscy mogli z nich korzystać. Pozdro
    _________________
    Gdyby budowlańcy tak budowali budynki, jak informatycy piszą swoje programy, to jeden dzięcioł załatwiłby całą cywilizację.
    d41d8cd98f00b204e9800998ecf8427e
  • Pawelku  
    Too Fast Too Crazy
    Wydział: W-8 IZ
    Rok studiów: 1

    zobacz profil
    szybka wiadomość
  • 0
  • cytuj |

  • Hej! Ja za pomoga pani Suszko zrobilem Studenta troche inaczej :
    http://3paste.com/s/111
    ale niestety zawsze mi wychodzi ze niema stypendium. czy ktos moze mi powiedzic gdzie mam blad?
    _________________
    Nadaje sie do wszystko oproc programowania :D
    d41d8cd98f00b204e9800998ecf8427e
  • Maniek89  
    coder
    Wydział: W-8 IZ
    Rok studiów: 3

    zobacz profil
    szybka wiadomość
  • 0
  • cytuj |

  • no ale probowales stworzyc obiekt tej klasy i uzyc metody przydziel stypendium? powinno dzialac
    _________________
    Gdyby budowlańcy tak budowali budynki, jak informatycy piszą swoje programy, to jeden dzięcioł załatwiłby całą cywilizację.
    d41d8cd98f00b204e9800998ecf8427e
  • Pawelku  
    Too Fast Too Crazy
    Wydział: W-8 IZ
    Rok studiów: 1

    zobacz profil
    szybka wiadomość
  • 0
  • cytuj |

  • dziala ;)
    _________________
    Nadaje sie do wszystko oproc programowania :D
    d41d8cd98f00b204e9800998ecf8427e

Powered by phpBB modified by Przemo © 2003 phpBB Group. Then, after many years modified again, this time by Piotrek © 2014
Strona wygenerowana w 30,7ms. Zapytań do SQL: 17