Objektorientierte Programmierung -
Zusammenfassung
Grundlagen eines Computers
Computer
Gerät zur Verarbeitung von Daten
Zeichenverarbeitende Maschine
Bit
Ein Symbol
Informationsträger
0 oder 1
Zweierkomplement
Das Zweierkomplement ist eine Möglichkeit, negative Integer-Zahlen im Dualsystem darzustellen,
ohne zusätzliche Zeichen wie + oder - zu benötigen. Gegenüber dem Einerkomplement bietet es
unter anderem den Vorteil, dass es nur eine Darstellung für 0 gibt. Positive Zahlen werden im
Zweierkomplement mit einer führenden 0 versehen und ansonsten nicht verändert.
Bsp.: Umwandlung von -4 in die Zweierkomplementdarstellung (8 Bit)
Negative Zahlen werden wie folgt aus einer positiven Zahl codiert: Sämtliche binären Stellen
werden negiert und zu dem Ergebnis der Wert 1 addiert.
1 1. Vorzeichen ignorieren und ins Binärsystem umrechnen
2 00000100
3
4 2. Invertieren
5 11111011
6
7 3. Eins addieren
8 11111011
9 00000001
10 == 11111100 == -4
Bsp.: Umwandlung von 11111101 in das Dezimalsystem (Umkehrung von Dezimal in
Zweierkomplement)
,Grundlagen der Programmierung
Literale
Definition
Ein Literal ist eine Schreibweise für Datenwerte. Die Schreibweise ist eindeutig und lässt den Typ
des Datenwerts erkennen. Beispiele sind 'Z' für einen char -Wert, 0.007 für einen double -
Wert und 0b100 für den int -Wert 4 in binärer Schreibweise.
Jede Zahl ohne Dezimalpunkt wird als int betrachtet
7L um den Wert als Wert vom Datentyp long zu verarbeiten
Jede Zahl mit Dezimalpunkt wird als double betrachtet
7.4F um den Wert als Wert vom Datentyp float zu betrachten
Typ
Formal gesprochen ist ein Typ eine Menge von Datenwerten. Das Konzept des Typs ist eng
verwandt mit dem Konzept der Menge aus der Mengenlehre. Jeder Datenwert hat einen Typ.
Anders ausgedrückt: Jeder Datenwert ist einem Typ zugeordnet. Der Typ legt folgende Dinge fest:
Wie der Datenwert zu interpretieren ist (z.B. als Ganzzahl)
Wie die Speicherorganisation aussieht (benötigten Speicherzellen in Bytes und Kodierung)
Wie der Datenwert dargestellt wird
Datentypen
Primitive Datentypen (grundlegend, einfach)
byte
1 Byte
Zweierkomplement
Default: 0
short
2 Byte
Zweierkomplement
Default: 0
int
4 Byte
Zweierkomplement
Default: 0
long
8 Byte
Zweierkomplement
Mittels einer Deklaration benennt man z.B. eine Variable inkl. Datentyp und macht diese
dem Compiler bekannt
Die Variable hat noch keinen Wert
String name;
class myClass{};
Definition
Mittels Definition geben wir einer Variable, neben dem Namen und dem Datentyp,
zusätzlich einen Initialwert
String name = "Max"
Zuweisung
Mittels Zuweisung weisen wir einer bereits existenten Variable einen Wert zu
name = "John"
Casting
Wenn bei Zuweisungen oder in Ausdrücken unterschiedliche Datentypen vorkommen, führt Java
nach Möglichkeit eine automatische Typumwandlung durch (implizites Casting).
1 int i1 = 3;
2 double d1 = 1.7;
3 double d2 = d1 * i1; // double Multiplikation => 5.1
4 long l1 = i1; // Casting int => long
Wenn die Gefahr besteht, dass bei der Typumwandlung zu einem Genauigkeitsverlust (z.B. double
=> float) oder zu einem Überlauf kommt (z.B. long => int) produziert javac einen Fehler. Das
Programm kann also nicht kompiliert werden.
1 long l = 10;
2 int i = l; // javac-Fehler: possible loss of precision, da long > int
3
4 double d = 3.14;
5 float f = d; // javac-Fehler: possible loss of precision, da double >
float
Abhilfe schafft in solchen Fällen eine explizite Typumwandlung
1 long l = 10;
2 int i = (int) l;
3
4 double d = 3.14;
5 float f = (float) d;
, Definition eines Arrays
1 // 1. Weg - mit Dimensionsangabe; der Initialwert jedes Elements ist 0
2 int[] arr = new int[5];
3
4 // 2. Weg - mit Initialwerten
5 int[] arr = new int[]{1, 2, 3, 4, 5};
6
7 // 3. Weg - analog zu Weg 2, allerdings kürzer
8 int[] arr = {1, 2, 3, 4, 5};
Verzweigungen
Schleifen
for-Schleife
Wird ausgeführt, solange die Bedingung true ergibt
Wird verwendet, wenn man weiß wie oft man iterieren möchte
Statement 1 is executed (one time) before the execution of the code block.
Statement 2 defines the condition for executing the code block.
Statement 3 is executed (every time) after the code block has been executed.
Kopfgesteuert
1 for (statement 1; statement 2; statement 3) {
2 // code block to be executed
3 }
4
5 for (int i = 0; i < 5; i++) {
6 System.out.println(i);
7 }
8
9 // Es lassen sich auch mehrere Variablen und Bedingungen im Kopf definieren
10 for(int i = 0, k = 2; i < 10 && k < 100; i++, k*=2) {
11 System.out.println(i);
12 System.out.println(k);
13 }
for-each-Schleife
Wird verwendet um z.B. durch Arrays oder Listen zu iterieren
Kopfgesteuert
1 for (type variableName : arrayName) {
2 // code block to be executed
3 }
4
5 String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
6 for (String i : cars) {
7 System.out.println(i);
8 }
9
The benefits of buying summaries with Stuvia:
Guaranteed quality through customer reviews
Stuvia customers have reviewed more than 700,000 summaries. This how you know that you are buying the best documents.
Quick and easy check-out
You can quickly pay through credit card or Stuvia-credit for the summaries. There is no membership needed.
Focus on what matters
Your fellow students write the study notes themselves, which is why the documents are always reliable and up-to-date. This ensures you quickly get to the core!
Frequently asked questions
What do I get when I buy this document?
You get a PDF, available immediately after your purchase. The purchased document is accessible anytime, anywhere and indefinitely through your profile.
Satisfaction guarantee: how does it work?
Our satisfaction guarantee ensures that you always find a study document that suits you well. You fill out a form, and our customer service team takes care of the rest.
Who am I buying these notes from?
Stuvia is a marketplace, so you are not buying this document from us, but from seller larswaechter. Stuvia facilitates payment to the seller.
Will I be stuck with a subscription?
No, you only buy these notes for $7.56. You're not tied to anything after your purchase.