Programmiertechnik I - HTWG Konstanz - Drachenfels

Stichworte der Lernzettel - Letzte Seite von jedem Skript...

Stichworte der Lernzettel - Letzte Seite von jedem Skript...


Konrad Grüner
Diese Lernkarten behandeln grundlegende Konzepte der Programmiertechnik auf Universitätsniveau, mit Fokus auf objektorientierte Programmierung in Java. Sie decken Themen wie Klassen, Objekte, Methoden, Vererbung, Polymorphie, Schnittstellen und Ausnahmen ab. Besonders hervorgehoben werden Konzepte wie Kapselung, dynamische Bindung und der Umgang mit Strings und Compilern. Die Karteikarten richten sich an Studierende der Informatik, die ihr Verständnis von Java und objektorientierter Programmierung vertiefen möchten.
Karten
148
Lernende
15
Sprache
Deutsch
Kategorie
Informatik
Stufe
Universität
Erstellt / Aktualisiert
27.12.2013 / 29.01.2025

Lernkarten

Wie wird beim printf-Befehl das oktale Format angefordert?

%o

Was ist Unicode?

Unicode ist ein Industriestandart mit dem Anspruch sämtliche Sinntragenden Schriftzeichen jeder Kultur zu erfassen.

Zu beginn 16-Bit, aber in Zwischenzeit erweitert auf 21-Bit.

ASCII und Latin-1 sind Bestandteil von Unicode.

Was ist ein Datentyp und welche existieren bei Java?

Ein Datentyp bezeichnet die Zusammenfassung konkreter Wertebereiche und darauf definierten Operationen zu einer Einheit. Ein Datentyp wird unterteilt in 2 Untertypen, die Wert- und die Referenztypen.

Werttypen:  

  • Logischer Typ
  • Zahltyp
  • Ganzzaliger Typ
  • Gleitkomma Typ

Referenztypen:

  • Felder
  • Klassen

Eine Zahl soll mit Hilfe des println-Befehls ausgegeben werden. Wie kann man erreichen, dass die Zahl im Typ

a) dezimal

b) okatl

c) hexadezimal

d) binär

ausgegeben wird?

a) dezimal:

Einfach die Geünschhte Zahl in der Dezimalform angeben, die erste Ziffer darf jedoch nicht Null sein.

Bsp 1 oder 145369

b) oktal:

Vor die Zahl wird eine 0 (Null) gesetzt.

Bsp: 01 oder  0145369

c) hexadezimal:

Vor der Zahl steht 0x.

Bsp: 0x1 oder 0x145369

d) binär:

Vor der Zahl steht die Kombination 0b.

Bsp: 0b1 oder 0b145369

Was gehört zu den Referenztypen?

  • Felder       Typ[ ]
  • Klassen
    • Fundamentalklassen
      • Zeichenketten
      • Wrapperklassen
      • Wurzelklassen
    • Anwendungsklassen
      • enum
      • interface

int

Wertebereich: Ganze Zahlen mit Vorzeichen

Speicherbedarf: 4 byte

Standartwert: 0

Wie können Gleitkommazahlen geschrieben werden?

a) dezimal

b) hexadezimal

a) ddezimal:

1.    .24    0.456    78.9

.789e2    --->    steht für 0,78910  *102

b) hexadezimal:

0x1p0    0x1p4    0x10p-4

0x1p4    --->    steht für 0,00012*24

Was versteht man unter Einfachvererbung?

Unterklassen erweitern nur eine Oberklasse!

Deklaration im Klassenkopf:

public final class Unterklassenname extends Oberklasse{...}

Was ist UML?

grafische Modellierungssprache

 

Unified Modeling Language

Für was steht "%" als arithmetischer Operator?

Ausgabe des Restes einer Ganzzahligen Division.

Was versteht man unter "Precedence"?

Vorrang

legt in Ausdrücken mit mehreren Operatoren die Berechnungsreihenfolge fest.

Nedingungsoperator

Ausdruck1 ? Ausdruck2 : Ausdruck3

Wert von ausdruck 2 falls ausdruck true ist.

Wert von ausdruck 3 falls Ausdruck false ist.

 

rechts-assoziativ:

a?b:c?d:e    --->    a?b:(c?d:e)

