Java Programmierung 1 WS 2024/2025
44 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Welches der folgenden ist kein Ziel von Java?

  • Einfach
  • Sicher
  • Verteilt
  • Objektorientiert
  • Komplex (correct)

Welche der folgenden Komponenten ist nicht direkt an der Erstellung eines Programms beteiligt?

  • Linker
  • Debugger (correct)
  • Loader
  • Editor
  • Compiler

Java-Programme werden als Text in Dateien eingegeben.

True (A)

Ordnen Sie die folgenden Java-Schlüsselwörter ihren jeweiligen Kategorien zu.

<p>class = Klasse if = Selektion while = Schleife break = Schleife return = Methode static = Methode final = Konstante</p> Signup and view all the answers

Welche der folgenden Aussagen über Konstanten in Java ist falsch?

<p>Konstanten können nach der Initialisierung geändert werden. (A)</p> Signup and view all the answers

Welches der folgenden ist kein primitiver Datentyp in Java?

<p>String (D)</p> Signup and view all the answers

Was ist eine Wertzuweisung?

<p>Eine Wertzuweisung ist die Zuweisung eines Werts an eine Variable.</p> Signup and view all the answers

Welcher Operator dient in Java zur Stringaddition?

<ul> <li>(C)</li> </ul> Signup and view all the answers

Welcher Operator ist ein unärer Operator in Java?

<p>++ (D)</p> Signup and view all the answers

Der Typ char kann in Java Vorzeichen haben.

<p>False (B)</p> Signup and view all the answers

Was ist der Unterschied zwischen der charAt und der substring Methode in Java?

<p>Die <code>charAt</code> Methode gibt ein einzelnes Zeichen an einer bestimmten Position in einem String zurück, während die <code>substring</code> Methode eine neue Zeichenkette aus einem Teil des ursprünglichen Strings extrahiert.</p> Signup and view all the answers

Welche der folgenden Aussagen über die switch-Anweisung in Java ist falsch?

<p>Die <code>case</code>-Anweisung kann eine Bereichsangabe enthalten. (B)</p> Signup and view all the answers

Die for-Schleife in Java ist eine annehmende Schleife.

<p>False (B)</p> Signup and view all the answers

Welche der folgenden Aussagen über die do-while-Schleife in Java ist richtig?

<p>Der Schleifenrumpf wird mindestens einmal ausgeführt, unabhängig von der Schleifenbedingung. (D)</p> Signup and view all the answers

Welches der folgenden ist kein gültiges Konzept in der Objektorientierung?

<p>Rekursion (E)</p> Signup and view all the answers

Was versteht man unter Kapselung in der Objektorientierung?

<p>Kapselung bedeutet, dass die Attribute eines Objekts vor direktem Zugriff von außerhalb geschützt werden, die Manipulation erfolgt nur über die Methoden des Objekts.</p> Signup and view all the answers

Welches der folgenden Schlüsselwörter dient nicht zur Steuerung der Sichtbarkeit von Klassenmitgliedern in Java?

<p>final (D)</p> Signup and view all the answers

Statische Methoden können nur von Instanzen einer Klasse aufgerufen werden.

<p>False (B)</p> Signup and view all the answers

Welche der folgenden Aussagen über Konstruktoren in Java ist richtig?

<p>Konstruktoren haben immer den gleichen Namen wie die Klasse. (C)</p> Signup and view all the answers

Wofür dient das Schlüsselwort this in Java?

<p>Das Schlüsselwort <code>this</code> verweist innerhalb einer Methode oder eines Konstruktors auf das aktuelle Objekt.</p> Signup and view all the answers

Ein Objekt einer Unterklasse kann alle Methoden und Attribute der Oberklasse nutzen.

<p>True (A)</p> Signup and view all the answers

Welche der beiden Methoden ist für die späte Bindung verantwortlich?

<p>clone() (D)</p> Signup and view all the answers

Was ist der Hauptunterschied zwischen einer flachen und einer tiefen Kopie in Java?

<p>Eine <code>flache</code> Kopie kopiert nur Referenzen, während eine <code>tiefe</code> Kopie den Inhalt der referenzierten Objekte kopiert. (B)</p> Signup and view all the answers

