diff --git a/generics2.md b/generics2.md index 8db33e5..c742fcf 100644 --- a/generics2.md +++ b/generics2.md @@ -93,7 +93,7 @@ Beschränkt den Wildcard Typen nach unten. Dafür wird das Schlüsselwort ``supe class IntegerSammler { public void schreib(List liste) { for (int i = 0; i <= 10; i++) { - System.out.println(i); + liste.add(i); } } } diff --git a/packages.md b/packages.md index 9b064bc..fa43dfb 100644 --- a/packages.md +++ b/packages.md @@ -8,7 +8,13 @@ footer: Henri Burau # Module +<<<<<<< HEAD Grundlegendes Konzept in der Programmierung zur Organisation von Programmcode. Module kapseln Implementationen und exportieren eine Schnittstelle mit Operationen, Typen und Konstanten. Dies kann explizit durch die Java 9 Modules geschehen oder implizit durch Zugriffsmodifikatoren. +======= +Grundlegendes Konzept in der Programmierung zur Organisation von Programmcode. + +Module kapseln Implementationen und exportieren eine Schnittstelle mit Operationen, Typen und Konstanten. Dies kann explizit durch die Java 9 Modules geschehen oder implizit durch Zugriffsmodifikatoren. +>>>>>>> 667e7fabdaab2d34d747163c09ad8d82631a70b1 --- @@ -70,3 +76,20 @@ import java.lang.*; // Default Import der immer gemacht wird --- # Sichtbarkeiten + +Sichtbarkeiten von Methoden, Konstruktoren und Feldern: + +* **public**: Sichtbar innerhalb und außerhalb des eigenen Pakets +* **protected**: Sichtbar innerhalb des Pakets und für erbende Klassen +* **package-private**: Sichtbar innerhalb des Pakets +* **private**: Nur sichtbar innerhalb der Klasse + +--- + +# Übung + +1) Durch welches Schlüsselwort wird der Modifikator `package-private` genutzt? + * Durch die Verwendung von keinem Schlüsselwort als Modifikator + +2) Wie sollten Pakete benannt werden? + * Umgedrehte Domain: `de.henriburau.meineKlassen` diff --git a/packages.md.orig b/packages.md.orig new file mode 100644 index 0000000..10c9df1 --- /dev/null +++ b/packages.md.orig @@ -0,0 +1,98 @@ + + +# Module + +<<<<<<< HEAD +Grundlegendes Konzept in der Programmierung zur Organisation von Programmcode. Module kapseln Implementationen und exportieren eine Schnittstelle mit Operationen, Typen und Konstanten. Dies kann explizit durch die Java 9 Modules geschehen oder implizit durch Zugriffsmodifikatoren. +======= +Grundlegendes Konzept in der Programmierung zur Organisation von Programmcode. + +Module kapseln Implementationen und exportieren eine Schnittstelle mit Operationen, Typen und Konstanten. Dies kann explizit durch die Java 9 Modules geschehen oder implizit durch Zugriffsmodifikatoren. +>>>>>>> 667e7fabdaab2d34d747163c09ad8d82631a70b1 + +--- + +# Geschachtelte Klassen + +Erlaubt das Verstecken von Hilfsklassen. + +```java +class Dreieck { + private Koordinate _a; + private Koordinate _b; + private Koordinate _c; + + private class Koordinate + { + ... + } +} +``` + +--- + +# Pakete + +Ermöglichen Namensräume von zusammengehörigen Klassen. Klassen und Interfaces sind nur sichtbar wenn sie mit dem Schlüsselwort `public` deklariert wurden. + +```java +// Dreieck.java +package formen; +public class Dreieck { + private Koordinate _a; + private Koordinate _b; + private Koordinate _c; + //... +} +// Koordinate.java +package formen; +class Koordinate +{ + //... +} +``` + +--- + +# Imports + +Möchte man Klassen und Interfaces aus einem anderen Paket nutzen dann müssen diese importiert werden. Um eine Grundfunktionalität von Java zu gewährleisten wird das Paket [`java.lang`](https://docs.oracle.com/javase/8/docs/api/java/lang/package-summary.html) immer importiert. + +```java +import java.util.List; // Nur List +import java.util.*; // Alle Klassen und Interfaces aus java.util + +import static org.junit.Assert.*; // Statischer Import der Asserts + +import java.lang.*; // Default Import der immer gemacht wird +``` + +--- + +# Sichtbarkeiten +<<<<<<< HEAD +======= + +Sichtbarkeiten von Methoden, Konstruktoren und Feldern: + +* **public**: Sichtbar innerhalb und außerhalb des eigenen Pakets +* **protected**: Sichtbar innerhalb des Pakets und für erbende Klassen +* **package-private**: Sichtbar innerhalb des Pakets +* **private**: Nur sichtbar innerhalb der Klasse + +--- + +# Übung + +1) Durch welches Schlüsselwort wird der Modifikator `package-private` genutzt? + * Durch die Verwendung von keinem Schlüsselwort als Modifikator + +2) Wie sollten Pakete benannt werden? + * Umgedrehte Domain: `de.henriburau.meineKlassen` +>>>>>>> 667e7fabdaab2d34d747163c09ad8d82631a70b1