Skip to content
This repository was archived by the owner on Apr 21, 2018. It is now read-only.

Commit ee3b9ca

Browse files
author
YouniS Bensalah
committed
wazzaaaaaaa
1 parent 0e08168 commit ee3b9ca

5 files changed

Lines changed: 170 additions & 20 deletions

File tree

slides-03.tex

Lines changed: 130 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -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]
503512
public Dog(String name) { ... } // formaler parameter
@@ -506,9 +515,9 @@ \section{Methoden}
506515
Dog 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]
600710
public 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

snippets/MagicProgram.class

1.04 KB
Binary file not shown.

snippets/MagicProgram.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
public class MagicProgram {
2+
public static void main(String args[]) {
3+
int firstNumber = 1;
4+
int firstResult = fortyTwo(firstNumber);
5+
System.out.println("firstNumber = " + firstNumber);
6+
System.out.println("firstResult = " + firstResult);
7+
8+
Number secondNumber = new Number(1);
9+
Number secondResult = fortyTwo(secondNumber);
10+
System.out.println("secondNumber = " + secondNumber.getValue());
11+
System.out.println("secondResult = " + secondResult.getValue());
12+
}
13+
14+
public static int fortyTwo(int n) {
15+
n = 42;
16+
return n;
17+
}
18+
19+
public static Number fortyTwo(Number n) {
20+
n.setValue(42);
21+
return n;
22+
}
23+
}

snippets/Number.class

355 Bytes
Binary file not shown.

snippets/Number.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
public class Number {
2+
3+
private int value;
4+
5+
public Number(int value) {
6+
this.value = value;
7+
}
8+
9+
public void setValue(int value) {
10+
this.value = value;
11+
}
12+
13+
public int getValue() {
14+
return this.value;
15+
}
16+
17+
}

0 commit comments

Comments
 (0)