Was bedeutet in der Arithmetik die Stelligkeit?

legt Anzahl der Operanden fest:

unär: 1 Operand

binär: 2 Operand

ternär: 3 Operand

Was macht die throw-Anweisung?

Eine trow-Anweisung springt in den nächsten passenden catch- Block

try {

    throw new Ausnahme();

}catch (Ausnahme x) {

    .....// springt hier hin

Wenn kein passender catch-Block existiert, dann wird das Programm beendet.

Wie werden bei Java bei einer Mischung der verschiedenen Datentypen die Typen angepasst?

                            char

                                |

                               \|/

byte --> short --> int --> long --> float --> double

Was wird bei der continue-Anweisung gemacht?

Die continue-Anweisung ermöglicht es, den aktuellen Schleifendurchlauf zu beenden. Es wird die Schleifenbedingung erneut ausgewertet. Die continue-Anweisung kann für alle Schleifenarten verwendet werden.

while (j < 10) {

    if (j > 8) {       j++;       continue;    }    System.out.println("Aktueller Wert von j : "  + j);    j++;}

Was versteht man unter einer Anweisung?

  • Variablendefinition    Typ Name = Ausdruck;
  • Ausdrücke
    • Ausdruck;  // Ausdruck muss Zuweisung oder Methodenaufruf sein
    • ; // Spezialfall, leere Anweisung
  • Anweisungsblöcke in geschweiften Klammern {...}
    • Verzweigungen:    if-else    switch-case-default    try-catch-finally
    • Schleifen:    while    do-while    for
    • Sprünge:    break    continue   return   throw

Was passiert, wenn z.B. in einer Schleife ein break aufgerufen wird?

Die Schleife, der Block wird beendet.

while (...)

    ....

    if (Bedingung) {

    break;

    }

    ....

}  // hier gehts weiter

Was gehört zu der Ablaufsteuerung bei Java?

  • Verzweigungen
  • Schleifen (for, while,...)
  • Sprünge (break, return,....)
  • Ausnahmen (try-catch)

Was versteht man unter der Assoziativität?

Legt bei mehreren Operatoren gleichen Ranges die Reihenfolge fest:

Zuweisung = rechts-assoziativ

Bsp:    a=b=c   bedeutet    a=(b=c)

andere binäre Operatoren links-assoziativ

Bsp:    a+b+c    bedeutet    (a+b)+c

Was geschieht bei einem Aufruf von return?

Es wird zurück zur Aufrufstelle der Methode gesprungen, innerhalb von main wird das Programm beendet.

 

// hier wird hingesprungen

if (...) {

    return

    }

Was bedeutet das Final vor einer Variable?

Kennzeichnet eine Variable als Konstante. Dies kann z.B. bei bestimmten Zahlen, wie z.B. Pi nötig sein, da diese ja immer gleich ist.

boolean

Logischer Typ

kann nur 2 Werte Speichern:    true oder false

Standartwert:   false

Platzbedarf: 1 byte

Wie wird innerhalb einer printf-Anweisung ein Zeilenwechsel aufgerufen?

%n 

Für was steht @Override in einer Annotation?

Mit diesem Typ kann eine Methode gekennzeichnet werden, die die Methode ihrer Oberklasse überschreibt. Der Compiler stellt dann sicher, dass die Oberklasse diese Methode enthält und gibt einen Fehler aus, wenn dies nicht der Fall ist.

Beispiel:

public class A {    public void eineMethode() {}} public class B extends A {    @Override    public void eineMethode() {}}

Quelle: Wikipedia

Was wird im Stack-Segment gespeichert und wo sitzt dieses?

Das Stackseegment wird im Arbeitsspeicher belegt, welcher vom Programm verwendet wird.

Es enthät automatische Daten und ist eines der 3 Bereicht für die Daten eines Programmes (Neben Daten-Segment und Heap-Segment)

new-Operator

Objekterzeugung mit dem new-Operator:

new Klassenname(...);

Der new-Operator reserviert den Speicher des Objekts und initialisiert ihn mit einem Konstrukoraufruf.

extends

Schlüsselwort für Vererbung   --->    wenn eine Klasse von einer Oberklass abgeleitet wird, muss dies im Kopf deklariert werden:

public final class Unterklasse extends Oberklasse { }

