Compare commits

...

3 Commits

Author SHA1 Message Date
Burau, Henri 050803b2aa Merge branch 'termin3' of git.haw-hamburg.de:pm2-tutorium/slides into termin3 2021-06-10 15:37:01 +02:00
Henri Burau 59649e8a26 Push current state 2021-05-19 21:06:29 +02:00
Burau, Henri 82c0b4a248 Start work on termin3 2021-05-18 18:17:49 +02:00
2 changed files with 102 additions and 0 deletions

View File

@ -8,9 +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. 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. 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
--- ---

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