Oceń poprawność twierdzeń (Prawda/Fałsz)

0

Proszę o pomoc w wyborze prawidłowych twierdzień (Prawda/ Fałsz)

  1. Klasa może być rozszerzona przez interfejs** P**
  2. Klasa może być rozszerzona przez dwa różne interfejsy P
  3. Interface może posiadać atrybuty** P**
  4. Error jest rodzajem wyjątku ??
  5. W czasie wykonania programu w j. Java na stosie składowane są metody ze zmiennymi oraz wartościami prymitywnymi i wskaźnikami do obiektów **F**
    
  6. Wyjątki niesprawdzane nie muszą być deklarowane w sygnaturze, jeśli metoda je rzuca **P**
    
  7. Słowem kluczowym przy deklaracji wyjątku w sygnaturze metody jest throws. **P**
    
  8. Dziedziczenie nie może zmiejszyć widoczności atrybutów F
  9. Dziedziczenie nie może zmniejszać widoczności metod **F**
    
  10. Klonowanie głębokie może podwoić ilość obiektów na składzie P
  11. Klasa abstrakcyjna może zawierać metody abstrakcyjne tj z adnotacją abstract P
  12. Klasa zwykła nie może być rozszerzana przez klasę abstrakcyjną F
  13. Klasa abstrakcyjna może implementować wiele interfejsów P
  14. Error jest nadklasą klasy Exception ** F**
  15. W czasie wykonania programu w j. Java, stos wywołań metod jest niepusty P
  16. Typy rodzajowe zwiększają możliwości kompilatora sprawdzania poprawności metod F
  17. Jeden Aplet może mieć wielu słuchaczy zdarzeń P
  18. Implementacja maszyny wirtualnej Java wykonuje kod zródłowy języka Java F
  19. Klasa wewnętrzna może implementować wiele interfejsów F
  20. Jeśli rzucony wyjątek nie zostanie złapany przez zadną z metod na stosie, wtedy stos zostanie opróżniony F
  21. Przy kompilacji dla różnych parametrów klasy generycznej generowane są różne klasy. ??
  22. Słuchacz apletu jest konieczny do rejestracji zdarzeń P
  23. Jeśli metoda rzuca wyjątek i nie obsługuje go, to jest zdejmowana ze stosu P
  24. Implementacja typów generycznych w przypadku języka Java polega na bezpiecznym rzutowaniu P
1

Nie znam się na javie - ale wg mnie chyba żadna klasa nie może rozszerzać interfejsu - tylko go implementować. Jako rozszerzanie rozumiem, że chodzi o dziedziczenie.

1

1,2. Kwestia nomenklatury, bo czy implements X oznacza rozszerza interfejs czy też nie? Zgaduje że odpowiedź brzmi nie bo to pułapka językowa.
3. Nie moze, tym sie zresztą różni od klasy abstrakcyjnej
4. Co za problem sprawdzić? o_O public class Error extends Throwable { więc znów kwestia nomenklatury, czy uznajemy ze Throwable to rodzaj wyjątku czy nie, zgaduje ze nie bo to pułapka językowa
5. Nie wiem co to dla kogoś znaczy że "metody są składowane". Są tam ramki stosu dla kolejnych metod.
16. Chodzi o typy generyczne? Więc oczywiście tak, bo inaczej po co w ogóle by nam były?
19. Czemu niby nie?
20. Na stosie nie ma "metod" a ich ramki stosu, ale faktem jest że lecący w górę wyjątek powoduje zwijanie stosu i jego opróżnienie.
21. Nie, Java to nie C++. W Javie jest type erasure i typy generyczne istnieja tylko na etapie kompilacji.
23. Ramka rej metody jest usuwana ze stosu
24. Nie bardzo rozumiem co autor ma na myśli.

0
  • Interfejs nie może rozszerzać klasy. Klasa może implementować interfejs.
  • Error i Exception dziedziczą po Throwable, ale Error nie jest wyjątkiem i postępuje się z nim inaczej niż z wyjątkiem
  • typy prymitywne statyczne są trzymane na stosie, a obiekty i ich pola na stercie.

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