Ein Interface in Java kann mehrere andere Interfaces erben.

<p>True (A)</p> Signup and view all the answers

Beschreiben Sie die Verwendung von abstract Schlüsselwort in Java.

<p>Das <code>abstract</code> Schlüsselwort wird verwendet, um abstrakte Klassen und Methoden zu deklarieren. Abstrakte Klassen können nicht instanziiert werden, und abstrakte Methoden müssen in Unterklassen implementiert werden.</p> Signup and view all the answers

Die Klasse Scanner in Java ermöglicht das Einlesen von Daten von der Tastatur.

<p>True (A)</p> Signup and view all the answers

Was sind die Vorteile der Verwendung von Paketen in Java?

<p>Pakete ermöglichen eine bessere Strukturierung von Code, fördern die Wiederverwendbarkeit und reduzieren Namenskonflikte.</p> Signup and view all the answers

Welche der folgenden Aussagen über die garbage collection in Java ist richtig?

<p>Die <code>garbage collection</code> ist ein Mechanismus, der nicht verfügbaren Speicherplatz freigibt. (A)</p> Signup and view all the answers

Exceptions in Java müssen immer abgefangen werden, um ein Absturz des Programms zu vermeiden.

<p>False (B)</p> Signup and view all the answers

Ordnen Sie die folgenden Arten von Exceptions ihren jeweiligen Kategorien zu.

<p>ArithmeticException = Kontrollierte Ausnahme RuntimeException = Unkontrollierte Ausnahme Error = Unkontrollierte Ausnahme</p> Signup and view all the answers

Wie können Exceptions in Java behandelt werden?

<p>Exceptions in Java können mit Hilfe von <code>try-catch</code> Blöcken abgefangen und behandelt werden. Der <code>try</code>-Block enthält den Code, der möglicherweise eine Ausnahme auslösen könnte, während der <code>catch</code>-Block den Fehler behandelt.</p> Signup and view all the answers

Welche der folgenden Aussagen über das Schlüsselwort throws in Java ist falsch?

<p>Das Schlüsselwort <code>throws</code> wird verwendet, um die Exception zu behandeln. (D)</p> Signup and view all the answers

Vererbung in Java ermöglicht es, dass Unterklassen Attribute und Methoden der Oberklasse überschreiben.

<p>True (A)</p> Signup and view all the answers

Welches der folgenden Schlüsselwörter wird in Java verwendet, um eine Klasse als abstrakte Klasse zu deklarieren?

<p>abstract (C)</p> Signup and view all the answers

Ein Interface in Java kann Methoden mit Implementierung enthalten.

<p>False (B)</p> Signup and view all the answers

Was ist der Unterschied zwischen einer abstrakten Klasse und einer Schnittstelle in Java?

<p>Eine abstrakte Klasse kann sowohl abstrakte als auch konkrete Methoden und Attribute enthalten, während eine Schnittstelle nur abstrakte Methoden und Konstanten definiert.</p> Signup and view all the answers

Welches der folgenden Schlüsselwörter wird in Java verwendet, um eine Klasse als Schnittstelle zu deklarieren?

<p>interface (A)</p> Signup and view all the answers

Eine Klasse in Java kann mehrere Interfaces implementieren.

<p>True (A)</p> Signup and view all the answers

Was ist der Zweck des clone() -Methods in Java?

<p>Die <code>clone()</code> -Methode ermöglicht es, eine Kopie eines Objekts zu erstellen.</p> Signup and view all the answers

Welche der folgenden Aussagen über Klonen in Java ist richtig?

<p>Um ein Objekt zu klonen, muss die Klasse das Interface <code>Cloneable</code> implementieren. (B)</p> Signup and view all the answers

Welcher Algorithmus ist am effizientesten für die Suche nach einem Element in einem sortierten Array?

<p>Binäre Suche (C)</p> Signup and view all the answers

Rekursive Algorithmen werden in Java mit Hilfe von Schleifen implementiert.

<p>False (B)</p> Signup and view all the answers

Was ist der Unterschied zwischen einem iterativen und einem rekursiven Algorithmus?

