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
<<<<<<< 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
---

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