Sem II (Program I) - N4 Flashcards
Was versteht man unter einer polymorphen Methode und welche Vorteile hat Polymorphie?
Полиморфный метод может иметь разные реализации в разных классах, используя одно и то же имя метода. Полиморфизм обеспечивает гибкость и расширяемость структуры программы, изменяя поведение во время выполнения.
Was bedeutet das Überladen einer Methode und warum ist es nützlich?
Перегрузка метода означает, что несколько методов в одном контексте имеют одинаковое имя, но разные списки параметров. Это улучшает ясность и гибкость, позволяя выполнять похожие операции с разными параметрами.
Was ist Subtyping und wie wird es bei Vererbung verwendet?
Подтипизация - принцип, при котором производный класс (дочерний) рассматривается как экземпляр базового класса. Позволяет использовать полиморфное поведение и последовательное использование объектов разных подклассов.
Wie können geerbte private Methoden der Elternklasse in einer Kindklasse aufgerufen werden?
Унаследованные частные методы родительского класса недоступны напрямую в дочернем классе. Дочерний класс может получить доступ к нужной функциональности через публичные или защищенные методы родительского класса.
Welche Klasse steht in Java an der Spitze der Vererbungshierarchie?
In Java ist die Klasse Object die oberste Klasse in der Vererbungshierarchie. Alle anderen Klassen erben direkt oder indirekt von Object.
Was unterscheidet eine checked Exception von einer unchecked Exception?
Eine checked Exception muss explizit im Code durch throws angekündigt und mit try-catch abgefangen werden. Unchecked Exceptions hingegen müssen nicht zwingend behandelt werden und führen bei fehlender Behandlung zum Programmabbruch.
Wie wird eine eigene Exception-Klasse in Java definiert?
Eine eigene Exception-Klasse kann durch das Erweitern der Klasse Exception (für checked Exceptions) oder RuntimeException (für unchecked Exceptions) erstellt werden. Meist wird nur der Konstruktor überschrieben.
// Eigene Exception-Klasse definieren
public class MyCustomException extends Exception {
// Standardkonstruktor public MyCustomException() { super("Eine benutzerdefinierte Ausnahme ist aufgetreten!"); } // Konstruktor mit benutzerdefinierter Fehlermeldung public MyCustomException(String message) { super(message); } // Konstruktor mit Fehlermeldung und Ursache public MyCustomException(String message, Throwable cause) { super(message, cause); } }
Was ist der Wert von v und u nach folgender Anweisung?
~~~
int u = 1;
int v = u++;
~~~
Nach dieser Anweisung hat u den Wert 2 und v den Wert 1, da der Post-Inkrementoperator u++ den Wert erst nach der Zuweisung erhöht.
Wozu dienen die Parameter der main-Methode in Java?
Die Parameter der main-Methode (String[] args) ermöglichen es, dem Programm beim Start Kommandozeilenargumente zu übergeben, die dessen Verhalten beeinflussen können.
Wie wird eine Vererbungshierarchie strukturiert und welche Vorteile bietet sie?
Eine Vererbungshierarchie organisiert Klassen von allgemeinen zu spezifischen Typen, was den Code modular und wartbar macht, da Eigenschaften und Methoden von allgemeinen Klassen an spezialisierte Klassen weitergegeben werden können.
Является ли производный класс в Java специализацией или обобщением базового класса?
Производный класс является специализацией базового класса, так как он предоставляет дополнительные функции или свойства, которые более специфичны, чем базовый класс.
Что такое Error в иерархии исключений Java и чем он отличается от Exception?
Error обозначает серьезные ошибки (например, OutOfMemoryError), которые могут привести к завершению программы и не должны обрабатываться программным кодом. Exceptions, напротив, обычно менее критичны и могут быть перехвачены обработкой ошибок.
Когда следует определять собственный класс исключений и какие преимущества это дает?
Собственный класс исключений следует определять, когда не существует подходящего предопределенного исключения. Собственные классы исключений могут обеспечить специфические сообщения об ошибках и более детальную обработку ошибок.
Какова цель метода printStackTrace() в классе исключений?
printStackTrace() выводит список всех вызовов методов, которые привели к исключению. Это помогает в отладке и показывает, где в коде возникло исключение.
Когда следует реализовывать собственный класс исключений?
Собственный класс исключений следует реализовывать, когда возникает специфическая ошибочная ситуация, которая не может быть достаточно охвачена существующими классами исключений.
Что такое проверяемые исключения?
Должны быть объявлены в заголовке метода и обрабатываться, например, IOException.
Что такое непроверяемыми исключения?
Возникают во время выполнения и не обязаны быть объявлены, например, NullPointerException.
Löst eine eigene Exception-Klasse eine checked oder unchecked Exception aus?
Das hängt davon ab, ob die Klasse von RuntimeException (unchecked) oder Exception (checked) erbt.
Что происходит, если исключение не объявлено в заголовке метода с throws?
В случае проверяемого исключения это приведет к ошибке компиляции, так как способ обработки исключения не определен.
В чем разница между robusten и Defensiver стилем программирования?
robusten стиль: Предотвращение ошибок путем всесторонней проверки.
Defensiver стиль: Предположение ошибок и соответствующие защитные меры с помощью try-catch-блоков.