Merge branch 'termin3' of git.haw-hamburg.de:pm2-tutorium/slides into termin3
This commit is contained in:
commit
050803b2aa
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
23
packages.md
23
packages.md
|
@ -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`
|
||||||
|
|
|
@ -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
|
Loading…
Reference in New Issue