Merge branch 'termin3' of git.haw-hamburg.de:pm2-tutorium/slides into termin3

This commit is contained in:
Burau, Henri 2021-06-10 15:37:01 +02:00
commit 050803b2aa
3 changed files with 122 additions and 1 deletions

View File

@ -93,7 +93,7 @@ Beschränkt den Wildcard Typen nach unten. Dafür wird das Schlüsselwort ``supe
class IntegerSammler { class IntegerSammler {
public void schreib(List<? super Integer> liste) { public void schreib(List<? super Integer> liste) {
for (int i = 0; i <= 10; i++) { for (int i = 0; i <= 10; i++) {
System.out.println(i); liste.add(i);
} }
} }
} }

View File

@ -8,7 +8,13 @@ footer: Henri Burau
# Module # 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.
=======
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
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`

98
packages.md.orig Normal file
View File

@ -0,0 +1,98 @@
<!--
title: Termin 3
description: Folien für den ersten Termin in Programmieren 2
url: https://git.haw-hamburg.de/pm2-tutorium/slides
header: Programmieren 2 **Tutorium**
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
---
# 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