Elektroda.pl
Elektroda.pl
X
Hotair
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Java - Praktyczny kurs Java. ćwiczenia do samodzielnego wykonania

bono1994 25 Paź 2013 11:45 3546 23
  • #1 25 Paź 2013 11:45
    bono1994
    Poziom 6  

    Witam!
    Mój problem polega na tym, że nie rozumiem treści zadania. Korzystam z książki: Praktyczny kurs Java
    Treść zadania: Zmień kod klasy Main w taki sposób, aby sprawdzane było również to czy wywołanie metody ustawElement zakończyło się sukcesem.


    Kod: java5
    Zaloguj się, aby zobaczyć kod


    Kod: java5
    Zaloguj się, aby zobaczyć kod

    0 23
  • HotAir
  • #2 25 Paź 2013 12:10
    Sparrowhawk
    Poziom 21  

    Ale tu nie ma nic niezrozumiałego w tym poleceniu. Przyjrzyj się, co się dzieje po wystąpieniu metody pobierzElement().

    0
  • HotAir
  • #3 25 Paź 2013 12:22
    bono1994
    Poziom 6  

    To inaczej zadam pytanie.
    Kiedy wywołanie metody kończy się sukcesem ?
    Bo według mojej dotychczasowej wiedzy wtedy kiedy kompilator nie wyrzuci błędu.

    0
  • Pomocny post
    #4 25 Paź 2013 12:55
    mi14chal
    Poziom 27  

    Sprawdzasz dokładnie tak samo jak przy metodzie pobierzElement:

    Kod: java
    Zaloguj się, aby zobaczyć kod

    0
  • Pomocny post
    #5 25 Paź 2013 15:08
    Sparrowhawk
    Poziom 21  

    bono1994 napisał:
    Kiedy wywołanie metody kończy się sukcesem ?
    Bo według mojej dotychczasowej wiedzy wtedy kiedy kompilator nie wyrzuci błędu.

    Niestety się mylisz. Kompilator nie sprawdza, czy wywołanie metody kończy się sukcesem. Kompilator np. w Java czy C++ sprawdzi poprawność typów, poprawność składni języka, ale np.
    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    dla powyższej metody kompilator nie zgłosi błędu, a czy kiedykolwiek zakończy się ona sukcesem?

    0
  • #6 27 Paź 2013 10:57
    bono1994
    Poziom 6  

    Kolejny problem z zadaniem. Jak mogę zapisać przy zwracaniu liczby, że ma ona być nieujemna. Chodzi mi o to, aby został zgłoszony wyjątek w przypadku ujemnego wyniku.
    Napisałem klasę wyjątku dziedziczącą z Exception.


    Kod: java5
    Zaloguj się, aby zobaczyć kod


    Oraz klasę:

    Kod: java5
    Zaloguj się, aby zobaczyć kod

    0
  • #7 27 Paź 2013 11:15
    mi14chal
    Poziom 27  

    Trochę źle to napisałeś powinno być tak choć dawno w Javie nie kodziłem:

    Kod: java
    Zaloguj się, aby zobaczyć kod


    No i w metodzie main robisz coś takiego:
    Kod: java
    Zaloguj się, aby zobaczyć kod

    0
  • #8 27 Paź 2013 12:51
    bono1994
    Poziom 6  

    Doszedłem metodą prób i błedów, że, dziedziczyć i zgłaszać własne wyjątki można bezproblemowo z klas takich klas jak np. ArithmeticException.

    Dlaczego jeśli moja klasa dziedziczyła z Exception to kompilator wyrzucał mi błąd:
    unreported exception NegativeValueException; must be caught or declared to be thrown ?

    0
  • #9 27 Paź 2013 13:08
    mi14chal
    Poziom 27  

    Pokaż cały kod.

    0
  • #10 27 Paź 2013 13:27
    bono1994
    Poziom 6  

    Kod: java
    Zaloguj się, aby zobaczyć kod


    Kod: java
    Zaloguj się, aby zobaczyć kod



    Jeżeli jest taka wersja jak wyżej kompilator wyrzuca błąd.
    Natomiast jeżeli zmodyfikuję klasę wyjątku, jest ok.


    Kod: java
    Zaloguj się, aby zobaczyć kod

    0
  • #11 27 Paź 2013 13:40
    mi14chal
    Poziom 27  

    A gdzie jest blok try catch? Zobacz na mój post wyżej jak to powinno wyglądać.

    0
  • #12 27 Paź 2013 13:49
    bono1994
    Poziom 6  

    Hmmm, bo starałem się robić zgodnie z wcześniejszym przykładem w książce.
    I tak jak pisałem wcześniej po modyfikacji klasy NegativeValueException, program działa bez problemu. Chciałbym tylko wiedzieć dlaczego tak jest. Później zabawię się z wstawieniem try i catch.

    0
  • #13 27 Paź 2013 14:04
    mi14chal
    Poziom 27  

    Tylko że jak funkcja wyrzuca wyjątek to musisz go obsłużyć przy pomocy try i catch.

    0
  • #14 27 Paź 2013 18:13
    bono1994
    Poziom 6  

    Teraz poprawiłem i dalej, póki klasa mojego wyjątku dziedziczy z ArithmeticException to wszystko jest ok, a kiedy tylko zmienie na Exception to nie działa :(
    Mógłby ktoś wytłumaczyć dlaczego tak jest?

    Kod: java
    Zaloguj się, aby zobaczyć kod


    Kod: java
    Zaloguj się, aby zobaczyć kod

    0
  • Pomocny post
    #15 27 Paź 2013 19:26
    Sparrowhawk
    Poziom 21  

    Spróbuj tak:

    Kod: java
    Zaloguj się, aby zobaczyć kod

    0
  • #16 30 Paź 2013 18:09
    bono1994
    Poziom 6  

    Mam klasę A i klasę wewnętrzną B, oraz klasę dziedziczącą z A Extended A.
    Na czym polega różnica zapisu w klasie Extended A ?

    Kod: java
    Zaloguj się, aby zobaczyć kod


    Kod: java
    Zaloguj się, aby zobaczyć kod


    Kod: java
    Zaloguj się, aby zobaczyć kod

    0
  • #17 31 Paź 2013 16:16
    bono1994
    Poziom 6  

    W zadaniu należy napisać klasę pochodną od BufferedReader. W tej klasie ma znaleźć się metoda getInt, która ma odczytywać wartość liczby całkowitej wpisaną z klawiatury komputera.

    Napisałem kod i proszę o pomoc. Gdzie są błędy ?

    Kod: java
    Zaloguj się, aby zobaczyć kod

    0
  • #18 31 Paź 2013 16:35
    mi14chal
    Poziom 27  

    Nie robi się dla każdej linijki osobnego bloku try catch. Poza tym void nic nie zwraca zmień typ funkcji na int.

    0
  • #19 31 Paź 2013 19:35
    bono1994
    Poziom 6  

    Zmieniłem, ale mimo wszystko nie działa. Tamten return, miał jedynie kończyć działanie programu, a nie zwracać jakąkolwiek wartość, ale zmieniłem to na int, zwracającego 0.

    Kod: java
    Zaloguj się, aby zobaczyć kod

    0
  • Pomocny post
    #20 31 Paź 2013 21:59
    23844
    Użytkownik usunął konto  
  • #21 31 Paź 2013 22:39
    bono1994
    Poziom 6  

    A jakaś opinia na temat Kompendium programisty wydanym przez Oracle ?
    Bo planuje się wziąć za tą książkę w najbliższym czasie.

    0
  • #22 31 Paź 2013 23:07
    23844
    Użytkownik usunął konto  
  • #23 31 Paź 2013 23:13
    bono1994
    Poziom 6  

    Mam dostęp do obu i nie muszę żadnej kupować :D Z tym, że Thinking in java III edycja, a Kompendium Programisty chyba VIII. Bardzo dużo zostało dodane do javy od czasu III edycji ?

    0
  • #24 01 Lis 2013 08:20
    23844
    Użytkownik usunął konto