@@ -482,11 +482,18 @@ \section{Methoden}
482482 \item können den Zustand des Objekts verändern
483483 \end {itemize }
484484
485+ \begin {exampleblock }{Beispiel}
486+ \ begin{lstlisting} [language=Java]
487+ double convertToFahrenheit(double celsius) {
488+ return (celsius * 9.0) / 5.0 + 32.0;
489+ }
490+ \end {lstlisting }
491+ \end {exampleblock }
485492
486493
487494\end {frame }
488495
489- \begin {frame }[fragile] {Parameter}
496+ \begin {frame }{Parameter}
490497 \begin {itemize }
491498 \item Ein Parameter ist eine spezielle Variable, welche einen an eine Methode übergebenen Wert beinhaltet.
492499 \pause
@@ -497,7 +504,9 @@ \section{Methoden}
497504 \end {itemize }
498505 \end {itemize }
499506
500- \pause
507+ \end {frame }
508+
509+ \begin {frame }[fragile]{Parameter}
501510 \begin {exampleblock }{Beispiel}
502511 \ begin{lstlisting} [language=Java]
503512public Dog(String name) { ... } // formaler parameter
@@ -506,9 +515,9 @@ \section{Methoden}
506515Dog odie = new Dog(someName); // aktueller parameter
507516 \end {lstlisting }
508517 \end {exampleblock }
509-
510518\end {frame }
511519
520+
512521\begin {frame }{Lokale Variablen}
513522 \textbf {Lokale Variablen }
514523 \begin {itemize }
@@ -543,18 +552,119 @@ \section{Methoden}
543552 \end {lstlisting }
544553 \end {exampleblock }
545554
555+ \end {frame }
556+
557+ \begin {frame }[fragile]{Wert vs. Referenz}
558+ Was passiert in diesem Code \dots
559+ \begin {exampleblock }{}
560+ \ begin{lstlisting} [language=Java,basicstyle=\scriptsize]
561+ public class Number {
546562
563+ private int value;
564+
565+ public Number(int value) {
566+ this.value = value;
567+ }
568+
569+ public void setValue(int value) {
570+ this.value = value;
571+ }
572+
573+ public int getValue() {
574+ return this.value;
575+ }
576+
577+ }
578+ \end {lstlisting }
579+ \end {exampleblock }
547580
548581\end {frame }
549582
550- \begin {frame }{Wert - Referenz}
551- body
583+ \begin {frame }[fragile]{Wert vs. Referenz}
584+ \begin {exampleblock }{}
585+ \ begin{lstlisting} [language=Java,basicstyle=\scriptsize]
586+ public static int fortyTwo(int n) {
587+ n = 42;
588+ return n;
589+ }
590+
591+ public static Number fortyTwo(Number n) {
592+ n.setValue(42);
593+ return n;
594+ }
595+
596+ int firstNumber = 1;
597+ int firstResult = fortyTwo(firstNumber);
598+ System.out.println("firstNumber = " + firstNumber);
599+ System.out.println("firstResult = " + firstResult);
600+
601+ Number secondNumber = new Number(1);
602+ Number secondResult = fortyTwo(secondNumber);
603+ System.out.println("secondNumber = " + secondNumber.getValue());
604+ System.out.println("secondResult = " + secondResult.getValue());
605+ \end {lstlisting }
606+ \end {exampleblock }
607+
608+ \end {frame }
609+
610+ \begin {frame }[fragile]{Wert vs. Referenz}
611+ \begin {alertblock }{Ausgabe}
612+ \ begin{lstlisting}
613+ firstNumber = 1
614+ firstResult = 42
615+ secondNumber = 42
616+ secondResult = 42
617+ \end {lstlisting }
618+ \end {alertblock }
619+
620+ \pause
621+ \vspace {.5in}
622+ \textit {Was ist hier los ? }
623+
624+ \end {frame }
625+
626+ \begin {frame }{Wert vs. Referenz}
627+ \begin {block }{}
628+ \textbf {Objekte als Parameter } werden als \textbf {Referenz } an die Methode übergeben
629+ \begin {itemize }
630+ \item Die Methode erhält \textbf {Referenz } auf Objekt im Speicher
631+ \item Das Objekt kann also \textbf {von der Methode modifiziert } werden
632+ \end {itemize }
633+ \end {block }
634+
635+ \begin {block }{}
636+ Sonstige Parameter (primitive Datentypen) werden \textbf {kopiert }
637+ \begin {itemize }
638+ \item Die Methode erhält \textbf {Kopie } der Variable
639+ \item Änderungen innerhalb der Methode haben also \textbf {keine Auswirkung nach außen }
640+ \end {itemize }
641+ \end {block }
642+ \end {frame }
643+
644+
645+ \begin {frame }[fragile]{Private Methoden}
646+ \textbf {Private Methoden }
647+ \begin {itemize }
648+ \item sind nur innerhalb Methoden derselben Klasse erreichbar
649+ \item dienen oft als \textbf {Hilfsmethoden }
650+ \item sind nach außen hin \textit {nicht } sichtbar
651+ \item Schlüsselwort \texttt {private }
652+ \end {itemize }
653+
654+ \begin {exampleblock }{Beispiel}
655+ \ begin{lstlisting} [language=Java]
656+ private double convertToFahrenheit(double celsius) {
657+ return (celsius * 9.0) / 5.0 + 32.0;
658+ }
659+ \end {lstlisting }
660+ \end {exampleblock }
552661\end {frame }
553662
554663\begin {frame }{Private Methoden}
555- body
664+ \textit { Mehr dazu kommt im Kapitel zur \textbf { Sichtbarkeit } (scope) } !
556665\end {frame }
557666
667+
558668\begin {frame }{Überladen von Methoden}
559669 body
560670\end {frame }
@@ -572,7 +682,7 @@ \section{Methoden}
572682
573683 \begin {exampleblock }{\texttt {main }}
574684 \ begin{lstlisting} [language=Java]
575- public static void main(String argv []) {
685+ public static void main(String args []) {
576686 // do something...
577687}
578688 \end {lstlisting }
@@ -582,8 +692,8 @@ \section{Methoden}
582692
583693\end {frame }
584694
585- \begin {frame }[fragile]{argv []}
586- \texttt {argv [] } enthält die Parameter, welche in der Kommandozeile an das Programm übergeben werden.
695+ \begin {frame }[fragile]{args []}
696+ \texttt {args [] } enthält die Parameter, welche in der Kommandozeile an das Programm übergeben werden.
587697 \pause
588698 \begin {exampleblock }{Kommandozeile}
589699 \ begin{lstlisting}
@@ -593,17 +703,17 @@ \section{Methoden}
593703
594704\end {frame }
595705
596- \begin {frame }[fragile]{argv []}
706+ \begin {frame }[fragile]{args []}
597707
598708 \begin {exampleblock }{Im Programm}
599709 \ begin{lstlisting} [language=Java]
600710public class MyProgram {
601711
602- public static void main(String argv []) {
603- System.out.println("argv [0] ist " + argv [0]);
604- System.out.println("argv [1] ist " + argv [1]);
605- System.out.println("argv [2] ist " + argv [2]);
606- System.out.println("argv [3] ist " + argv [3]);
712+ public static void main(String args []) {
713+ System.out.println("args [0] ist " + args [0]);
714+ System.out.println("args [1] ist " + args [1]);
715+ System.out.println("args [2] ist " + args [2]);
716+ System.out.println("args [3] ist " + args [3]);
607717 }
608718
609719}
@@ -612,14 +722,14 @@ \section{Methoden}
612722
613723\end {frame }
614724
615- \begin {frame }[fragile]{argv []}
725+ \begin {frame }[fragile]{args []}
616726
617727 \begin {exampleblock }{Ausgabe}
618728 \ begin{lstlisting}
619- argv [0] ist 42
620- argv [1] ist -v
621- argv [2] ist 9000
622- argv [3] ist foo
729+ args [0] ist 42
730+ args [1] ist -v
731+ args [2] ist 9000
732+ args [3] ist foo
623733 \end {lstlisting }
624734 \end {exampleblock }
625735
0 commit comments