Technischer Projektleiter
Java Developer Interview FAQ, Teil 3: Häufige Fragen im Vorstellungsgespräch für Junior Java Entwickler
In diesem Teil der Serie fahren wir mit den häufig gestellten Fragen fort, die in der 1. Runde des Vorstellungsgesprächs für die Stelle eines Java Entwickler Junior auftauchen können.
Siehe auch andere Artikel aus der Interview-Serie für Java-Entwickler an:
- Java Entwickler Junior Interview Teil 1
- Java Entwickler Junior Interview Teil 2
- Java Entwickler Junior Interview Teil 4
Vererbung ist ein wichtiges Konzept in Java. Erklären Sie das Prinzip der Vererbung.
Vererbung (inheritance) in Java ist ein Konzept, das die Erstellung neuer Klassen auf der Grundlage bestehender Klassen ermöglicht. Diese Eigenschaft ermöglicht es, Eigenschaften und Methoden einer Klasse mit anderen Klassen zu teilen. Die Klasse, von der sie geerbt wird, wirdOberklasse genannt, und die Klasse, die sie erbt,Unterklasse.
Die untergeordnete Klasse erbt alle Mitgliedsvariablen und Methoden der übergeordneten Klasse. Auf diese Weise können wir den Code wiederverwenden und eine Hierarchie von Klassen erstellen, in der jede Klasse ihre eigenen Methoden und Variablen, aber auch geerbte Eigenschaften von der übergeordneten Klasse haben kann.
Die Vererbung in Java wird mit dem Schlüsselwort extends angewendet. Bei der Deklaration einer Unterklasse müssen wir die Oberklasse angeben, von der geerbt wird. Zum Beispiel:
public class PodradenaTrieda extends NadradenaTrieda {
// kód podradenej triedy
Vererbung ermöglicht Polymorphismus, d.h. ein Objekt eines untergeordneten Klassentyps kann als Objekt eines übergeordneten Klassentyps verwendet werden. Dies vereinfacht den Code und verbessert die Flexibilität des Programms.
Vererbung ermöglicht die Erstellung komplexer Klassenhierarchien, die die Grundlage für die Erstellung von effizientem und modularem Code in Java sind.
Was ist Polymorphismus? Nenne beide Formen und erkläre den Unterschied zwischen ihnen.
Polymorphismus in Java ist ein Konzept, das die Verwendung eines einzigen Namens für verschiedene Arten von Daten oder Klassen ermöglicht. Dieses Konzept ermöglicht es uns, mit verschiedenen Klassen zu arbeiten, die durch Vererbung miteinander verbunden werden können.
In Java können wir Polymorphismus auf zwei Arten erreichen: durch Methodenüberschreibung (overriding) und durch Methodenüberladung (overloading).
Methodenüberschreibung (overriding):
Das Überschreiben bezieht sich auf Methoden, die denselben Namen, dieselben Parameter und denselben Rückgabetyp in der Oberklasse und der Unterklasse haben. Wenn eine Methode in der Unterklasse überschrieben wird, ersetzt sie die Methode aus der Oberklasse und die neue Implementierung wird aufgerufen. Dies wird als Compile-Time-Polymorphismus bezeichnet.
Methodenüberladung (Overloading):
Diese Art von Polymorphismus wird durch Vererbung und Methodenüberschreibung erreicht. Wenn wir eine Klasse haben, die von einer anderen Klasse erbt, können wir die Methode der Elternklasse in der Kindklasse außer Kraft setzen. Ein Objekt des Typs Kindklasse kann als Objekt des Typs Elternklasse verwendet werden. Java wählt die richtige Methode anhand des aktuellen Objekttyps aus, nicht anhand des Variablentyps. Dies ist der so genannte Laufzeit-Polymorphismus.
Polymorphismus ist ein nützliches Konzept, denn es ermöglicht uns, universellen Code zu schreiben, der mit verschiedenen Objekttypen arbeiten kann, was bei der objektorientierten Programmierung in Java wichtig ist.
Was ist die Bedeutung der Kapselung (encapsulation) von Klassen in Java?
Die Kapselung (encapsulation) in Java ist ein Konzept, das es ermöglicht, die interne Implementierung einer Klasse zu verbergen und den Zugriff auf ihre Attribute und Methoden nur über definierte Schnittstellen bereitzustellen. Auf diese Weise kann eine größere Sicherheit und Kontrolle über die Klassen erreicht werden.
Dies wird durch Zugriffsmodifikatoren (Access Modifiers) und Get-Set-Methoden (Getters and Setters) erreicht. Zugriffsmodifikatoren bestimmen, welche Teile der Klasse von anderen Teilen des Programms aus sichtbar sind. Typische Zugriffsmodifikatoren sind:
öffentlich – von überall im Programm sichtbar,
privat – nur innerhalb der Klasse sichtbar,
geschützt – sichtbar innerhalb der angegebenen Klasse und ihrer Unterklassen,
standardmäßig (kein Zugriffsmodifikator angegeben): – sichtbar innerhalb des Pakets der Klasse.
Um auf Attribute einer Klasse zuzugreifen, die als privat deklariert sind, verwenden wir get-set-Methoden. Get-set-Methoden werden verwendet, um den Wert eines Attributs zu erhalten (get) und den Wert eines Attributs zu setzen (set). Auf diese Weise können wir den Zugriff auf Attribute kontrollieren und ungültige Werte verhindern.
Die Kapselung ist ein wichtiges Konzept in der objektorientierten Programmierung, denn sie ermöglicht eine bessere Kontrolle, Sicherheit und Flexibilität bei der Arbeit mit Klassen und ihren Attributen.
Was ist die Rolle des Konstruktors in Java?
In Java ist ein Konstruktor (constructor) eine spezielle Methode in einer Klasse, die aufgerufen wird, wenn ein neues Objekt von dieser Klasse erstellt wird. Der Konstruktor wird verwendet, um das Objekt zu initialisieren und seinen Attributen Anfangswerte zuzuweisen.
Die wichtigsten Merkmale des Konstruktors sind:
- der Name des Konstruktors muss derselbe sein wie der Name der Klasse, in der er sich befindet,
- der Konstruktor hat keinen Rückgabetyp oder den Typ void,
- wird automatisch aufgerufen, wenn ein neues Objekt der Klasse mit dem new-Operator erstellt wird,
- können wir mehrere Konstruktoren mit unterschiedlichen Parametern definieren (so genannte Konstruktorüberladung).
Die Verwendung von Konstruktoren ist bei der Initialisierung von Objekten wichtig und bietet eine Möglichkeit, sicherzustellen, dass ein Objekt unmittelbar nach seiner Erstellung gültige Werte für seine Attribute hat.
Was ist der Zweck der Abstraktion in Java?
Abstrakcia (abstraction) in Java ist ein Konzept, das es ermöglicht, Implementierungsdetails zu verbergen und sich nur auf grundlegende Eigenschaften und Verhalten eines Objekts zu konzentrieren. Auf diese Weise kann die Komplexität der Programmierung vereinfacht und ihre Lesbarkeit verbessert werden.
In Java können wir die Abstraktion durch abstrakte Klassen undSchnittstellen erreichen.
Abstrakte Klasse (abstract class):
Eine abstrakte Klasse ist eine Klasse, die nicht direkt als Objekt erstellt werden kann, aber abstrakte Methoden und normale Methoden enthalten kann. Eine abstrakte Methode wird deklariert, hat aber keine Implementierung, d.h. sie enthält keinen Methodenkörper. Abstrakte Methoden müssen in untergeordneten Klassen implementiert werden.
Schnittstelle (interface):
Eine Schnittstelle definiert eine Reihe von Methoden, die von den Klassen implementiert werden müssen, die die Schnittstelle implementieren. Die Schnittstelle ist im Wesentlichen abstrakt und enthält keine Methodenimplementierung. Klassen können mehrere Schnittstellen auf einmal implementieren.
Die Abstraktion ermöglicht es uns, die Komplexität der Implementierung zu verbergen und uns darauf zu konzentrieren, was das Objekt tut und welche Methoden es bietet. Dadurch wird eine bessere Organisation des Codes, die Wiederverwendung und die Trennung der Verantwortlichkeiten zwischen verschiedenen Teilen des Programms erreicht.
Wenn du ein Java-Entwickler bist und einen Job suchst, lies mehr über das Gehalt eines Programmierers und schau dir unsere Stellenangebote an.