Moduł 7 Flashcards
Określ cel i zastosowanie interfejsów.
- stanowią zbiór wymagań dotyczących klas, które będą go stosować.
- wyrażają sposób funkcjonalności klas bez określania w jaki sposób zostanie to uzyskane.
- W ich skład wchodzą pole i metody
Czy specyfikacja języka Java narzuca ograniczenia na liczbę interfejsów, jakie może
implementować tworzona klasa?
Możliwa jest implementacja dowolnej liczby interfejsów przez pojedynczą klasę co pozwala na realizację tzw.
dziedziczenia wielobazowego.
Czy możliwe jest tworzenie interfejsów pochodnych?
Tak dziedziczenie interfejsów jest dozwolone
W jakim przypadku klasa implementująca interfejs nie musi tworzyć wszystkich metod
występujących w tym interfejsie?
…
Które z poniższych deklaracji są błędne (KlasaA, KlasaB, KlasaC oznaczają nazwy klas, natomiast InterfejsA, InterfejsB, InterfejsC to nazwy interfejsów)? class KlasaA extends KlasaB class KlasaA implements InterfejsA class KlasaC extends KlasaA, KlasaB class KlasaB implements InterfejsB, InterfejsC interface InterfejsA implements InterfejsB interface InterfejsB extends InterfaceA interface InterfejsC extends InterfaceA, InterfaceB
…
Odszukaj w dokumentacji, jakie interfejsy implementuje klasa String. Jakie nagłówki metod
zdefiniowane zostały w tych interfejsach?
…
Czy poprawny jest poniższy kod?
public interface Tester {
}
Tak
Podaj definicję klasy abstrakcyjnej.
- wykorzystywane w procesie modelowania
- zawierają ogólne cechy i zachowania obiektów
Wskaż różnice między klasą abstrakcyjną, a interfejsem
Klasa abstrakcyjna
-wykorzystywane w procesie modelowania
-zawierają ogólne cechy i zachowania obiektów
Interfejsy
-stanowią zbiór wymagań dotyczących klas, które będą go stosować.
-wyrażają sposób funkcjonalności klas bez określania w jaki sposób zostanie to uzyskane.
-W ich skład wchodzą pole i metody
Poniższy kod programu zawiera definicję klasy abstrakcyjnej wraz z jej składowymi. Wskaż
ewentualne błędy.
public abstract class Zwierze {
private String nazwa;
public abstract void je() { System.out.println ("Aktualnie je."); } public abstract void idzie(); public abstract void pije(); }
…
Czy możliwe jest utworzenie obiektów na bazie klasy abstrakcyjnej?
Nie, klasa abstrakcyjna nie może stanowić podstawy dla utworzenia obiektu.
Czy nazwa klasy, która dziedziczy z klasy abstrakcyjnej i nie dostarcza implementacji metod
zawartych w nadklasie musi zostać poprzedzona identyfikatorem abstract?
…
Wskaż błąd w poniższym kodzie programu.
final class A {
private String nazwa;
public String pobierzNazwe() { return this.nazwa; } } class B extends A { private int liczba;
public int pobierzLiczbe() {
return liczba;
}
}
…
Jakie własności posiadają metody finalne?
Klasy, z których nie jest możliwe dziedziczenie nazywane są klasami finalnymi, co wyrażane jest za
pomocą słowa kluczowego final.
public final class Procesor { // ciało klasy (składowe klasy) }
Czym są klasy anonimowe? Wskaż ich zastosowanie.
Szczególnym przypadkiem klas wewnętrznych są klasy anonimowe (nie posiadające nazwy). lasy anonimowe często wykorzystywane są do obsługi zdarzeń w programowaniu aplikacji korzystających z graficznego
interfejsu użytkownika.
- Jakie słowo kluczowe informuje, że klasa implementuje jakiś interfejs?
odp: implements
Czy poniższy kod jest poprawny? Is following code correct?
interface Testing {
public int add(int a, int b);
public String toString();
}
class Test implements Testing { public int add(int a, int b) { return a+b; } }
tak
Czy poprawny jest poniższy kod?
public interface Tester {
}
tak
Czy jest możliwe tworzenie interfejsów pochodnych?
tak
Które z poniższych deklaracji są błędne (KlasaA, KlasaB, KlasaC oznaczają nazwy klas, natomiast InterfejsA, InterfejsB,
InterfejsC to nazwy interfejsów)?
odp: class KlasaC extends KlasaA, KlasaB interface InterfejsC extends InterfaceA, InterfaceB
Poniższy kod programu zawiera definicję klasy abstrakcyjnej wraz z jej składowymi. Czy jest ona poprawna?
public abstract class Animal { private String name;
public abstract void eat() {
System.out.println (“Animal is eating”);
}
public abstract void go();
public abstract void drink();
nie
Czy możliwe jest utworzenie obiektów na bazie klasy abstrakcyjnej?
nie
Czy nazwa klasy, która dziedziczy z klasy abstrakcyjnej i nie dostarcza implementacji metod zawartych w nadklasie musi zostać poprzedzona identyfikatorem abstract?
nie
Które z poniższych klas są klasami finalnymi? (skorzystaj z dokumentacji).
string
Czy poniższy kod programu jest poprawny?. final class A { private String nazwa; public String pobierzNazwe() { return this.nazwa; } } class B extends A { private int liczba; public int pobierzLiczbe() { return liczba; } }
nie
sychro
synchro