<p>Ein <code>iterativer</code> Algorithmus verwendet Schleifen, um Aufgaben wiederholt auszuführen, während ein <code>rekursive</code> Algorithmus sich selbst aufruft, um eine Aufgabe zu lösen.</p> Signup and view all the answers

Welcher der folgenden Sortieralgorithmen hat typischerweise einen Zeitaufwand von O(n log n)?

<p>Mergesort (C)</p> Signup and view all the answers

Flashcards

Was ist ein Programm?

Eine Folge von Befehlen oder Anweisungen an einen Rechner zur automatischen Bearbeitung eines Problems.

Was ist Quellcode?

Eine Textdatei, die den Quellcode eines Programms enthält.

Was ist ein Compiler?

Ein Programm, das Quellcode in Maschinensprache übersetzt.

Was ist ein Interpreter?

Ein Programm, das Maschinenbefehle ausführt, ohne den gesamten Quellcode vorher zu übersetzen.

Signup and view all the flashcards

Was ist Objektcode?

Code, der von einem Compiler aus Quellcode erzeugt wird und von einer virtuellen Maschine ausgeführt wird.

Signup and view all the flashcards

Was ist ein Linker?

Ein Programm, das mehrere Objektcode-Dateien zu einer ausführbaren Datei zusammenfügt.

Signup and view all the flashcards

Was ist ein Loader?

Ein Programm, das eine ausführbare Datei in den Arbeitsspeicher lädt, um sie auszuführen.

Signup and view all the flashcards

Was ist ein Debugger?

Ein Programm, das zur Identifizierung und Behebung von Fehlern in Software verwendet wird.

Signup and view all the flashcards

Was ist eine IDE?

Eine Entwicklungsumgebung, die alle wichtigen Tools für die Softwareentwicklung integriert.

Signup and view all the flashcards

Was ist Java?

Eine Programmiersprache, die von Sun Microsystems entwickelt wurde.

Signup and view all the flashcards

Was ist eine JVM?

Eine virtuelle Maschine, die Java-Bytecode ausführt.

Signup and view all the flashcards

Was ist ein Java-Paket?

Eine Sammlung von Klassen, die verwandte Funktionalität bereitstellen.

Signup and view all the flashcards

Was ist eine Variable?

Ein Platzhalter für einen Wert, der einen bestimmten Datentyp haben muss.

Signup and view all the flashcards

Was ist ein Datentyp?

Ein Schlüsselwort, das den Datentyp einer Variablen definiert.

Signup and view all the flashcards

Was ist ein String?

Eine Zeichenkette, die in Java durch Anführungszeichen eingeschlossen ist.

Signup and view all the flashcards

Was ist eine Escape-Sequenz?

Eine Zeichenkette, die in Java durch Anführungszeichen eingeschlossen ist und Sonderzeichen mit Hilfe von Escape-Sequenzen darstellen kann.

Signup and view all the flashcards

Was ist eine Zuweisung?

Eine Operation, die zwei Variablen miteinander verknüpft und eine neue Variable erzeugt.

Signup and view all the flashcards

Was ist eine Initialisierung?

Die erste Zuweisung eines Wertes an eine Variable.

Signup and view all the flashcards

Was ist eine Wertzuweisung?

Eine Operation, die einen Wert in einer Variablen ändert.

Signup and view all the flashcards

Was ist ein Zahlensystem?

Die interne Darstellung von Zahlen im Computer.

Signup and view all the flashcards

Was ist das Dualsystem?

Ein Zahlensystem, das nur die Ziffern 0 und 1 verwendet.

Signup and view all the flashcards

Was ist das Oktalsystem?

Ein Zahlensystem, das die Ziffern 0 bis 7 verwendet.

Signup and view all the flashcards

Was ist das Hexadezimalsystem?

Ein Zahlensystem, das die Ziffern 0 bis 9 und die Buchstaben A bis F verwendet.

Signup and view all the flashcards

Was ist ein Operator?

Ein Symbol, das eine bestimmte Operation an seinen Operanden ausführt.

Signup and view all the flashcards

Was ist der Additionsoperator?

Ein Symbol, das eine Addition darstellt.

