100% satisfaction guarantee Immediately available after payment Both online and in PDF No strings attached
logo-home
Objektorientierte Programmierung Zusammenfassung $7.56
Add to cart

Summary

Objektorientierte Programmierung Zusammenfassung

 35 views  1 purchase
  • Course
  • Institution

Eine Zusammenfassung über die Grundlagen der objektorientierten Programmierung in Java mit vielen eigenen Beispielen.

Preview 5 out of 25  pages

  • July 7, 2021
  • 25
  • 2019/2020
  • Summary
avatar-seller
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)


1 1. Eins subtrahieren
2 11111101
3 00000001
4 == 11111100
5
6 2. Invertieren
7 00000011 == -3

,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


Beispiele

true (Boolean)
"Hello World" (String)
'k' (Character)
12.4 (Double)
87 (Integer)


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

, Default: 0
float

4 Byte
Zweierkomplement
Default: 0.0
double
8 Byte
Zweierkomplement
Default: 0.0
char

2 Byte
UTF-16
Default: '\000'
boolean
2 Byte
Zweierkomplement
Default: false
Referenz Datentypen

Klassen
Default: null
Interface

Default: null
Array

Default: null
String

Default: null

Primitive Datentypen haben meist 0 oder false als Wert, wenn ihnen noch keiner zugewiesen
wurde. Referenz Datentypen dagegen null .

Wertebereich eines Datentyps:


1 start = -1 * (2^BitAnzahl / 2)
2 end = (2^BitAnzahl / 2) - 1
3
4 Beispiel Integer
5 start = -1 * (2^) = -2147483648
6 end = (2^) - 1 = 2147483647



Variablen

1 int i = 7;


Reservierter Platz im Speicher

int = Datentyp; i = Variablenname

Informationen:

Welcher Typ? Integer
Wie viel Speicher ? 4 Bytes

, Was steht drin? 7
Wie codiert? Zweierkomplement

Deklaration vs Definition

Deklaration

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

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

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

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.

Can Stuvia be trusted?

4.6 stars on Google & Trustpilot (+1000 reviews)

56326 documents were sold in the last 30 days

Founded in 2010, the go-to place to buy study notes for 14 years now

Start selling
$7.56  1x  sold
  • (0)
Add to cart
Added