Składnia java

0

Zamieszczę tutaj kilka pytań, które mam

1.Jeśli sprawdzamy czy "liczenie" nie jest puste , możemy to zapisać na 2 sposoby?

if(liczenie != "")

lub

if(liczenie != null)

czy oba są sobie równoważne

2

class nazwaException extends Exception 
{
       nazwaException(String komunikat)
		{
                super(komunikat);
        }
}

Czy takie sformułowanie wyjątku daje możliwość skorzystania potem z getmessage

catch(nazwaException e)
				{
                System.out.println("Blad: "+e.getMessage());
                }

czyli następnie wypisanie odpowiedniego wyjątku dla konkretnych wyrażeń?
dlaczego musi być wyżej napisane słowo super ? i w połączeniu z komunikat daje taką możliwość, proszę tutaj o wytłumaczenie n tego problemu.

  1. co oznacza
if(!(c[i]=='1')

jeśli w tablicy c i-ta liczba będzie różna od 1?

  1. podobne do 3.
return !liczby[n];

Prosiłby o dokładny opis mam swoje przypuszczenia dotyczące tego, lecz nie chciałbym się wprowadzić w błąd.

1
  1. Absolutnie nie są! Co więcej, oba zapewne są niepoprawne. Pierwsze sprawdza czy referencja na podany string jest równa referencji do "" co w większości przypadków będzie nieprawdą. Drugie sprawdza czy podana referencja jest pusta - nie wskazuje na żaden obiekt. Jedno z drugim nie ma nic wspólnego. A zapewne tak na prawdę chodziło o:
if(!("".equals(liczenie)))

(czemu nie liczenie.equals("")? żeby uniknąć problemu z liczenie==null)

  1. Tak, co zresztą mozesz sprawdzić... super() oznacza wywołanie konstruktora klasy nadrzędnej, w tym wypadku konstruktora Exception(String) którego argument jest właśnie tym co ci potem zwraca getMessage()

  2. Nie liczba tylko ZNAK! A warunek sprawdza czy i-ty znak w tablicy c nie jest znakiem '1'

  3. W Javie to chyba nie przejdzie o ile liczby[] nie są tablicą booleanów. C++ by sobie to zrzutował do booleana.

0

czyli w 1 zamiast tego napisanego wyżej co mam wystarczy zmienić na to if(!("".equals(liczenie))) i powinno być już wszystko dobrze?
w 2. w nawiasie super tutaj jest komunikat może być dowolne słowo czy musi być akurat komunikat
w 3 rozumiem
w 4 rzeczywiście chodzi o tablice booleanów, dokładniej program dotyczy sita eratostenesa. czyli również może przejść?

0
  1. Zależy co chcesz osiągnąć, ja przecież zgadywałem...
  2. Co ty ćpasz? W nawiasie od super() masz podać argumenty konstruktora klasy nadrzędnej. Może to byc cokolwiek. Może tych argumentów być wiele. Wszystko zalezy od klasy nadrzędnej...
  3. Czytając twoje posty mam wątpliwości...
  4. Nazwanie tablicy booleanów "liczby" to terroryzm... Oczywiście że "może przejść" w takim razie

1 użytkowników online, w tym zalogowanych: 0, gości: 1