Signup and view all the flashcards

Was ist der Subtraktionsoperator?

Ein Symbol, das eine Subtraktion darstellt.

Signup and view all the flashcards

Was ist der Multiplikationsoperator?

Ein Symbol, das eine Multiplikation darstellt.

Signup and view all the flashcards

Was ist der Divisionsoperator?

Ein Symbol, das eine Division darstellt.

Signup and view all the flashcards

Was ist der Modulo-Operator?

Ein Symbol, das den Rest einer ganzzahligen Division darstellt.

Signup and view all the flashcards

Was ist Priorität?

Eine Operation, die die Reihenfolge der Operationen in einem Ausdruck beeinflusst.

Signup and view all the flashcards

Was ist eine Selektion?

Eine Anweisung, die eine Entscheidung basierend auf einer Bedingung trifft.

Signup and view all the flashcards

Was ist eine if-Anweisung?

Eine Anweisung, die Code nur dann ausführt, wenn eine Bedingung wahr ist.

Signup and view all the flashcards

Was ist eine else-Anweisung?

Eine Anweisung, die Code ausführt, wenn eine Bedingung falsch ist.

Signup and view all the flashcards

Was ist eine else if-Anweisung?

Eine Anweisung, die Code ausführt, wenn eine Bedingung falsch ist und eine zweite Bedingung wahr ist.

Signup and view all the flashcards

Was ist eine switch-Anweisung?

Eine Anweisung, die verschiedene Möglichkeiten basierend auf einem Ausdruck auswählt.

Signup and view all the flashcards

Was ist eine break-Anweisung?

Eine Anweisung, die beendet die Ausführung einer switch-Anweisung.

Signup and view all the flashcards

Study Notes

Allgemeines

  • Java ist eine objektorientierte Programmiersprache.
  • Sie wird verwendet, um Softwareanwendungen zu erstellen.
  • Java ist plattformunabhängig.

Java Programmierung 1 WS 2024/2025

  • Das Modul Java Programmierung 1 wird von Professor Dr. Rainer Lütticke und Professorin Dr. Katrin Brabender unterrichtet.
  • Die Vorlesung umfasst Themen wie Softwareerstellung, Datentypen, Kontrollstrukturen, Arrays, Objektorientierung, UML, Exception-Handling, Vererbung, Polymorphie, Typkonvertierung von Referenzen, Algorithmen, rekursive Algorithmen, Kommentare, und die Erstellung von Java-Programmen.
  • Lehrmaterial stammt von Brabender, K. (Grundlagen der Informatik), Andreas de Vries und Volker Weiß (Grundlagen der Programmierung) und Christian Ullenboom (Java ist auch eine Insel).
  • Zu den Online-Ressourcen gehören Ullenboom, Java ist auch eine Insel, sowie Java Tutorial von Oracle und das interaktive Java-Tutorial (Einführung in die Informatik mit Java).

Erstellung von Software – Anwendungsprogrammierung

  • Ein Programm ist eine Folge von Befehlen oder Anweisungen für einen Computer, um ein Problem automatisiert zu lösen.
  • Zur Erstellung eines Programms sind Editor, Compiler, Linker und Loader wichtig.
  • Der Editor erzeugt lesbare Textdateien in der Programmiersprache (Quellcode).
  • Übersetzung des Quellcodes in die Maschinensprache des Computers (Compiler und Interpreter).
  • Interpreter übersetzt eine einzige Anweisung und führt sie sofort aus.
  • Compiler übersetzt den gesamten Programmcode und speichert ihn als Objektcode.

Hilfsmittel zur Softwareentwicklung

  • Debugger sind Systeme zur Identifizierung von logischen und Laufzeitfehlern in Programmen und unterstützen die Steuerung/Kontrolle der Programmausführung.

IDE (Integrated Development Environment)

  • Eine Entwicklungsumgebung, die sämtliche Schritte der Programmentwicklung vereinfacht und auf einer gemeinsamen Oberfläche abbildet.
  • Sie vereinfacht die Komplexität der Softwareentwicklung und bietet eine graphische Oberfläche.