implements

Schlüsselwort für Schnitstellenvererbung    --->    wenn eine Klasse ein Interface implementiert, muss dies im Kopf deklariert sein.

public final class Name implements Schnitstelle { }

java.lang.Object

  • in Java ist eine Klasse direkte Unterklasse von java.lang.Object, wenn keine andere Oberklasse angegeben ist: 
public final class Klassenname extends Object** {     ...  } 
  • indirekt ist damit jede Klasse Unterklasse von java.lang.Object 
java.lang.Object vererbt unter anderem die Methode toString    ** wird vom Compiler ergänzt, wenn nicht explizit angegeben

java.lang.Error

Unterklasse von Throwable

Unterklassen von Error (--> fatale Ausnahmen) deuten auf ernste Probleme hin, bei denen der normale Programmablauf nicht wiederhergestellt werden sollte.

Sie sollten in der Regel nicht gefangen werden.

protected

Zugriffsrechte in Oberklassen:

aus allen Unterklassen dieser Oberklasse zugreifbar

Auszug aus Java ist auch eine Insel:

"Sind also weitere Klassen im gleichen Paket und Eigenschaften protected, ist die Sichtbarkeit für sie public. Für andere Nicht-Unterklassen in anderen Paketen sind dieprotected-Eigenschaften private. Damit lassen sich die Sichtbarkeiten so ordnen:

public > protected > paketsichtbar > private"

Programmierparadigma

= ein fundamentaler Programmierstil

Die Paradigmen unterscheiden sich in den Prinzipien die der jeweiligen Programmiersprache zugrunde liegen.

Auszug Wikipedia

Ein Programmierparadigma ist ein fundamentaler Programmierstil.[1] „Der Programmierung liegen je nach Design der einzelnen Programmiersprache verschiedene Prinzipien zugrunde. Diese sollen den Entwickler bei der Erstellung von "gutem Code" unterstützen, in manchen Fällen sogar zu einer bestimmten Herangehensweise bei der Lösung von Problemen zwingen“

Was ist ein Stellenwertsystem?

Ein Zahlensystem, bei dem die Wertigkeit eines Symbols von seiner Position abhängt.

Beispiel: Dezimalsystem

123    --->   1 * 100 + 2*10 + 3*1  --> 1 Höchste Wertigkeit, 3 niedrigste Wertigkeit.

Wort

Bytekombination, Transporteinheit auf dem Bus

Die Größe ist Rechnerabhängig, typisch 4 byte (x86) 8 byte (x64)

Was ist ein Peripheriegerät?

Das Peripheriegerät ist eine Komponente oder ein Gerät, das sich außerhalb der Zentraleinheit eines Computers befindet (kurz: Zubehör). Vereinfacht kann zwischen im Computer verbauten (internen) und mit diesem durch ein Kabel (oder auch durch Infrarot- oder Funktechnik) verbundenen (externen) Peripheriegeräten unterschieden werden.

Bsp: Intern (Grafikkarte, Netzwerkkarte,...) Extern (Drucker, Maus,....)

import

  • import-Deklaration im Kopf der Quelldatei
  • ermöglicht die Verwendung einfacher Klassenname

import Paketname.Klassenname;

public final class Beispiel {

    Klassenname.Methode();

}

Boxing

Diese Kapselung von primitiven Datentypen in Referenztypen, z.B. um diese in einer Collection ablegen zu können, erfolgt über sog. Wrapper-Klassen. Das 'Verpacken' eines primitiven Typs wird als Boxing, das 'Entpacken' als Unboxing bezeichnet. Java stellt seit der Version 5.0 einen Mechanismus bereit, der diese Verfahren automatisch erledigt (Autoboxing), sodass die folgenden Formulierungen möglich sind:

Integer i = new Integer(5);
int n = i;
Integer j = n;

Utility-Klassen

Klassen ohne Instanzmethoden & Instanzvariablen.

(--> sollten als final deklariert sein und einen privaten Default.Konstruktor haben)

Beispiele für Utility-Klassen:

RANDOM, DATE, CALENDAR, SYSTEM

Ausdruck

Liefert einen Wert

Zusammengesetzte Ausdrücke mit operatoren, Operanden und Klammern

Datentyp abhängig von operatoren und Operanden

Lernen