diff options
19 files changed, 598 insertions, 0 deletions
diff --git a/Info/10/2/Datenkapselung/capsule.tex b/Info/10/2/Datenkapselung/capsule.tex new file mode 100644 index 00000000..3da86ad7 --- /dev/null +++ b/Info/10/2/Datenkapselung/capsule.tex @@ -0,0 +1,12 @@ +\documentclass{beamer} +\setbeamertemplate{navigation symbols}{} + +\usepackage{bm} +\usepackage{tikz} +\usetikzlibrary{calc} + +\begin{document} +\begin{frame} +\input{capsule.tikz} +\end{frame} +\end{document} diff --git a/Info/10/2/Datenkapselung/capsule.tikz b/Info/10/2/Datenkapselung/capsule.tikz new file mode 100644 index 00000000..cc11c0a1 --- /dev/null +++ b/Info/10/2/Datenkapselung/capsule.tikz @@ -0,0 +1,57 @@ +\begin{tikzpicture} +\only<-3> { + \draw (0,0) circle (3); + \draw[opacity=0] (0,0) circle (4.5); +} + +\only<4-> { + \draw[fill=orange!40] (0,0) circle (4.5); + \node[rotate=90] (public) at (-3.5, 0) {\color{orange} \Large \textbf{public}}; + + \draw[fill=blue!40] (0,0) circle (3); + \node[rotate=90] (private) at (-1.75, 0) {\color{blue} \Large \textbf{private}}; + \draw(33:1) -- (33:4.5); + \draw(147:1) -- (147:4.5); + +} + +\only<-4> { + \node[opacity=0] (getSchnitt) at (0, 3.75) {SchnittGeben()}; + \node[opacity=0] at ($(getSchnitt) + (0, 0.75)$) {\huge \bm{$\Uparrow$}}; +} +\only<5-> { + \node (getSchnitt) at (0, 3.75) {SchnittGeben()}; + \node at ($(getSchnitt) + (0, 0.75)$) {\huge \bm{$\Uparrow$}}; +} + +\draw[fill=white] (0,0) circle (1); +\node (akte) at (0,0) {AKTE: a1}; + +\node (schnitt) at (-0.3,2.1) {\texttt{schnitt:}}; +\only<1-2, 4->{ + \node[draw, right of=schnitt, xshift=0.3cm] (schnittValue) {\texttt{3.2}}; +} +\only<3>{ + \node[draw, fill=red!50, right of=schnitt, xshift=0.3cm] (schnittValue) {\texttt{1.0}}; +} + +\node[] (setSchnitt) at (0,1.6) {\texttt{SchnittSetzen(s)}}; + +\only<-3> { + \node (nick) at (0,-1.7) {\texttt{spitzname:}}; + \node[draw, right of=nick, xshift=0.45cm] (nickValue) {\texttt{"J"}}; +} +\only<4-> { + \node (nick) at (0,-3.5) {\texttt{spitzname:}}; + \node[draw, right of=nick, xshift=0.45cm] (nickValue) {\texttt{"J"}}; +} + +\only<2>{ + \node[draw, circle, line width=3pt, minimum width=1.2cm] (lense) at (schnittValue) {}; + \draw[line width=3pt] (lense.south east) -- ($(lense.south east) + (0.5, -0.5cm)$); +} + +\only<3>{ + \node[rotate=15, right of=schnittValue] (finger) {\includegraphics[width=2cm]{img/pointing-right-finger.png}}; +} +\end{tikzpicture} diff --git a/Info/10/2/Datenkapselung/handout.tex b/Info/10/2/Datenkapselung/handout.tex new file mode 100644 index 00000000..908923c1 --- /dev/null +++ b/Info/10/2/Datenkapselung/handout.tex @@ -0,0 +1,95 @@ +\documentclass{handout} + +\usepackage[most]{tcolorbox} +\tcbuselibrary{breakable} + +\usepackage{minted} + +\usepackage{wrapfig} + +\newtcolorbox{bbox}[1]{text width=0.6\textwidth,colback=blue!5!white,colframe=blue!75!black,fonttitle=\bfseries,title=#1} +\newtcolorbox{obox}[1]{text width=0.6\textwidth,colback=orange!5!white,colframe=orange!75!black,fonttitle=\bfseries,title=#1} + +\begin{document} + +\thispagestyle{empty} + +\vspace{1cm} + +\begin{wrapfigure}{l}{0.35\textwidth} +\vspace{-1.7cm} +\includegraphics[width=6cm, keepaspectratio, page=5, trim=1cm 0cm 2.75cm 0cm, clip]{capsule.pdf} +\end{wrapfigure} + +\begin{bbox}{Datenkapselung} +Der Grundsatz der \textbf{Datenkapselung} besagt, dass nur ein Objekt selbst Zugriff auf seine Attribute haben sollte. \\ +Der Zugriff von außen sollte nur über durch das Objekt bereitgestellte Methoden erfolgen. +\end{bbox} + +\begin{obox}{Java Schlüsselwörter} +\begin{minted}{java} +private // Zugriff nur innerhalb der selben Klasse +public // Uneingeschränkter Zugriff +protected // Zugriff nur aus dem gleichen Java-Paket +\end{minted} +\end{obox} + +\begin{obox}{Verwendung} +% \texttt +\textlangle{}Schlüsselwort\textrangle \textlangle{}Datentyp\textrangle \textlangle{}Bezeichner\textrangle; \\ +\textlangle{}Schlüsselwort\textrangle \textlangle{}Rückgabetyp\textrangle \textlangle{}Bezeichner\textrangle(\textlangle{}Parameter\textrangle; +\end{obox} + +\vspace{1cm} + +\begin{wrapfigure}{l}{0.35\textwidth} +\vspace{-1.7cm} +\includegraphics[width=6cm, keepaspectratio, page=5, trim=1cm 0cm 2.75cm 0cm, clip]{capsule.pdf} +\end{wrapfigure} + +\begin{bbox}{Datenkapselung} +Der Grundsatz der \textbf{Datenkapselung} besagt, dass nur ein Objekt selbst Zugriff auf seine Attribute haben sollte. \\ +Der Zugriff von außen sollte nur über durch das Objekt bereitgestellte Methoden erfolgen. +\end{bbox} + +\begin{obox}{Java Schlüsselwörter} +\begin{minted}{java} +private // Zugriff nur innerhalb der selben Klasse +public // Uneingeschränkter Zugriff +protected // Zugriff nur aus dem gleichen Java-Paket +\end{minted} +\end{obox} + +\begin{obox}{Verwendung} +% \texttt +\textlangle{}Schlüsselwort\textrangle \textlangle{}Datentyp\textrangle \textlangle{}Bezeichner\textrangle; \\ +\textlangle{}Schlüsselwort\textrangle \textlangle{}Rückgabetyp\textrangle \textlangle{}Bezeichner\textrangle(\textlangle{}Parameter\textrangle; +\end{obox} + +\vspace{1cm} + +\begin{wrapfigure}{l}{0.35\textwidth} +\vspace{-1.7cm} +\includegraphics[width=6cm, keepaspectratio, page=5, trim=1cm 0cm 2.75cm 0cm, clip]{capsule.pdf} +\end{wrapfigure} + +\begin{bbox}{Datenkapselung} +Der Grundsatz der \textbf{Datenkapselung} besagt, dass nur ein Objekt selbst Zugriff auf seine Attribute haben sollte. \\ +Der Zugriff von außen sollte nur über durch das Objekt bereitgestellte Methoden erfolgen. +\end{bbox} + +\begin{obox}{Java Schlüsselwörter} +\begin{minted}{java} +private // Zugriff nur innerhalb der selben Klasse +public // Uneingeschränkter Zugriff +protected // Zugriff nur aus dem gleichen Java-Paket +\end{minted} +\end{obox} + +\begin{obox}{Verwendung} +% \texttt +\textlangle{}Schlüsselwort\textrangle \textlangle{}Datentyp\textrangle \textlangle{}Bezeichner\textrangle; \\ +\textlangle{}Schlüsselwort\textrangle \textlangle{}Rückgabetyp\textrangle \textlangle{}Bezeichner\textrangle(\textlangle{}Parameter\textrangle; +\end{obox} + +\end{document} diff --git a/Info/10/2/Datenkapselung/img/Bank.png b/Info/10/2/Datenkapselung/img/Bank.png Binary files differnew file mode 100644 index 00000000..cda6d621 --- /dev/null +++ b/Info/10/2/Datenkapselung/img/Bank.png diff --git a/Info/10/2/Datenkapselung/img/Computer-hacker.jpg b/Info/10/2/Datenkapselung/img/Computer-hacker.jpg Binary files differnew file mode 100644 index 00000000..986d05a6 --- /dev/null +++ b/Info/10/2/Datenkapselung/img/Computer-hacker.jpg diff --git a/Info/10/2/Datenkapselung/img/associations.png b/Info/10/2/Datenkapselung/img/associations.png Binary files differnew file mode 100644 index 00000000..ccf9b0d9 --- /dev/null +++ b/Info/10/2/Datenkapselung/img/associations.png diff --git a/Info/10/2/Datenkapselung/img/farbwalzen.png b/Info/10/2/Datenkapselung/img/farbwalzen.png Binary files differnew file mode 100644 index 00000000..816a9bad --- /dev/null +++ b/Info/10/2/Datenkapselung/img/farbwalzen.png diff --git a/Info/10/2/Datenkapselung/img/hacker_PNG14.png b/Info/10/2/Datenkapselung/img/hacker_PNG14.png Binary files differnew file mode 100644 index 00000000..0588cab3 --- /dev/null +++ b/Info/10/2/Datenkapselung/img/hacker_PNG14.png diff --git a/Info/10/2/Datenkapselung/img/matrix-communication-software-pc.jpg b/Info/10/2/Datenkapselung/img/matrix-communication-software-pc.jpg Binary files differnew file mode 100644 index 00000000..714d2d42 --- /dev/null +++ b/Info/10/2/Datenkapselung/img/matrix-communication-software-pc.jpg diff --git a/Info/10/2/Datenkapselung/img/matrix-communication-software-pc.png b/Info/10/2/Datenkapselung/img/matrix-communication-software-pc.png Binary files differnew file mode 100644 index 00000000..56a80c77 --- /dev/null +++ b/Info/10/2/Datenkapselung/img/matrix-communication-software-pc.png diff --git a/Info/10/2/Datenkapselung/img/pointing-down-finger.jpg b/Info/10/2/Datenkapselung/img/pointing-down-finger.jpg Binary files differnew file mode 100644 index 00000000..57c9dd0d --- /dev/null +++ b/Info/10/2/Datenkapselung/img/pointing-down-finger.jpg diff --git a/Info/10/2/Datenkapselung/img/pointing-right-finger.jpg b/Info/10/2/Datenkapselung/img/pointing-right-finger.jpg Binary files differnew file mode 100644 index 00000000..f94e5401 --- /dev/null +++ b/Info/10/2/Datenkapselung/img/pointing-right-finger.jpg diff --git a/Info/10/2/Datenkapselung/img/pointing-right-finger.png b/Info/10/2/Datenkapselung/img/pointing-right-finger.png Binary files differnew file mode 100644 index 00000000..58cd0249 --- /dev/null +++ b/Info/10/2/Datenkapselung/img/pointing-right-finger.png diff --git a/Info/10/2/Datenkapselung/img/slot-machine-g23d043aac_1280.png b/Info/10/2/Datenkapselung/img/slot-machine-g23d043aac_1280.png Binary files differnew file mode 100644 index 00000000..de6a4dc7 --- /dev/null +++ b/Info/10/2/Datenkapselung/img/slot-machine-g23d043aac_1280.png diff --git a/Info/10/2/Datenkapselung/img/white-hat.png b/Info/10/2/Datenkapselung/img/white-hat.png Binary files differnew file mode 100644 index 00000000..2377cdaf --- /dev/null +++ b/Info/10/2/Datenkapselung/img/white-hat.png diff --git a/Info/10/2/Datenkapselung/schedule.md b/Info/10/2/Datenkapselung/schedule.md new file mode 100644 index 00000000..ad0b5c78 --- /dev/null +++ b/Info/10/2/Datenkapselung/schedule.md @@ -0,0 +1,23 @@ +--- +lang: de +geometry: margin=2cm +--- +# Datenkapselung + +## Lernziele + +* SuS erklaeren das Konzept von Referenzvariablen im Kontext einer Spielautomatenimplementierung +* SuS wenden die Punktnotation (PN) an um Methoden und Attreibute von Referenzvariablen zu verwenden +* SuS erklaeren des Begriff der Datenkapselung und koennen ihn auf Sachbeispiele anwenden +* SuS wenden die Java schluesselwoerter 'private' und 'public' an um das Konzept der Datenkapselung in angemessenen Beispielprogrammen umzusetzen + +## Zeitplan + +| Zeit | Phase | Unterrichtsgeschehen | Ziel | Methode | Medien | +|:-----|-------------|--------------------------------------------------------------------|--------------------------------------------------------------------|----------|------------------| +|3 | Wdh | SuS erarbeiten an einem simplen Beispielprojekt / Klassendiagram RV| SuS erklaeren das Konzept der RV und ihrer Deklaration | UG | BE, T | +|7 | Wdh | SuS verwenden die PN fuer Referenzvariablen | SuS wenden PN an um Methoden/Attribute von RV zu verwenden | UG | AB, BE | +|5 | Erarbeitung | SuS erkunden unterschied zwischen private/public | | LV | BE | +|5 | Erarbeitng | Einfuehrung der Datenkapselung und private/public | | UG | AB, BE | +|15 | Vertiefung | SuS finden fehlende Datenkapselung und nutzen sie aus | SuS erkennen die Risiken fehlender Datenkapselung | UG | BE, AB | +|10 | Vertiefung | SuS wenden die Datenkapselung und Keywords an | | UG | BE, AB | diff --git a/Info/10/2/Datenkapselung/slides-bank.md b/Info/10/2/Datenkapselung/slides-bank.md new file mode 100644 index 00000000..cbcbc052 --- /dev/null +++ b/Info/10/2/Datenkapselung/slides-bank.md @@ -0,0 +1,75 @@ +--- +author: Florian Fischer +theme: Rochester +header-includes: | + \usepackage[school]{pgf-umlcd} + \usepackage{bm} + \usepackage{tikz} + \usetikzlibrary{calc, arrows.meta} +--- + + + +```{.include} +slides.md +``` + + +## Bank + +{.center} + +## Bank Modellierung + +\begin{tikzpicture}[ +class/.style={ +draw, +rectangle, +minimum width={width("Hacker")}, +font=\small}] + +\node[class] (kunde) at (0,2) {Kunde}; +\node[class] (hacker) at (0,0) {Hacker}; + +\draw[arrows={Stealth[inset=0pt, length=10pt, angle'=60, open]-}] (kunde.south) edge[midway, right] node {\small ist} (hacker.north); + +\node[class] (bank) at (4.5,1) {Bank}; + +\draw(kunde.east) edge[midway, sloped, align=center] node {\small < bedient \\ \small hat Konto bei > } (bank.west); + +\node[class] (konto) at (9,1) {Konto}; + +\draw (bank) edge[midway, sloped, align=center] node {\small verwaltet > \\ \small < wird verwaltet} (konto); +\end{tikzpicture} + +## Arbeitsauftrag + +::: columns +:::: {.column} + +:::: +:::: column + +:::: +::: + +## Arbeitsauftrag + +Arbeitszeit: 30min + +* **Aufagbe 0**: Untersuche die Klasse `Bank` und `Konto` auf fehlende Datenkapselung. +* **Aufgabe 1**: Ergänze die Methode `kontoAufloesen` in der Klasse `Kunde`. +* **Aufagbe 2**: Ergänze die Methoden `erfindeGeld` in der Klasse `Hacker`. +* **Zusatzaufgaben**: Im Quellcode sind 3 zusätzliche Aufgaben ausgewiesen. + +Happy Hacking :) + +## Arbeitsauftrag 2 + +Stelle dir vor, du wurdest von der Bank beauftragt, ihre Software abzusichern. {width=1cm} + +* **Aufgabe 3**: Ergänze die Klassen `Bank` und `Konto` um die Methoden `Hacker:erfindeGeld`{.java} zu verhindern. +* **Aufgabe 4**: Ergänze die Klassen `Bank` um die Methoden `kontoAufloesen(Karte karte)`{.java} die alle benötigten Schritte ausführt um ein Konto vollständig aufzulösen. + +### Tipp +Verwende den Grundsatz der **Datenkapselung** sowie das geeignete Java Schlüsselwort. diff --git a/Info/10/2/Datenkapselung/slides-spielautomat.md b/Info/10/2/Datenkapselung/slides-spielautomat.md new file mode 100644 index 00000000..1de621b1 --- /dev/null +++ b/Info/10/2/Datenkapselung/slides-spielautomat.md @@ -0,0 +1,76 @@ +--- +author: Florian Fischer +theme: Rochester +header-includes: | + \usepackage[school]{pgf-umlcd} + \usepackage{bm} + \usepackage{tikz} + \usetikzlibrary{calc} +--- + + + +```{.include} +slides.md +``` + + +## Wiederholung Spielautomat + +\vspace{-1cm} +{.center height=0.8\textheight} + +## Wiederholung Spielautomat + +\begin{tikzpicture}[ +class/.style={ +draw, +rectangle, +minimum width={width("FARBKREIS")}, +font=\small}] + +\node[class] (kasten) at (0,0) {KASTEN}; +\node[class] (farbkreis) at (0,2) {FARBKREIS}; + +\node[class] (spielwalze) at (4.5,1) {SPIELWALZE}; + +\draw(kasten.east) edge[midway, sloped, align=center] node {\small < besteht \\ \small aus} (spielwalze.west); +\draw (farbkreis.east) edge[midway, sloped, align=center] node {\small < besteht \\ \small aus} (spielwalze.west); + +\node[class] (spielautomat) at (9,1) {SPIELAUTOMAT}; + +\draw (spielwalze) edge[midway, sloped, align=center] node {\small < besteht \\ aus} (spielautomat); +\end{tikzpicture} + +## Arbeitsauftrag + +::: columns +:::: {.column} +\vspace{1.2cm} + +:::: +:::: column + +:::: +::: + +## Arbeitsauftrag + +Arbeitszeit: 15min + +Kopiere die Spielautomatvorlage unter `Vorlagen/FIF/Spielautomat_Datenkapselung auf` deinen USB-Stick. + +* **Aufagbe 0**: Untersuche die Klasse `SPIELAUTOMAT` und `SPIELWALZE` auf fehlende Datenkapselung. +* **Aufagbe 1**: Ergänze die Methoden `SchalteAutomatenLichterAus` in der Klasse `SPIELER`. +* **Aufgabe 2**: Ergänze die Methode `ManipuliereAutomat` in der Klasse `SPIELER`. +* **Zusatzaufgabe**: Ergänze die Methode `ZerstoereAutomat` in der Klasse `SPIELER`. + +## Arbeitsauftrag 2 + +Stelle dir vor, du wurdest von dem Spielautomat-Hersteller beauftragt, den Spielautomaten abzusichern. {width=1cm} + +### Aufgabe +Ergänze die Klassen `SPIELWALZE` und `SPIELAUTOMAT` um die Methoden `SchalteAutomatenLichterAus` und `ManipuliereAutomat` zu verhindern. + +### Tipp +Verwende den Grundsatz der **Datenkapselung** sowie das geeignete Java Schlüsselwort. diff --git a/Info/10/2/Datenkapselung/slides.md b/Info/10/2/Datenkapselung/slides.md new file mode 100644 index 00000000..fc5e26af --- /dev/null +++ b/Info/10/2/Datenkapselung/slides.md @@ -0,0 +1,260 @@ +--- +author: Florian Fischer +theme: Rochester +header-includes: | + \usepackage[school]{pgf-umlcd} + \usepackage{bm} + \usepackage{tikz} + \usetikzlibrary{calc} +--- + +## Wdh. Klassendiagramm + +<!-- \begin{tikzpicture} --> + <!-- \begin{class}[text width=5cm]{SPIELAUTOMAT}{0,0} --> + <!-- \attribute{walze1 : SPIELWALZE} --> + <!-- \attribute{walze2 : SPIELWALZE} --> + <!-- \attribute{walze3 : SPIELWALZE} --> + <!-- \operation{AlleDrehen()} --> + <!-- \end{class} --> + + <!-- \begin{class}[text width=5cm]{SPIELWALZE}{6,0} --> + <!-- \attribute{hintergrund : KASTEN} --> + <!-- \attribute{farbsymbol : FARBKREIS} --> + <!-- \operation{Drehen()} --> + <!-- \end{class} --> + + <!-- \association{SPIELAUTOMAT}{}{1}{SPIELWALZE}{3}{} --> +<!-- \end{tikzpicture} --> + +<!--  --> + +\begin{center} +\begin{tikzpicture}[ +class/.style={ +draw, +rectangle, +minimum width={width("SCHUELER")}, +font=\small}] + +\node[class] (schueler) at (0,0) {SCHUELER}; + +\node[class] (akte) at (5, 0) {AKTE}; + +\draw(schueler.east) edge[above, align=center] node {\small > hat eine} (akte.west); +\end{tikzpicture} +\end{center} + +## Wdh. Referenzvariablen + +\small + +::: columns +:::: {.column width=40%} +```java +class SCHUELER { + private String name; + + + void SCHUELER(String n, + double s) + { + name = n; + + } +} +``` +:::: + +:::: {.column width=60%} +```java +class AKTE { + public String spitzname; + private double notenschnitt; + + public void AKTE(double s) + { + notenschnitt = s; + spitzname = ""; + } +} +``` +:::: +::: + +\normalsize + +## Wdh. Referenzvariablen + +\small + +::: columns +:::: {.column width=40%} +```java +class SCHUELER { + private String name; + private AKTE akte; + + void SCHUELER(String n, + double s) + { + name = n; + + } +} +``` +:::: + +:::: {.column width=60%} +```java +class AKTE { + public String spitzname; + private double notenschnitt; + + public void AKTE(double s) + { + notenschnitt = s; + spitzname = ""; + } +} +``` +:::: +::: + +\normalsize + +## Wdh. Referenzvariablen + +\small + +::: columns +:::: {.column width=40%} +```java +class SCHUELER { + private String name; + private AKTE akte; + + void SCHUELER(String n, + double s) + { + name = n; + akte = new AKTE(1.0); + } +} +``` +:::: + +:::: {.column width=60%} +```java +class AKTE { + public String spitzname; + private double notenschnitt; + + public void AKTE(double s) + { + notenschnitt = s; + spitzname = ""; + } +} +``` +:::: +::: + +\normalsize + +## Arbeitsauftrag + +Arbeitszeit: 7min + +Kopiere die Vorlage des Projekts Schülerakte unter `Vorlagen/FIF/Schuelerakte` auf deinen USB-Stick. + +* Aufgabe 1: Vervollständige die Methode `ZusammenfassungAusgeben` in der Klasse `SCHUELER`. +* Aufgabe 2: Vervollständige die Methode `SpitznameSetzen` in der Klasse `SCHUELER`. +* Aufgebe 3: Vervollständige die Methode `NotenschnittSetzen` in der Klasse `SCHUELER`. Und merke dir deine Beobachtungen. + +## Wdh. Punktdiagram + +\begin{tikzpicture}[scale=0.5] + \begin{object}[text width=4cm]{s1}{0,0} + \instanceOf{SCHUELER} + \attribute{name : String} + \attribute{akte : AKTE} + \end{object} + + \begin{object}[text width=4cm]{a1}{12,0} + \instanceOf{AKTE} + \attribute{spitzname : String} + \attribute{notenschnitt : double} + \end{object} + + \only<2->{ + \node[fill=black, circle, minimum size=0.075cm] (circle) at (1, -2.5) {}; + \draw[line width=2pt, -latex] (circle) edge [bend left=15] (8, -0.5) {}; + } + +\end{tikzpicture} + +\pause +\pause + +\vspace{0.5cm} +`<bezeichner>.<attribute>` +`<bezeichner>.<methode>(<parameter>)` + +\pause + +### Beispiele in `SCHUELER` + +```java +akte.spitzname = "J"; +akte.SpitznameSetzen("J"); +``` + +## Datenkapselung + +\begin{center} +\scalebox{0.82}{ +\input{capsule.tikz} +} +\end{center} + +## Datenkapselung + +### Merke + +Der Grundsatz der **Datenkapselung** besagt, dass nur ein Objekt selbst Zugriff auf seine Attribute haben sollte. + +\pause + +\vspace{0.75cm} + +Der Zugriff von außen sollte nur über durch das Objekt bereitgestellte Methoden erfolgen. + +## Zugriffsrechte + +Um den Zugriff auf Klasse, Methoden und Attribute zu steuern stellt Java folgende Schlüsselwörter, auch Zugriffsmodifikatoren genannt, bereit: + +\vspace{0.25cm} + +### Schlüsselwörter +\pause +`private // Zugriff nur innerhalb der selben Klasse`{.java} \pause +`public // Uneingeschränkter Zugriff`{.java} \pause +`protected // Zugriff nur aus dem gleichen Java-Paket`{.java} + +## Zugriffsrechte + +### Verwendung +\small +`<Schlüsselwort> <Datentyp> <Bezeichner>;` +`<Schlüsselwort> <Rückgabetyp> <Bezeichner>(<Parameter>);` + +\pause + +### Beispiele in `SCHUELERAKTE` +```java +private double notenschnitt; +public String spitzname; + +private void NotenschnittSetzen(double neuerSchnitt); +``` |