Kurze Einführung in die Geschichte von Java

  • Java wurde 1991 von Sun Microsystems entwickelt (jetzt von Oracle übernommen).
  • Das Ziel war eine Programmiersprache zur Steuerung von Haushaltsgeräten.
  • 1995 fand der Durchbruch von Java durch Netscape Navigator 2.0.
  • Java-Programme werden als Text in Dateien mit der Endung .java gespeichert.

Ziele von Java

  • Einfachheit, objektorientiert, verteil, robust, sicher, plattformunabhängig, portierbar, leistungsfähig, interpretierbar, parallelisierbar und dynamisch.

Das Arbeitsprinzip von Java

  • Der Java-Quellcode (.java) wird vom Compiler (javac) in Bytecode (.class) übersetzt.
  • Der Bytecode wird von der Java Virtual Machine (JVM) ausgeführt.
  • Die JVM verwaltet die Ausführung des Programms.

Die Voraussetzung für das Arbeiten mit Java

  • Java Development Kit (JDK): Enthält die JVM, den Compiler (javac) und weitere Werkzeuge.
  • Java Runtime Environment (JRE): Die Laufzeitumgebung für Java-Programme.

Erstellung von Java-Programmen

  • Applikationen (Anwendungen): Unabhängige Programme, benötigen nur die JVM zur Ausführung.
  • Java Programme werden als Text in Dateien gespeichert.
  • Texteditoren oder IDEs zur Erstellung der Programme.

Grundbestandteile eines Java-Programms

  • Jedes Java-Programm besteht mindestens aus einer Klasse.
  • Klassen sind in geschweiften Klammern ({}).
  • Der Startpunkt ist die Methode main.
  • Die Applikation „Willkommen.java“ zeigt die Ausgabe eines Textes.

Kommentare

  • Kommentare dienen zur Dokumentation und Verbesserung der Lesbarkeit.
  • Einzeilige Kommentare beginnen mit //.
  • Mehrzeilige Kommentare beginnen mit /* und enden mit */.
  • Dokumentationskommentare beginnen mit /** und enden mit */.

Die Klassendeklaration

  • Das Schlüsselwort class eröffnen die Klassendeklaration in Java.
  • Reservierte Wörter werden von Java belegt (nur Kleinbuchstaben).
  • Der Klassenname ist ein Bezeichner (Identifier).
  • Ein Identifier ist eine Folge von alphanumerischen Zeichen, Unterstrichen und Dollarzeichen.
  • Java ist case sensitive (Groß- und Kleinschreibung wird unterschieden).

Merkregel für das Erstellen einfacher Applikationen

  • Klassennamen beginnen mit einem Großbuchstaben.

Blöcke

  • Die Deklaration einer Klasse ist in Blöcke unterteilt, die von geschweiften Klammern eingeschlossen sind.

Der Programmstart: Die Methode main

  • Die Methode main ist der Einstiegspunkt für Java-Programme.
  • Sie wird automatisch vom Java-Interpreter aufgerufen.
  • Die main-Methode hat immer die Signatur public static void main (String[] args).

Implizite Typumwandlung bei kleinen ganzzahligen Datentypen

  • Werte der Datentypen byte und short werden bei Rechenoperationen automatisch in int umgewandelt.
  • Ist ein Operand vom Datentyp long, werden alle Operanden auf long gesetzt.

Explizite Typanpassung

  • Bei der Konvertierung von grösseren Ganzzahltypen in kleinere können obere Bits abgeschnitten werden.
  • Bei der Umwandlung von Gleitpunktzahlen in Ganzzahlen kann es zu einem Verlust der Genauigkeit kommen.

Typumwandlungen bei elementaren Datentypen

  • Automatisch oder explizit durch den cast-Operator.

Datentypen

  • Variablen sind Speicherplätze, die Werte verschiedener Datentypen aufnehmen können.
  • Datentypen für ganzzahlige Werte (byte, short, int, long): mit Vorzeichen sowie für Gleitkommazahlen (float, double).
  • Datentypen für Boolesche Werte (boolean) und Unicode-Zeichen(char).

Zahlensysteme

  • Zur Basis 2, 5, 7, 8, 10, 16. Zur Darstellung von Zahlen in verschiedenen Zahlensystemen.

Darstellung reeller Zahlen im Rechner

  • Gleitkommadarstellung in Java.

Wertzuweisungen/Zuweisungen

  • Die Zuweisungsoperatoren verwenden das Gleichheitszeichen (=), um Variablen Werte zuzuweisen.

Spezielle arithmetische Operatoren

  • Kurzschreibweise für Zuweisungen plus arithmetische Operationen.

Operatoren

  • Grundrechenoperationen.

Inkrementoperator ++ und Dekrementoperator --

  • Inkrementoperator erhöht den Wert eines Operanden um 1, entweder vor oder nach einer Verwendung.
  • Dekrementoperator verringert den Wert eines Operanden um 1, entweder vor oder nach einer Verwendung.

Kontrollstrukturen

  • Sequenz: Lineare Abfolge von Anweisungen.
  • Auswahl (Selektion): Bedingte Ausführung von Anweisungen basierend auf einer Bedingung.
  • Mehrfachwahl (switch): Auswahl unter mehreren Möglichkeiten.
  • Wiederholung (Schleife): Wiederholte Ausführung von Anweisungen.

Rekursive Algorithmen

  • Algorithmen, die sich selbst aufrufen.

Suchalgorithmen

  • Lineare Suche (Reihenfolge).
  • Binäre Suche (auf sortierten Daten).

Austieg aus Schleifen

  • break beendet eine Schleife.
  • continue überspringt den Rest des aktuellen Schleifendurchgangs.

Pakete in Java

  • Strukturierung in Kategorien.
  • Namen enthalten package meinPaket.ausgabe.

Klassen vs. Instanzmethoden

  • Klassenmethoden sind für die gesamte Klasse anwendbar, Instanzmethoden für ein einzelnes Objekt.
  • Klassenmethoden: static (z.B. Math.sqrt())
  • Instanzmethoden: nicht static (z.B. String.length()).

Attribute, Methoden, Variablen

  • Attribute: Datenelemente einer Klasse.
  • Methoden: Funktionen einer Klasse.
  • Lokale Variablen: Variablen innerhalb einer Methode.
  • Instanzvariablen: Variablen innerhalb eines Objekts.
  • Klassenvariable: Variable innerhalb einer Klasse.

Garbage Collection

  • Automatisierte Speicherbereinigung in Java.

Ausnahmen/Exceptions

  • Ausnahmen in Java: Fehlermeldungen während der Ausführung.
  • try-catch-finally: Fehlerbehandlung in Java-Code.
  • throw: Auslösen einer Exception.

Vererbung

  • Vererbung: Wiederverwendung und Erweiterung bestehender Klassen.
  • Superklasse: Allgemeine Klasse.
  • Subklasse: Abgeleitete Klasse.
  • this und super: Verweisen auf das aktuelle Objekt und die Superklasse.

Abstrakte Klassen und Interfaces

  • Abstrakte Klassen: Können nicht instanziiert werden, aber Methoden definieren.
  • Interfaces: Enthalten nur Methodensignaturen, aber keine Implementierung.

Klonen von Objekten

  • Kopieren von Objekten.
  • Flache Kopie: Nur Referenzen werden kopiert.
  • Tiefe Kopie: Inhalte der Objekte werden kopiert.

Methodenüberladen

  • Methoden mit gleichem Namen, aber unterschiedlicher Parameterliste oder Datentypen.

Zeichenketten

  • Strings in Java: Strings (.String), StringBuffer, Scanner etc.

Weitere String Method

  • substring, charAt, equals, compareTo, contains, replace
  • split, trim, toUpperCase, toLowerCase.
  • valueOf.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

Description

Dieses Quiz behandelt die Grundlagen der Java-Programmierung, einschließlich Datentypen, Kontrollstrukturen und objektorientierter Programmierung. Es basiert auf dem Modul, das von Professor Dr. Rainer Lütticke und Professorin Dr. Katrin Brabender unterrichtet wird. Testen Sie Ihr Wissen über die Themen der Vorlesung und die empfohlenen Lehrmaterialien.

Use Quizgecko on...
Browser
Browser