algodat-java-intro/print_page.html

1796 lines
186 KiB
HTML

<!doctype html>
<html lang="de" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link rel="icon" href="assets/images/favicon.png">
<meta name="generator" content="mkdocs-1.3.1, mkdocs-material-8.4.2">
<title>Print as PDF - Markdown Docs</title>
<link rel="stylesheet" href="assets/stylesheets/main.69437709.min.css">
<link rel="stylesheet" href="assets/stylesheets/palette.cbb835fc.min.css">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
<link rel="stylesheet" href="css/print-site-enum-headings1.css">
<link rel="stylesheet" href="css/print-site-enum-headings2.css">
<link rel="stylesheet" href="css/print-site-enum-headings3.css">
<link rel="stylesheet" href="css/print-site.css">
<link rel="stylesheet" href="css/print-site-material.css">
<script>__md_scope=new URL("/",location),__md_hash=e=>[...e].reduce((e,_)=>(e<<5)-e+_.charCodeAt(0),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
<script type="text/javascript">
document.addEventListener('DOMContentLoaded', function () {
remove_material_navigation();remove_mkdocs_theme_navigation();generate_toc();
})
</script>
</head>
<body dir="ltr" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo">
<script>var palette=__md_get("__palette");if(palette&&"object"==typeof palette.color)for(var key of Object.keys(palette.color))document.body.setAttribute("data-md-color-"+key,palette.color[key])</script>
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" for="__drawer"></label>
<div data-md-component="skip">
<a href="#" class="md-skip">
Zum Inhalt
</a>
</div>
<div data-md-component="announce">
</div>
<header class="md-header" data-md-component="header">
<nav class="md-header__inner md-grid" aria-label="Header">
<a href="index.html" title="Markdown Docs" class="md-header__button md-logo" aria-label="Markdown Docs" data-md-component="logo">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"/></svg>
</a>
<label class="md-header__button md-icon" for="__drawer">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2Z"/></svg>
</label>
<div class="md-header__title" data-md-component="header-title">
<div class="md-header__ellipsis">
<div class="md-header__topic">
<span class="md-ellipsis">
Markdown Docs
</span>
</div>
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
Print as PDF
</span>
</div>
</div>
</div>
<form class="md-header__option" data-md-component="palette">
<input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_1">
<label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_2" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 6H7c-3.31 0-6 2.69-6 6s2.69 6 6 6h10c3.31 0 6-2.69 6-6s-2.69-6-6-6zm0 10H7c-2.21 0-4-1.79-4-4s1.79-4 4-4h10c2.21 0 4 1.79 4 4s-1.79 4-4 4zM7 9c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"/></svg>
</label>
<input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="indigo" data-md-color-accent="indigo" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_2">
<label class="md-header__button md-icon" title="Switch to light mode" for="__palette_1" hidden>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 7H7a5 5 0 0 0-5 5 5 5 0 0 0 5 5h10a5 5 0 0 0 5-5 5 5 0 0 0-5-5m0 8a3 3 0 0 1-3-3 3 3 0 0 1 3-3 3 3 0 0 1 3 3 3 3 0 0 1-3 3Z"/></svg>
</label>
</form>
<label class="md-header__button md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
</label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" aria-label="Suche" placeholder="Suche" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
<label class="md-search__icon md-icon" for="__search">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5Z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12Z"/></svg>
</label>
<nav class="md-search__options" aria-label="Suche">
<button type="reset" class="md-search__icon md-icon" aria-label="Zurücksetzen" tabindex="-1">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41Z"/></svg>
</button>
</nav>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix>
<div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
Suche wird initialisiert
</div>
<ol class="md-search-result__list"></ol>
</div>
</div>
</div>
</div>
</div>
<div class="md-header__source">
<a href="https://github.com/YamiDoesDev/algodat-java-intro" title="Quellcode" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.1.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
</div>
<div class="md-source__repository">
GitHub
</div>
</a>
</div>
</nav>
</header>
<div class="md-container" data-md-component="container">
<main class="md-main" data-md-component="main">
<div class="md-main__inner md-grid">
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
<label class="md-nav__title" for="__drawer">
<a href="index.html" title="Markdown Docs" class="md-nav__button md-logo" aria-label="Markdown Docs" data-md-component="logo">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54Z"/></svg>
</a>
Markdown Docs
</label>
<div class="md-nav__source">
<a href="https://github.com/YamiDoesDev/algodat-java-intro" title="Quellcode" class="md-source" data-md-component="source">
<div class="md-source__icon md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.1.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81z"/></svg>
</div>
<div class="md-source__repository">
GitHub
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="index.html" class="md-nav__link">
Crashkurs Java im Modul Algorithmen und Datenstrukturen
</a>
</li>
<li class="md-nav__item">
<a href="01_hello_world.html" class="md-nav__link">
01: Hello World
</a>
</li>
<li class="md-nav__item">
<a href="02_basics.html" class="md-nav__link">
02: Basics
</a>
</li>
<li class="md-nav__item">
<a href="03_coding_style.html" class="md-nav__link">
03: Coding Style
</a>
</li>
<li class="md-nav__item">
<a href="04_introduction_to_objects.html" class="md-nav__link">
04: Einführung in Objekte
</a>
</li>
<li class="md-nav__item">
<a href="05_types_of_objects.html" class="md-nav__link">
05: Typen von Objekten
</a>
</li>
<li class="md-nav__item">
<a href="06_java_docs.html" class="md-nav__link">
06: JavaDoc
</a>
</li>
<li class="md-nav__item">
<input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
<label class="md-nav__link md-nav__link--active" for="__toc">
Print as PDF
<span class="md-nav__icon md-icon"></span>
</label>
<a href="print_page.html" class="md-nav__link md-nav__link--active">
Print as PDF
</a>
<nav class="md-nav md-nav--secondary" aria-label="Inhaltsverzeichnis">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Inhaltsverzeichnis
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#" class="md-nav__link">
1. Crashkurs Java im Modul Algorithmen und Datenstrukturen
</a>
</li>
<li class="md-nav__item">
<a href="#01_hello_world" class="md-nav__link">
2. 01: Hello World
</a>
</li>
<li class="md-nav__item">
<a href="#02_basics" class="md-nav__link">
3. 02: Basics
</a>
</li>
<li class="md-nav__item">
<a href="#03_coding_style" class="md-nav__link">
4. 03: Coding Style
</a>
</li>
<li class="md-nav__item">
<a href="#04_introduction_to_objects" class="md-nav__link">
5. 04: Einführung in Objekte
</a>
</li>
<li class="md-nav__item">
<a href="#05_types_of_objects" class="md-nav__link">
6. 05: Typen von Objekten
</a>
</li>
<li class="md-nav__item">
<a href="#06_java_docs" class="md-nav__link">
7. 06: JavaDoc
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary" aria-label="Inhaltsverzeichnis">
<label class="md-nav__title" for="__toc">
<span class="md-nav__icon md-icon"></span>
Inhaltsverzeichnis
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#" class="md-nav__link">
1. Crashkurs Java im Modul Algorithmen und Datenstrukturen
</a>
</li>
<li class="md-nav__item">
<a href="#01_hello_world" class="md-nav__link">
2. 01: Hello World
</a>
</li>
<li class="md-nav__item">
<a href="#02_basics" class="md-nav__link">
3. 02: Basics
</a>
</li>
<li class="md-nav__item">
<a href="#03_coding_style" class="md-nav__link">
4. 03: Coding Style
</a>
</li>
<li class="md-nav__item">
<a href="#04_introduction_to_objects" class="md-nav__link">
5. 04: Einführung in Objekte
</a>
</li>
<li class="md-nav__item">
<a href="#05_types_of_objects" class="md-nav__link">
6. 05: Typen von Objekten
</a>
</li>
<li class="md-nav__item">
<a href="#06_java_docs" class="md-nav__link">
7. 06: JavaDoc
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
<div id="print-site-page" class="print-site-enumerate-headings print-site-enumerate-figures">
<div id="print-site-banner">
<p>
<em>This box will disappear when printing</em>
<span style="float: right"><a href="https://timvink.github.io/mkdocs-print-site-plugin/">mkdocs-print-site-plugin</a></span>
</p>
<p>
This page has combined all site pages into one. You can export to PDF using <b>File > Print > Save as PDF</b>.
</p>
<p>
See also <a href="https://timvink.github.io/mkdocs-print-site-plugin/how-to/export-PDF.html">export to PDF</a> and <a href="https://timvink.github.io/mkdocs-print-site-plugin/how-to/export-HTML.html">export to standalone HTML</a>.
</p>
</div>
<section class="print-page">
<div id="print-page-toc" data-toc-depth="3">
<nav role='navigation' class='print-page-toc-nav'>
<h1 class='print-page-toc-title'>Index</h1>
</nav>
</div>
</section>
<section class="print-page" id="index"><h1 id="index-crashkurs-java-im-modul-algorithmen-und-datenstrukturen">Crashkurs Java im Modul Algorithmen und Datenstrukturen</h1>
<div class="highlight"><pre><span></span><code><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">Main</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;Die Seite ist noch leer&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div></section><section class="print-page" id="01_hello_world"><h1 id="01_hello_world-01-hello-world">01: Hello World</h1>
<h2 id="01_hello_world-approach-1-simple-string-output">Approach 1: Simple String Output</h2>
<p><div class="highlight"><pre><span></span><code><span class="c1">// main.java</span><span class="w"></span>
<span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">main</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;Hello, World!&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>
<div class="highlight"><pre><span></span><code>&gt;&gt; javac main.java
&gt;&gt; java main
Hello, World!
</code></pre></div></p>
<p>Was sagt dieser Code nun aus?
* Eine Klasse "main" ist öffentlich
* Dem Compiler wird die statische Methode <code>main</code> vorlegt
* Diese wird bei jedem Java Code genutzt
* Wir rufen die Klasse System auf und führen einen <code>println</code>-Befehl aus
* <code>Hello, World!</code> wird in der Konsole ausgegeben</p>
<h2 id="01_hello_world-approach-2-using-console-arguments">Approach 2: Using Console Arguments</h2>
<p><div class="highlight"><pre><span></span><code><span class="c1">// main.java</span><span class="w"></span>
<span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">main</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">args</span><span class="o">[</span><span class="mi">0</span><span class="o">]</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="s">&quot; &quot;</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">args</span><span class="o">[</span><span class="mi">1</span><span class="o">]</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>
<div class="highlight"><pre><span></span><code>&gt;&gt; javac main.java
&gt;&gt; java main Hello, World!
Hello, World!
</code></pre></div></p>
<p>Was ist nun anders?
* Die Main-Methode übergibt standardmäßig Konsolenargumente als Array vom Typ String mit dem Namen <code>args</code>
* Jedes Argument hat einen Index im Array
* Für 2 Argumente rufen wir die ersten zwei Indexes auf, beginnend bei <code>0</code></p></section><section class="print-page" id="02_basics"><h1 id="02_basics-02-basics">02: Basics</h1>
<h2 id="02_basics-table-of-contents">Table of Contents</h2>
<ol>
<li><a href="#02_basics-nutzung-der-konsole">Nutzung der Konsole</a></li>
<li><a href="#02_basics-primitive-datentypen">Primitive Datentypen</a></li>
<li><a href="#02_basics-">Nicht Primitive Datentypen</a></li>
<li><a href="#02_basics-">Operatoren</a></li>
<li><a href="#02_basics-">Bedingungen</a></li>
<li><a href="#02_basics-">Schleifen</a></li>
<li><a href="#02_basics-exceptions">Exceptions</a></li>
</ol>
<h2 id="02_basics-nutzung-der-konsole">Nutzung der Konsole</h2>
<h3 id="02_basics-ausgabe">Ausgabe</h3>
<div class="highlight"><pre><span></span><code><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;print me and create a new line&quot;</span><span class="p">);</span><span class="w"></span>
<span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">();</span><span class="w"> </span><span class="c1">// prints nothing but creates new line afterwards</span><span class="w"></span>
<span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">print</span><span class="p">(</span><span class="s">&quot;print me without a new line | &quot;</span><span class="p">);</span><span class="w"></span>
<span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">print</span><span class="p">(</span><span class="s">&quot;print me but add a new line \n&quot;</span><span class="p">);</span><span class="w"></span>
<span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">print</span><span class="p">(</span><span class="s">&quot;yeah, this is on the new line! \n&quot;</span><span class="p">);</span><span class="w"></span>
<span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">();</span><span class="w"> </span><span class="c1">// prints nothing but creates new line afterwards</span><span class="w"></span>
<span class="c1">// https://www.digitalocean.com/community/tutorials/java-printf-method</span><span class="w"></span>
<span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">printf</span><span class="p">(</span><span class="s">&quot;%s %s \n&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;parameter 1&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;parameter 2&quot;</span><span class="p">);</span><span class="w"></span>
<span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">printf</span><span class="p">(</span><span class="s">&quot;%s %e %f&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;10.50&quot;</span><span class="p">,</span><span class="w"> </span><span class="mf">10.50</span><span class="p">,</span><span class="w"> </span><span class="mf">10.50</span><span class="p">);</span><span class="w"></span>
</code></pre></div>
<h3 id="02_basics-eingabe">Eingabe</h3>
<div class="highlight"><pre><span></span><code><span class="kn">import</span><span class="w"> </span><span class="nn">java.util.Scanner</span><span class="p">;</span><span class="w"></span>
<span class="c1">// class and method : start</span><span class="w"></span>
<span class="n">Scanner</span><span class="w"> </span><span class="n">myScanner</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Scanner</span><span class="p">(</span><span class="n">System</span><span class="p">.</span><span class="na">in</span><span class="p">);</span><span class="w"></span>
<span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">print</span><span class="p">(</span><span class="s">&quot;Enter Username: &quot;</span><span class="p">);</span><span class="w"></span>
<span class="n">String</span><span class="w"> </span><span class="n">username</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">myScanner</span><span class="p">.</span><span class="na">nextLine</span><span class="p">();</span><span class="w"></span>
<span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">print</span><span class="p">(</span><span class="s">&quot;Enter Password: &quot;</span><span class="p">);</span><span class="w"></span>
<span class="n">String</span><span class="w"> </span><span class="n">password</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">myScanner</span><span class="p">.</span><span class="na">nextLine</span><span class="p">();</span><span class="w"></span>
<span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;your Username: &quot;</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">username</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="s">&quot;\nyour password: &quot;</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">password</span><span class="w"> </span><span class="p">);</span><span class="w"></span>
<span class="c1">// class and method : end</span><span class="w"></span>
</code></pre></div>
<h2 id="02_basics-primitive-datentypen">Primitive Datentypen</h2>
<p>Quelle: <a href="https://www.w3schools.com/java/java_data_types.asp">w3schools.com</a></p>
<table>
<thead>
<tr>
<th>Data Type</th>
<th>Size</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>byte</td>
<td>1 byte</td>
<td>Stores whole numbers from -128 to 127</td>
</tr>
<tr>
<td>short</td>
<td>2 bytes</td>
<td>Stores whole numbers from -32,768 to 32,767</td>
</tr>
<tr>
<td>int</td>
<td>4 bytes</td>
<td>Stores whole numbers from -2,147,483,648 to 2,147,483,647</td>
</tr>
<tr>
<td>long</td>
<td>8 bytes</td>
<td>Stores whole numbers from -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807</td>
</tr>
<tr>
<td>float</td>
<td>4 bytes</td>
<td>Stores fractional numbers. Sufficient for storing 6 to 7 decimal digits</td>
</tr>
<tr>
<td>double</td>
<td>8 bytes</td>
<td>Stores fractional numbers. Sufficient for storing 15 decimal digits</td>
</tr>
<tr>
<td>boolean</td>
<td>1 bit</td>
<td>Stores true or false values</td>
</tr>
<tr>
<td>char</td>
<td>2 bytes</td>
<td>Stores a single character/letter or ASCII values</td>
</tr>
</tbody>
</table>
<h3 id="02_basics-type-casting">Type Casting</h3>
<p>Bei Type Casting handelt es sich um das überführen eines primitiven Datentypen
in einen anderen.</p>
<p>Quelle: <a href="https://www.w3schools.com/java/java_type_casting.asp">w3schools.com</a></p>
<h4 id="02_basics-widening-casting-automatically">Widening Casting (automatically)</h4>
<p>Hier wird ein kleinerer Typ in einen größeren Typ konvertiert</p>
<p><code>byte</code> -&gt; <code>short</code> -&gt; <code>char</code> -&gt; <code>int</code> -&gt; <code>long</code> -&gt; <code>float</code> -&gt; <code>double</code></p>
<div class="highlight"><pre><span></span><code><span class="kt">int</span><span class="w"> </span><span class="n">myInt</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">9</span><span class="p">;</span><span class="w"></span>
<span class="kt">double</span><span class="w"> </span><span class="n">myDouble</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">myInt</span><span class="p">;</span><span class="w"> </span><span class="c1">// Automatic casting: int to double</span><span class="w"></span>
<span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">myInt</span><span class="p">);</span><span class="w"> </span><span class="c1">// Outputs 9</span><span class="w"></span>
<span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">myDouble</span><span class="p">);</span><span class="w"> </span><span class="c1">// Outputs 9.0</span><span class="w"></span>
</code></pre></div>
<h4 id="02_basics-narrowing-casting-manually">Narrowing Casting (manually)</h4>
<p>Hier wird ein größerer Typ in einen kleineren Typ konvertiert</p>
<p><code>double</code> -&gt; <code>float</code> -&gt; <code>long</code> -&gt; <code>int</code> -&gt; <code>char</code> -&gt; <code>short</code> -&gt; <code>byte</code></p>
<div class="highlight"><pre><span></span><code><span class="kt">double</span><span class="w"> </span><span class="n">myDouble</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">9.78d</span><span class="p">;</span><span class="w"></span>
<span class="kt">int</span><span class="w"> </span><span class="n">myInt</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="p">)</span><span class="w"> </span><span class="n">myDouble</span><span class="p">;</span><span class="w"> </span><span class="c1">// Manual casting: double to int</span><span class="w"></span>
<span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">myDouble</span><span class="p">);</span><span class="w"> </span><span class="c1">// Outputs 9.78</span><span class="w"></span>
<span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">myInt</span><span class="p">);</span><span class="w"> </span><span class="c1">// Outputs 9</span><span class="w"></span>
</code></pre></div>
<h2 id="02_basics-nicht-primitive-datentypen">Nicht Primitive Datentypen</h2>
<h3 id="02_basics-string">String</h3>
<p>String ist eine Wrapperklasse, welche eine Zeichenkette aus einzelnen chars
zusammenbaut. In manchen Programmiersprachen (z.B. C++) ist ein String
vergleichbar mit einem char-Array.</p>
<div class="highlight"><pre><span></span><code><span class="n">String</span><span class="w"> </span><span class="n">myString</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;this is a text&quot;</span><span class="p">;</span><span class="w"></span>
<span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;myString: &quot;</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">myString</span><span class="p">);</span><span class="w"></span>
<span class="n">String</span><span class="w"> </span><span class="n">concatString</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;hello&quot;</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="s">&quot;World&quot;</span><span class="p">;</span><span class="w"></span>
<span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;concatString: &quot;</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">concatString</span><span class="p">);</span><span class="w"></span>
</code></pre></div>
<p>Methoden der Standardbibliothek:
<div class="highlight"><pre><span></span><code><span class="n">myString</span><span class="p">.</span><span class="na">charAt</span><span class="p">();</span><span class="w"> </span><span class="c1">// Returns the char value at the specified index.</span><span class="w"></span>
<span class="n">myString</span><span class="p">.</span><span class="na">indexOf</span><span class="p">();</span><span class="w"> </span><span class="c1">// Returns the index within this string of the first occurrence of the specified substring.</span><span class="w"></span>
<span class="n">myString</span><span class="p">.</span><span class="na">substring</span><span class="p">();</span><span class="w"> </span><span class="c1">// Returns a string that is a substring of this string.</span><span class="w"></span>
<span class="n">myString</span><span class="p">.</span><span class="na">equals</span><span class="p">();</span><span class="w"> </span><span class="c1">// Compares this string to the specified object.</span><span class="w"></span>
<span class="n">myString</span><span class="p">.</span><span class="na">toLowerCase</span><span class="p">();</span><span class="w"> </span><span class="c1">// Converts all of the characters in this String to lower case.</span><span class="w"></span>
<span class="n">myString</span><span class="p">.</span><span class="na">toUpperCase</span><span class="p">();</span><span class="w"> </span><span class="c1">// Converts all of the characters in this String to upper case.</span><span class="w"></span>
<span class="n">myString</span><span class="p">.</span><span class="na">contains</span><span class="p">();</span><span class="w"> </span><span class="c1">// Returns true if and only if this string contains the specified sequence of char values.</span><span class="w"></span>
<span class="n">myString</span><span class="p">.</span><span class="na">replaceAll</span><span class="p">();</span><span class="w"> </span><span class="c1">// Replaces each substring of this string that matches the given regular expression with the given replacement.</span><span class="w"></span>
<span class="n">myString</span><span class="p">.</span><span class="na">compareTo</span><span class="p">();</span><span class="w"> </span><span class="c1">// Compares two strings lexicographically. The comparison is based on the Unicode value of each character in the strings.</span><span class="w"></span>
</code></pre></div></p>
<h3 id="02_basics-numeric-datatypes">Numeric Datatypes</h3>
<p>Im Gegensatz zu den primitiven Datentypen werden hier "Wrapper" verwendet, um
dynamisch mit den Werten arbeiten zu können. Das erlaubt auch die Erweiterung
um verschiedene Methoden in der Standardbibliothek.</p>
<p>Integer:
<div class="highlight"><pre><span></span><code><span class="n">Integer</span><span class="w"> </span><span class="n">myNumber</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">10</span><span class="p">;</span><span class="w"></span>
<span class="n">Integer</span><span class="p">.</span><span class="na">parseInt</span><span class="p">();</span><span class="w"> </span><span class="c1">// Parses the string argument as a signed decimal integer.</span><span class="w"></span>
<span class="n">Integer</span><span class="p">.</span><span class="na">parseUnsignedInt</span><span class="p">();</span><span class="w"> </span><span class="c1">// Parses the string argument as an unsigned decimal integer.</span><span class="w"></span>
<span class="n">Integer</span><span class="p">.</span><span class="na">valueOf</span><span class="p">();</span><span class="w"> </span><span class="c1">// Returns an Integer object holding the value of the specified String.</span><span class="w"></span>
</code></pre></div></p>
<p>Float and Double:
<div class="highlight"><pre><span></span><code><span class="n">Double</span><span class="w"> </span><span class="n">myDouble</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">10.0</span><span class="p">;</span><span class="w"></span>
<span class="n">myDouble</span><span class="p">.</span><span class="na">isNaN</span><span class="p">();</span><span class="w"> </span><span class="c1">// Returns true if this Double value is a Not-a-Number (NaN), false otherwise.</span><span class="w"></span>
<span class="n">Float</span><span class="w"> </span><span class="n">myFloat</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="kt">float</span><span class="p">)</span><span class="mf">10.0</span><span class="p">;</span><span class="w"></span>
<span class="n">myFloat</span><span class="p">.</span><span class="na">isNaN</span><span class="p">();</span><span class="w"> </span><span class="c1">// Returns true if this Float value is a Not-a-Number (NaN), false otherwise</span><span class="w"></span>
</code></pre></div></p>
<p>Funktionen für alle Numerischen Datentypen (Nicht Primitiv):
<div class="highlight"><pre><span></span><code><span class="n">myNumber</span><span class="p">.</span><span class="na">compareTo</span><span class="p">();</span><span class="w"> </span><span class="c1">// Compares two Integer objects numerically.</span><span class="w"></span>
<span class="n">myNumber</span><span class="p">.</span><span class="na">toString</span><span class="p">();</span><span class="w"> </span><span class="c1">// Returns a String object representing this Integer&#39;s value.</span><span class="w"></span>
<span class="n">myNumber</span><span class="p">.</span><span class="na">intValue</span><span class="p">();</span><span class="w"> </span><span class="c1">// Returns the value of this Integer as an int.</span><span class="w"></span>
<span class="n">myNumber</span><span class="p">.</span><span class="na">floatValue</span><span class="p">();</span><span class="w"> </span><span class="c1">// Returns the value of this Integer as a float after a widening primitive conversion.</span><span class="w"></span>
<span class="n">myNumber</span><span class="p">.</span><span class="na">doubleValue</span><span class="p">();</span><span class="w"> </span><span class="c1">// Returns the value of this Integer as a double after a widening primitive conversion.</span><span class="w"></span>
<span class="n">myNumber</span><span class="p">.</span><span class="na">shortValue</span><span class="p">();</span><span class="w"> </span><span class="c1">// Returns the value of this Integer as a short after a narrowing primitive conversion.</span><span class="w"></span>
</code></pre></div></p>
<h3 id="02_basics-arrays">Arrays</h3>
<p>Bei Arrays handelt es sich um Schleifen eines bestimmten Datentypen. Sie werden
verwendet, um mehrere Werte in einer Variable zu speichern.</p>
<div class="highlight"><pre><span></span><code><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">myStringArray</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">String</span><span class="o">[</span><span class="mi">3</span><span class="o">]</span><span class="p">;</span><span class="w"></span>
<span class="n">myStringArray</span><span class="o">[</span><span class="mi">0</span><span class="o">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;ROT&quot;</span><span class="p">;</span><span class="w"></span>
<span class="n">myStringArray</span><span class="o">[</span><span class="mi">1</span><span class="o">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;GRÜN&quot;</span><span class="p">;</span><span class="w"></span>
<span class="n">myStringArray</span><span class="o">[</span><span class="mi">2</span><span class="o">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;BLAU&quot;</span><span class="p">;</span><span class="w"></span>
<span class="kt">int</span><span class="o">[]</span><span class="w"> </span><span class="n">myIntArray</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">};</span><span class="w"></span>
<span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">myIntArray</span><span class="p">.</span><span class="na">length</span><span class="p">);</span><span class="w"> </span><span class="c1">// 3</span><span class="w"></span>
<span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">Arrays</span><span class="p">.</span><span class="na">toString</span><span class="p">(</span><span class="n">myIntArray</span><span class="p">));</span><span class="w"> </span><span class="c1">// [0,1,2]</span><span class="w"></span>
</code></pre></div>
<p>multidimensionale Arrays:
<div class="highlight"><pre><span></span><code><span class="kt">int</span><span class="o">[][]</span><span class="w"> </span><span class="n">my2DArray</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="p">{</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">},</span><span class="w"></span>
<span class="w"> </span><span class="p">{</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">},</span><span class="w"></span>
<span class="w"> </span><span class="p">{</span><span class="mi">6</span><span class="p">,</span><span class="w"> </span><span class="mi">7</span><span class="p">,</span><span class="w"> </span><span class="mi">8</span><span class="p">,</span><span class="w"> </span><span class="mi">9</span><span class="p">},</span><span class="w"></span>
<span class="p">};</span><span class="w"></span>
<span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">my2DArray</span><span class="p">.</span><span class="na">length</span><span class="p">);</span><span class="w"></span>
<span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">my2DArray</span><span class="o">[</span><span class="mi">0</span><span class="o">]</span><span class="p">.</span><span class="na">length</span><span class="p">);</span><span class="w"></span>
<span class="k">for</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">row</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">row</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">my2DArray</span><span class="p">.</span><span class="na">length</span><span class="p">;</span><span class="w"> </span><span class="n">row</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">print</span><span class="p">(</span><span class="s">&quot;[&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="k">for</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">column</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">column</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">my2DArray</span><span class="o">[</span><span class="n">row</span><span class="o">]</span><span class="p">.</span><span class="na">length</span><span class="p">;</span><span class="w"> </span><span class="n">column</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">column</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="p">(</span><span class="n">my2DArray</span><span class="o">[</span><span class="n">row</span><span class="o">]</span><span class="p">.</span><span class="na">length</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">print</span><span class="p">(</span><span class="n">my2DArray</span><span class="o">[</span><span class="n">row</span><span class="o">][</span><span class="n">column</span><span class="o">]</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="k">continue</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">print</span><span class="p">(</span><span class="n">my2DArray</span><span class="o">[</span><span class="n">row</span><span class="o">][</span><span class="n">column</span><span class="o">]</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="s">&quot;, &quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;]&quot;</span><span class="p">);</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div></p>
<p>Methoden:
<div class="highlight"><pre><span></span><code><span class="n">Arrays</span><span class="p">.</span><span class="na">toString</span><span class="p">(</span><span class="n">myArray</span><span class="p">);</span><span class="w"> </span><span class="c1">// a string representation of the object.</span><span class="w"></span>
<span class="n">Arrays</span><span class="p">.</span><span class="na">copyOf</span><span class="p">(</span><span class="n">myArray</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">);</span><span class="w"> </span><span class="c1">// Copies the specified array, truncating or padding with zeros (if necessary) so the copy has the specified length.</span><span class="w"></span>
<span class="n">Arrays</span><span class="p">.</span><span class="na">compare</span><span class="p">(</span><span class="n">myArray</span><span class="p">,</span><span class="w"> </span><span class="n">myArray</span><span class="p">);</span><span class="w"> </span><span class="c1">// Compares two int arrays lexicographically.</span><span class="w"></span>
<span class="n">Arrays</span><span class="p">.</span><span class="na">equals</span><span class="p">(</span><span class="n">myArray</span><span class="p">,</span><span class="w"> </span><span class="n">myArray</span><span class="p">);</span><span class="w"> </span><span class="c1">// Returns true if the two specified arrays of ints are equal to one another.</span><span class="w"></span>
<span class="n">Arrays</span><span class="p">.</span><span class="na">sort</span><span class="p">(</span><span class="n">myArray</span><span class="p">);</span><span class="w"> </span><span class="c1">// Sorts the specified array into ascending numerical order</span><span class="w"></span>
<span class="n">Arrays</span><span class="p">.</span><span class="na">fill</span><span class="p">(</span><span class="n">myArray</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">);</span><span class="w"> </span><span class="c1">// Assigns the specified int value to each element of the specified array of ints.</span><span class="w"></span>
</code></pre></div></p>
<h2 id="02_basics-operatoren">Operatoren</h2>
<h3 id="02_basics-arithmetic-operators">Arithmetic Operators</h3>
<div class="highlight"><pre><span></span><code><span class="kt">int</span><span class="w"> </span><span class="n">calcAddition</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">20</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">10</span><span class="p">;</span><span class="w"> </span><span class="c1">// = 30</span><span class="w"></span>
<span class="kt">int</span><span class="w"> </span><span class="n">calcSubstraction</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">20</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="mi">10</span><span class="p">;</span><span class="w"> </span><span class="c1">// = 10</span><span class="w"></span>
<span class="kt">int</span><span class="w"> </span><span class="n">calcMultiplication</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">20</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">10</span><span class="p">;</span><span class="w"> </span><span class="c1">// = 200</span><span class="w"></span>
<span class="kt">int</span><span class="w"> </span><span class="n">calcDivision</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">20</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">10</span><span class="p">;</span><span class="w"> </span><span class="c1">// = 2</span><span class="w"></span>
<span class="kt">int</span><span class="w"> </span><span class="n">calcModulus</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">20</span><span class="w"> </span><span class="o">%</span><span class="w"> </span><span class="mi">3</span><span class="p">;</span><span class="w"> </span><span class="c1">// = 2</span><span class="w"></span>
<span class="kt">int</span><span class="w"> </span><span class="n">myNumber</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">10</span><span class="p">;</span><span class="w"></span>
<span class="n">myNumber</span><span class="o">++</span><span class="p">;</span><span class="w"> </span><span class="c1">// myNumber = 11</span><span class="w"></span>
<span class="n">myNumber</span><span class="o">--</span><span class="p">;</span><span class="w"> </span><span class="c1">// myNumber = 10</span><span class="w"></span>
<span class="n">myNumber</span><span class="o">--</span><span class="p">;</span><span class="w"> </span><span class="c1">// myNumber = 9</span><span class="w"></span>
</code></pre></div>
<h3 id="02_basics-comparison-operators">Comparison Operators</h3>
<div class="highlight"><pre><span></span><code><span class="kt">int</span><span class="w"> </span><span class="n">biggerNumber</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">20</span><span class="p">;</span><span class="w"></span>
<span class="kt">int</span><span class="w"> </span><span class="n">biggerNumberAgain</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">20</span><span class="p">;</span><span class="w"></span>
<span class="kt">int</span><span class="w"> </span><span class="n">smallerNumber</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">10</span><span class="p">;</span><span class="w"></span>
<span class="c1">// (20 == 20) =&gt; true</span><span class="w"></span>
<span class="c1">// (20 != 20) =&gt; false</span><span class="w"></span>
<span class="c1">// (20 &gt; 10) =&gt; true</span><span class="w"></span>
<span class="c1">// (20 &lt; 10) =&gt; false</span><span class="w"></span>
<span class="c1">// (20 &gt;= 10) =&gt; true</span><span class="w"></span>
<span class="c1">// (20 &gt;= 10) =&gt; true</span><span class="w"></span>
</code></pre></div>
<h2 id="02_basics-bedingungen">Bedingungen</h2>
<p>wir verwenden folgende Variablen:
<div class="highlight"><pre><span></span><code><span class="kt">int</span><span class="w"> </span><span class="n">biggerNumber</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">20</span><span class="p">;</span><span class="w"></span>
<span class="kt">int</span><span class="w"> </span><span class="n">biggerNumberAgain</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">20</span><span class="p">;</span><span class="w"></span>
<span class="kt">int</span><span class="w"> </span><span class="n">smallerNumber</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">10</span><span class="p">;</span><span class="w"></span>
</code></pre></div></p>
<h3 id="02_basics-if-condition-better-version">if-condition (better version)</h3>
<div class="highlight"><pre><span></span><code><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">biggerNumber</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="n">smallerNumber</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;the left number is bigger!&quot;</span><span class="p">);</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>
<h3 id="02_basics-if-condition-worse-version">if-condition (worse version)</h3>
<div class="highlight"><pre><span></span><code><span class="c1">// prefer to not write it down like this!</span><span class="w"></span>
<span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">biggerNumber</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n">biggerNumberAgain</span><span class="p">)</span><span class="w"> </span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;We don&#39;t do this here...&quot;</span><span class="p">);</span><span class="w"></span>
</code></pre></div>
<h3 id="02_basics-if-else-condition">if-else-condition</h3>
<div class="highlight"><pre><span></span><code><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">biggerNumber</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">smallerNumber</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;the left number is smaller!&quot;</span><span class="p">);</span><span class="w"></span>
<span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">biggerNumber</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">biggerNumberAgain</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;but this time, the left number is smaller!&quot;</span><span class="p">);</span><span class="w"></span>
<span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;the left number is just too big!&quot;</span><span class="p">);</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>
<h3 id="02_basics-switch-case">switch-case</h3>
<div class="highlight"><pre><span></span><code><span class="kt">int</span><span class="w"> </span><span class="n">luckyNumber</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">69</span><span class="p">;</span><span class="w"></span>
<span class="k">switch</span><span class="w"> </span><span class="p">(</span><span class="n">luckyNumber</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="mi">13</span><span class="p">:</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;some people consider 13 to be a lucky number&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="k">break</span><span class="p">;</span><span class="w"> </span><span class="c1">// we need this to avoid default!</span><span class="w"></span>
<span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="mi">7</span><span class="p">:</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;slot machines value this number high&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="k">break</span><span class="p">;</span><span class="w"> </span><span class="c1">// we need this to avoid default!</span><span class="w"></span>
<span class="w"> </span><span class="k">default</span><span class="p">:</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;seems, your number was not lucky enough...&quot;</span><span class="p">);</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>
<h2 id="02_basics-schleifen">Schleifen</h2>
<h3 id="02_basics-while-loop">while-loop</h3>
<div class="highlight"><pre><span></span><code><span class="kt">int</span><span class="w"> </span><span class="n">whileNumber</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">3</span><span class="p">;</span><span class="w"></span>
<span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">whileNumber</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">whileNumber</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="n">whileNumber</span><span class="w"> </span><span class="o">--</span><span class="p">;</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>
<h3 id="02_basics-do-while-loop">do-while-loop</h3>
<div class="highlight"><pre><span></span><code><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;--- doWhileNumber:&quot;</span><span class="p">);</span><span class="w"></span>
<span class="kt">int</span><span class="w"> </span><span class="n">doWhileNumber</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">3</span><span class="p">;</span><span class="w"></span>
<span class="k">do</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">doWhileNumber</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="n">doWhileNumber</span><span class="o">--</span><span class="p">;</span><span class="w"></span>
<span class="p">}</span><span class="w"> </span><span class="k">while</span><span class="p">(</span><span class="n">doWhileNumber</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mi">0</span><span class="p">);</span><span class="w"></span>
</code></pre></div>
<h3 id="02_basics-for-loop">for-loop</h3>
<div class="highlight"><pre><span></span><code><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;--- forNumber:&quot;</span><span class="p">);</span><span class="w"></span>
<span class="k">for</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">iterator</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">iterator</span><span class="w"> </span><span class="o">&lt;=</span><span class="w"> </span><span class="mi">5</span><span class="p">;</span><span class="w"> </span><span class="n">iterator</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">iterator</span><span class="p">);</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>
<h3 id="02_basics-beispiel-ausfuhrung">Beispiel Ausführung</h3>
<div class="highlight"><pre><span></span><code><span class="kt">int</span><span class="w"> </span><span class="n">myNumber</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"></span>
<span class="c1">// count, how many times we can add 2 until we reach 16,</span><span class="w"></span>
<span class="c1">// but we pretend, 13 doesn&#39;t exist for reasons</span><span class="w"></span>
<span class="k">for</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">counter</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">counter</span><span class="w"> </span><span class="o">&lt;=</span><span class="w"> </span><span class="mi">10</span><span class="p">;</span><span class="w"> </span><span class="n">counter</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">myNumber</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">myNumber</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">13</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="k">continue</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">counter</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">myNumber</span><span class="w"> </span><span class="o">&gt;=</span><span class="w"> </span><span class="mi">16</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="k">break</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>
<h3 id="02_basics-hinweis">Hinweis</h3>
<p>Vermeidet einfache Variablennamen wie i, u, usw.m um die Lesbarkeit einfach zu halten
<div class="highlight"><pre><span></span><code><span class="c1">// </span><span class="w"></span>
<span class="k">for</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">10</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="k">for</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">u</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">30</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mi">15</span><span class="p">;</span><span class="w"> </span><span class="n">u</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">myArray</span><span class="o">[</span><span class="n">u</span><span class="o">][</span><span class="n">i</span><span class="o">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">u</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div></p>
<h3 id="02_basics-for-each-loop">for-each-loop</h3>
<h4 id="02_basics-arrays_1">arrays</h4>
<div class="highlight"><pre><span></span><code><span class="kt">int</span><span class="o">[]</span><span class="w"> </span><span class="n">myArray</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">};</span><span class="w"></span>
<span class="k">for</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">selectedValue</span><span class="p">:</span><span class="w"> </span><span class="n">myArray</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;myArray: &quot;</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">selectedValue</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="n">selectedValue</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
<span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">Arrays</span><span class="p">.</span><span class="na">toString</span><span class="p">(</span><span class="n">myArray</span><span class="p">));</span><span class="w"></span>
<span class="k">for</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">selection</span><span class="p">:</span><span class="w"> </span><span class="n">myArray</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">selection</span><span class="p">);</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>
<h4 id="02_basics-lists">lists</h4>
<div class="highlight"><pre><span></span><code><span class="n">LinkedList</span><span class="o">&lt;</span><span class="n">String</span><span class="o">&gt;</span><span class="w"> </span><span class="n">myLinkedList</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">LinkedList</span><span class="o">&lt;&gt;</span><span class="p">();</span><span class="w"></span>
<span class="n">myLinkedList</span><span class="p">.</span><span class="na">add</span><span class="p">(</span><span class="s">&quot;List_1&quot;</span><span class="p">);</span><span class="w"></span>
<span class="n">myLinkedList</span><span class="p">.</span><span class="na">add</span><span class="p">(</span><span class="s">&quot;List_2&quot;</span><span class="p">);</span><span class="w"></span>
<span class="n">myLinkedList</span><span class="p">.</span><span class="na">add</span><span class="p">(</span><span class="s">&quot;List_3&quot;</span><span class="p">);</span><span class="w"></span>
<span class="k">for</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">selectedValue</span><span class="p">:</span><span class="w"> </span><span class="n">myArray</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">selectedValue</span><span class="p">);</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>
<h3 id="02_basics-maps">maps</h3>
<div class="highlight"><pre><span></span><code><span class="n">HashMap</span><span class="o">&lt;</span><span class="n">Integer</span><span class="p">,</span><span class="w"> </span><span class="n">String</span><span class="o">&gt;</span><span class="w"> </span><span class="n">myHashMap</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">HashMap</span><span class="o">&lt;&gt;</span><span class="p">();</span><span class="w"></span>
<span class="n">myHashMap</span><span class="p">.</span><span class="na">put</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;Larry&quot;</span><span class="p">);</span><span class="w"></span>
<span class="n">myHashMap</span><span class="p">.</span><span class="na">put</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;Steve&quot;</span><span class="p">);</span><span class="w"></span>
<span class="n">myHashMap</span><span class="p">.</span><span class="na">put</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;James&quot;</span><span class="p">);</span><span class="w"></span>
<span class="n">myHashMap</span><span class="p">.</span><span class="na">forEach</span><span class="p">((</span><span class="n">key</span><span class="p">,</span><span class="w"> </span><span class="n">value</span><span class="p">)</span><span class="w"> </span><span class="o">-&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">key</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="s">&quot; &quot;</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">value</span><span class="p">);</span><span class="w"></span>
<span class="p">});</span><span class="w"></span>
</code></pre></div>
<h2 id="02_basics-exceptions">Exceptions</h2>
<div class="highlight"><pre><span></span><code><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">Main</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="c1">// simple exception handling</span><span class="w"></span>
<span class="w"> </span><span class="k">try</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="kt">int</span><span class="o">[]</span><span class="w"> </span><span class="n">myNumbers</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">};</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">myNumbers</span><span class="o">[</span><span class="mi">10</span><span class="o">]</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">catch</span><span class="w"> </span><span class="p">(</span><span class="n">Exception</span><span class="w"> </span><span class="n">exception</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">exception</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;---&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="c1">// extended exception handling</span><span class="w"></span>
<span class="w"> </span><span class="k">try</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="kt">int</span><span class="o">[]</span><span class="w"> </span><span class="n">myNumbers</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">};</span><span class="w"></span>
<span class="w"> </span><span class="n">printTenthIndex</span><span class="p">(</span><span class="n">myNumbers</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">catch</span><span class="w"> </span><span class="p">(</span><span class="n">RuntimeException</span><span class="w"> </span><span class="n">exception</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;class: &quot;</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">exception</span><span class="p">.</span><span class="na">getClass</span><span class="p">());</span><span class="w"> </span><span class="c1">// class: class java.lang.RuntimeException</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;cause: &quot;</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">exception</span><span class="p">.</span><span class="na">getCause</span><span class="p">());</span><span class="w"> </span><span class="c1">// cause: java.lang.RuntimeException: array is not big enough</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;message: &quot;</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">exception</span><span class="p">.</span><span class="na">getMessage</span><span class="p">());</span><span class="w"> </span><span class="c1">// message: index was not found</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">finally</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;finally! The &#39;try catch&#39; is finished.&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">printTenthIndex</span><span class="p">(</span><span class="kt">int</span><span class="o">[]</span><span class="w"> </span><span class="n">array</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">RuntimeException</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">Exception</span><span class="w"> </span><span class="n">r</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">RuntimeException</span><span class="p">(</span><span class="s">&quot;array is not big enough&quot;</span><span class="p">);</span><span class="w"> </span><span class="c1">// not every exception supports causes</span><span class="w"></span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">array</span><span class="p">.</span><span class="na">length</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">11</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="k">throw</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">RuntimeException</span><span class="p">(</span><span class="s">&quot;index was not found&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">r</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">array</span><span class="o">[</span><span class="mi">10</span><span class="o">]</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div></section><section class="print-page" id="03_coding_style"><h1 id="03_coding_style-03-coding-style">03: Coding Style</h1>
<p>Programme können sehr schnell sehr komplex werden.
Daher ist es wichtig, sich an Stil-Regeln zu halten, um sie möglichst
verständlich zu schreiben.</p>
<h2 id="03_coding_style-1-selbsterklarend">1. Selbsterklärend</h2>
<p>Code sollte sich so gut wie möglich selbst erklären.
Dazu sind sprechende Variablen-, Funktions-, Klassennamen etc. erforderlich.
Kurze Namen sind nur in kleinen Gültigkeitsbereichen oder bei klarer Bedeutung
(z.B. <code>i</code> für for-Schleifen Iteratoren, <code>y</code> für vertikale Position) erlaubt.</p>
<h3 id="03_coding_style-11-kommentare">1.1 Kommentare</h3>
<p>Kommentare sind in diesem Zusammenhang vorallem zur Strukturierung/Abgrenzung
des Codes empfohlen, und um die
Verständlichkeit zu erhöhen.
Kommentare sollten nicht das Offensichtliche wiederholen (siehe Bild).</p>
<p><img alt="Cat labeled Cat" src="https://i.redd.it/iuy9fxt300811.png" /></p>
<p>Selbstverständlich kann Code zum besseren eigenen Verständnis kommentiert
werden.
Denken Sie aber daran, dass bei Code Änderungen auch die Kommentare mit gepflegt
werden müssen.</p>
<h2 id="03_coding_style-4-benennung">4. Benennung</h2>
<p>Die folgenden Regelungen sind empfohlen und in keinster Weise verpflichtend.</p>
<h3 id="03_coding_style-41-camelcase-fur-variablen-und-funktionen">4.1 camelCase für Variablen und Funktionen</h3>
<p>Variablen- und Funktionsnamen beginnen mit Kleinbuchstaben und folgen der
camelCase Notation, d.h. bei zusammengesetzten
Namen beginnen die Wortteile im Inneren mit einem Großbuchstaben.<br />
Funktionsnamen beschreiben dabei eine Aktivität (
z.B. <code>calculateHorizontalPosition()</code>) oder eine Frage (z.B. <code>isHit()</code>).</p>
<p>Gleiches gilt für Attribute und Methoden.</p>
<h3 id="03_coding_style-42-unterstrich-vor-formalen-parametern">4.2 Unterstrich vor formalen Parametern</h3>
<p>Formale Parameter folgen dem Variablen-Benennungs-Schema, mit dem Zusatz eines
Unterstriches am Anfang.
(z.B. <code>moveTo(_x: number, _y: number)</code>).</p>
<h3 id="03_coding_style-43-pascalcase-fur-klassen-und-interfaces">4.3 PascalCase für Klassen und Interfaces</h3>
<p>Die Namen von Klassen und Interfaces beginnen mit einem Großbuchstaben und
folgen sonst der Kamelnotation (also
PascalCase).<br />
Klassen und Interfaces beschreiben im Normalfall ein bestimmtes Objekt, nicht
eine Gruppe von Objekten.
Dies sollte sich im Namen wiederspiegeln (<code>Produkt</code> statt <code>Produkte</code>).</p>
<h3 id="03_coding_style-44-groschreibung-fur-enumeratoren">4.4 Großschreibung für Enumeratoren</h3>
<p>Die Namen von Enumerationen und deren Elemente werden durchgehend mit
Großbuchstaben geschreiben. Wortteile werden bei
Bedarf mit Unterstrich getrennt.</p>
<h2 id="03_coding_style-5-doppelte-und-einfache-anfuhrungszeichen">5. Doppelte und einfache Anführungszeichen</h2>
<p>Es empfielt sich, einfache Anführungszeichen <code>' '</code> für char und doppelte
Anführungszeichen <code>" "</code> für Strings zu verwenden.</p>
<h2 id="03_coding_style-6-formatierung">6. Formatierung</h2>
<p>Code ist sinnvoll Formatiert mit Einschüben etc.
Im Regelfall unterstützt VSCode dies Automatisch. Machen Sie Gebrauch von der
automatischen Formatierungsfunktion.</p>
<ul>
<li><a href="https://www.jetbrains.com/help/idea/reformat-and-rearrange-code.html#reformat_file">Anleitung für IntelliJ</a></li>
<li><a href="https://stackoverflow.com/questions/29973357/how-do-you-format-code-in-visual-studio-code-vscode">Anleitung für Visual Studio Code</a></li>
<li><a href="https://praxistipps.chip.de/eclipse-autoformat-code-so-gehts_98369">Anleitung für Eclipse</a></li>
</ul>
<h2 id="03_coding_style-8-magische-zahlen">8. "Magische" Zahlen</h2>
<p>Der Gebrauch von "magischen" Zahlen sollte vermieden werden. Solange es nicht
extrem offensichtlich ist, wofür eine Zahl
steht (z.B. <code>Math.pow(x, 5)</code>), sollte eine Variable (nach den oben genannten
Guidelines) angelegt werden, welcher die
Zahl als Wert zugewiesen wird. So entsteht der Zusammenhang zwischen der
Variablen und ihrer Bedeutung, und der Wert
kann an einer zentralen Stelle angepasst werden.</p>
<h2 id="03_coding_style-9-dateinamen-und-aufteilung">9. Dateinamen und -aufteilung</h2>
<p>Dateinamen dürfen keine Leerzeichen oder Umlaute enthalten, sind sonst aber frei
wählbar (s.u. für Einschränkungen). Es
wird empfohlen, die Zeichenwahl auf a-z, A-Z, 0-9 und _ zu beschränken.<br />
Code kann auf mehrere Dateien aufgeteilt werden, sofern dies sinnvoll
erscheint (z.B. um eine Trennung von Funktion und
Daten zu erreichen). Wenn Klassen verwendet werden, sollte jede ihre eigene
Datei bekommen. Sofern eine Datei eine
bestimmte Klasse enthält, soll die Datei mit dem Namen der Klasse benannt sein.</p>
<h2 id="03_coding_style-10-wiederholungen-sind-schlecht">10. Wiederholungen sind schlecht</h2>
<p>Code der sich ohne oder nur mit minimalen Änderungen wiederholt, kann in den
allermeisten Fällen besser geschrieben
werden, z.B. über eine Funktion mit Übergabeparametern, oder indem man nur den
geänderten Teil implementiert oder
überschreibt, während der Rest für alles gleich generiert wird.<br />
Dies hat viele Vorteile: Es macht den Code generell übersichtlicher (und damit
besser verständlich), kürzer, und
wartungsfreundlicher.</p></section><section class="print-page" id="04_introduction_to_objects"><h1 id="04_introduction_to_objects-04-einfuhrung-in-objekte">04: Einführung in Objekte</h1>
<h2 id="04_introduction_to_objects-kurze-begriffserklarung">Kurze Begriffserklärung</h2>
<p>Quelle: <a href="https://stackhowto.com/difference-between-instantiating-declaring-and-initializing/">stackhowto.com</a></p>
<h3 id="04_introduction_to_objects-declaration">Declaration</h3>
<blockquote>
<p>Declaring a variable means the first “mention” of the variable, which tells the compiler “Hello, I am here and can be used”.
In a statically typed language like Java, this also means that the declared type of the variable is determined.
The value itself is not determined during the declaration.
<div class="highlight"><pre><span></span><code><span class="n">String</span><span class="w"> </span><span class="n">name</span><span class="p">;</span><span class="w"></span>
<span class="kt">int</span><span class="w"> </span><span class="n">nbr</span><span class="p">;</span><span class="w"></span>
</code></pre></div></p>
</blockquote>
<h3 id="04_introduction_to_objects-initialization">Initialization</h3>
<blockquote>
<p>The term initialization usually means the first assignment of a value to a variable.
<div class="highlight"><pre><span></span><code><span class="n">String</span><span class="w"> </span><span class="n">name</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;Thomas&quot;</span><span class="p">;</span><span class="w"></span>
<span class="kt">int</span><span class="w"> </span><span class="n">nbr</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">5</span><span class="p">;</span><span class="w"></span>
</code></pre></div></p>
</blockquote>
<h3 id="04_introduction_to_objects-instantiation">Instantiation</h3>
<blockquote>
<p>The term instantiation actually has nothing to do with assigning a value to a variable, even if a new object is sometimes instantiated when a variable is initialized.
The term simply means the creation of a new object, i.e. an instance, from a class.
<div class="highlight"><pre><span></span><code><span class="n">String</span><span class="w"> </span><span class="n">name</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">String</span><span class="p">(</span><span class="s">&quot;Thomas&quot;</span><span class="p">);</span><span class="w"></span>
</code></pre></div></p>
</blockquote>
<h2 id="04_introduction_to_objects-1-einfache-objekte-und-veerbung">#1 Einfache Objekte und Veerbung</h2>
<p><strong>Lernziele:</strong>
* eine Klasse erzeugen
* eine Klasse aufrufen
* einfache Veerbung
* Polymorphie (Überschreiben von Methoden)
* die Verwendung von <code>this</code>
* die Verwendung von <code>super</code></p>
<div class="highlight"><pre><span></span><code><span class="c1">// main.java</span><span class="w"></span>
<span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">Main</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">Animal</span><span class="w"> </span><span class="n">myAnimal</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Animal</span><span class="p">();</span><span class="w"></span>
<span class="w"> </span><span class="n">myAnimal</span><span class="p">.</span><span class="na">makeSound</span><span class="p">();</span><span class="w"></span>
<span class="w"> </span><span class="n">Dog</span><span class="w"> </span><span class="n">myDog</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Dog</span><span class="p">();</span><span class="w"></span>
<span class="w"> </span><span class="n">myDog</span><span class="p">.</span><span class="na">makeSound</span><span class="p">();</span><span class="w"></span>
<span class="w"> </span><span class="n">Cat</span><span class="w"> </span><span class="n">myCat</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Cat</span><span class="p">();</span><span class="w"></span>
<span class="w"> </span><span class="n">myCat</span><span class="p">.</span><span class="na">makeSound</span><span class="p">();</span><span class="w"></span>
<span class="w"> </span><span class="n">myCat</span><span class="p">.</span><span class="na">compareToAnimal</span><span class="p">();</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="c1">// Animal.java</span><span class="w"></span>
<span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">Animal</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kt">boolean</span><span class="w"> </span><span class="n">isPet</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="nf">Animal</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;## in constructor of Animal&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">isPet</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">false</span><span class="p">;</span><span class="w"> </span><span class="c1">// it doesn&#39;t exist for our cats or dogs</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">makeSound</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;Yes, animal usually make sounds&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>
<p><div class="highlight"><pre><span></span><code><span class="c1">// Cat.java</span><span class="w"></span>
<span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">Cat</span><span class="w"> </span><span class="kd">extends</span><span class="w"> </span><span class="n">Animal</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="nf">Cat</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;## in constructor of Cat&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">isPet</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">true</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="nd">@Override</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">makeSound</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;meow meow&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">compareToAnimal</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;--- Animal ---&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="kd">super</span><span class="p">.</span><span class="na">makeSound</span><span class="p">();</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;is alive: &quot;</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="kd">super</span><span class="p">.</span><span class="na">isPet</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;--- Cat ---&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">makeSound</span><span class="p">();</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;is alive: &quot;</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">isPet</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="c1">// Dog.java</span><span class="w"></span>
<span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">Dog</span><span class="w"> </span><span class="kd">extends</span><span class="w"> </span><span class="n">Animal</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="nf">Dog</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;## in constructor of Dog&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">isPet</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">true</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="nd">@Override</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">makeSound</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;woof woof&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">isPet</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">true</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">compareToAnimal</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;--- Animal ---&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="kd">super</span><span class="p">.</span><span class="na">makeSound</span><span class="p">();</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;is alive: &quot;</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="kd">super</span><span class="p">.</span><span class="na">isPet</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;--- Cat ---&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">makeSound</span><span class="p">();</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;is alive: &quot;</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">isPet</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div></p>
<h2 id="04_introduction_to_objects-2-komplexere-vererbung-von-klassen">#2 komplexere Vererbung von Klassen</h2>
<p><strong>Lernziele:</strong>
* Erweiterte Veerbung
* Modifikatoren für Attribute
* Getter und Setter
* Konstruktorverkettung</p>
<div class="highlight"><pre><span></span><code><span class="c1">// main.java</span><span class="w"></span>
<span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">Main</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">Vehicle</span><span class="w"> </span><span class="n">myVehicle</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Vehicle</span><span class="p">();</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;-- myVehicle:&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;number of wheels: &quot;</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">myVehicle</span><span class="p">.</span><span class="na">getNumberOfWheels</span><span class="p">());</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;max Speed: &quot;</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">myVehicle</span><span class="p">.</span><span class="na">getMaxSpeed</span><span class="p">());</span><span class="w"></span>
<span class="w"> </span><span class="n">myVehicle</span><span class="p">.</span><span class="na">setMaxSpeed</span><span class="p">(</span><span class="mi">150</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;max Speed: &quot;</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">myVehicle</span><span class="p">.</span><span class="na">getMaxSpeed</span><span class="p">());</span><span class="w"></span>
<span class="w"> </span><span class="n">Car</span><span class="w"> </span><span class="n">myCar</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Car</span><span class="p">(</span><span class="s">&quot;blue&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;-- myCar:&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;number of wheels: &quot;</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">myCar</span><span class="p">.</span><span class="na">getNumberOfWheels</span><span class="p">());</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;max Speed: &quot;</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">myCar</span><span class="p">.</span><span class="na">getMaxSpeed</span><span class="p">());</span><span class="w"></span>
<span class="w"> </span><span class="n">myVehicle</span><span class="p">.</span><span class="na">setMaxSpeed</span><span class="p">(</span><span class="mi">150</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;max Speed: &quot;</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">myCar</span><span class="p">.</span><span class="na">getMaxSpeed</span><span class="p">());</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">Vehicle</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="kd">protected</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">numberOfWheels</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="kd">protected</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">maxSpeed</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="nf">Vehicle</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;## in default constructor of Vehicle&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">numberOfWheels</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">4</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">maxSpeed</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">100</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="nf">Vehicle</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">numberOfWheels</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">maxSpeed</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;## in constructor of Vehicle&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">numberOfWheels</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">numberOfWheels</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">maxSpeed</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">maxSpeed</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">getNumberOfWheels</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">numberOfWheels</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">getMaxSpeed</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">maxSpeed</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="n">String</span><span class="w"> </span><span class="nf">printMaxSpeed</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">maxSpeed</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="s">&quot; km/h&quot;</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">setMaxSpeed</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">newMaxSpeed</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">newMaxSpeed</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="k">return</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">maxSpeed</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">newMaxSpeed</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">Car</span><span class="w"> </span><span class="kd">extends</span><span class="w"> </span><span class="n">Vehicle</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="kd">private</span><span class="w"> </span><span class="n">String</span><span class="w"> </span><span class="n">color</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="nf">Car</span><span class="p">(</span><span class="n">String</span><span class="w"> </span><span class="n">color</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="kd">super</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">200</span><span class="p">);</span><span class="w"> </span><span class="c1">// always needs to be the first statement</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;## in constructor of Car&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">color</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">color</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="nd">@Override</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">setMaxSpeed</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">newMaxSpeed</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">newMaxSpeed</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">1000</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;No car shall be this slow tbh&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="k">return</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">maxSpeed</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">newMaxSpeed</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">Car</span><span class="w"> </span><span class="kd">extends</span><span class="w"> </span><span class="n">Vehicle</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="kd">private</span><span class="w"> </span><span class="n">String</span><span class="w"> </span><span class="n">color</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="nf">Car</span><span class="p">(</span><span class="n">String</span><span class="w"> </span><span class="n">color</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="kd">super</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">200</span><span class="p">);</span><span class="w"> </span><span class="c1">// always needs to be the first statement</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;## in constructor of Car&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">color</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">color</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="nd">@Override</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">setMaxSpeed</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">newMaxSpeed</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">newMaxSpeed</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">1000</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;No car shall be this slow tbh&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="k">return</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">maxSpeed</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">newMaxSpeed</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">Truck</span><span class="w"> </span><span class="kd">extends</span><span class="w"> </span><span class="n">Vehicle</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="kd">private</span><span class="w"> </span><span class="kt">boolean</span><span class="w"> </span><span class="n">isFireTruck</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="kd">private</span><span class="w"> </span><span class="kd">final</span><span class="w"> </span><span class="n">String</span><span class="w"> </span><span class="n">hornSound</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="nf">Truck</span><span class="p">(</span><span class="kt">boolean</span><span class="w"> </span><span class="n">isFireTruck</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="kd">super</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">200</span><span class="p">);</span><span class="w"> </span><span class="c1">// always needs to be the first statement</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;## in constructor of Truck&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">isFireTruck</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">isFireTruck</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">hornSound</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;test&quot;</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kt">boolean</span><span class="w"> </span><span class="nf">getIsFireTruck</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">isFireTruck</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>
<h2 id="04_introduction_to_objects-3-static-in-einer-klasse">#3 <code>static</code> in einer Klasse</h2>
<p><strong>Lernziele:</strong>
* statische und dynamische Variablen
* statische und dynamische Methoden</p>
<div class="highlight"><pre><span></span><code><span class="c1">// main.java</span><span class="w"></span>
<span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">Main</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">Counter</span><span class="p">.</span><span class="na">printCounterStatic</span><span class="p">(</span><span class="s">&quot;Static&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="n">Counter</span><span class="p">.</span><span class="na">increaseCounterStatic</span><span class="p">();</span><span class="w"></span>
<span class="w"> </span><span class="n">Counter</span><span class="p">.</span><span class="na">printCounterStatic</span><span class="p">(</span><span class="s">&quot;Static&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="n">Counter</span><span class="w"> </span><span class="n">myCounter</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Counter</span><span class="p">();</span><span class="w"></span>
<span class="w"> </span><span class="n">Counter</span><span class="p">.</span><span class="na">increaseCounterStatic</span><span class="p">();</span><span class="w"></span>
<span class="w"> </span><span class="n">myCounter</span><span class="p">.</span><span class="na">increaseCounterDynamic</span><span class="p">();</span><span class="w"></span>
<span class="w"> </span><span class="n">myCounter</span><span class="p">.</span><span class="na">printCounterDynamic</span><span class="p">(</span><span class="s">&quot;Dynamic&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">Counter</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">counterValueStatic</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">counterValueDynamic</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">increaseCounterStatic</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">counterValueStatic</span><span class="o">++</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">increaseCounterDynamic</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">counterValueDynamic</span><span class="o">++</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">printCounterDynamic</span><span class="p">(</span><span class="n">String</span><span class="w"> </span><span class="n">classID</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;&gt;&gt; execute printCounterDynamic of class &quot;</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">classID</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;static: &quot;</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">counterValueStatic</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;dynamic: &quot;</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">counterValueDynamic</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">printCounterStatic</span><span class="p">(</span><span class="n">String</span><span class="w"> </span><span class="n">classID</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;&gt;&gt; execute printCounterStatic of class &quot;</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">classID</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;dynamic: &quot;</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">counterValueStatic</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div></section><section class="print-page" id="05_types_of_objects"><h1 id="05_types_of_objects-05-typen-von-objekten">05: Typen von Objekten</h1>
<h2 id="05_types_of_objects-enumerations">Enumerations</h2>
<div class="highlight"><pre><span></span><code><span class="c1">// SecurityLevel.java</span><span class="w"></span>
<span class="kd">public</span><span class="w"> </span><span class="kd">enum</span><span class="w"> </span><span class="n">SecurityLevel</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">LOW</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="n">MEDIUM</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="n">HIGH</span><span class="p">;</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="c1">// Main.java</span><span class="w"></span>
<span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">Main</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">SecurityLevel</span><span class="w"> </span><span class="n">networkSecurity</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">SecurityLevel</span><span class="p">.</span><span class="na">MEDIUM</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="c1">// comparing enum items</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">networkSecurity</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n">SecurityLevel</span><span class="p">.</span><span class="na">HIGH</span><span class="p">);</span><span class="w"> </span><span class="c1">// false</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">networkSecurity</span><span class="p">.</span><span class="na">compareTo</span><span class="p">(</span><span class="n">SecurityLevel</span><span class="p">.</span><span class="na">LOW</span><span class="p">));</span><span class="w"> </span><span class="c1">// 1</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">networkSecurity</span><span class="p">.</span><span class="na">compareTo</span><span class="p">(</span><span class="n">SecurityLevel</span><span class="p">.</span><span class="na">MEDIUM</span><span class="p">));</span><span class="w"> </span><span class="c1">// 0</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">networkSecurity</span><span class="p">.</span><span class="na">compareTo</span><span class="p">(</span><span class="n">SecurityLevel</span><span class="p">.</span><span class="na">HIGH</span><span class="p">));</span><span class="w"> </span><span class="c1">// -1</span><span class="w"></span>
<span class="w"> </span><span class="c1">// print all possible values</span><span class="w"></span>
<span class="w"> </span><span class="k">for</span><span class="p">(</span><span class="n">SecurityLevel</span><span class="w"> </span><span class="n">value</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="n">SecurityLevel</span><span class="p">.</span><span class="na">values</span><span class="p">())</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">value</span><span class="p">.</span><span class="na">ordinal</span><span class="p">()</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="s">&quot; &quot;</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">value</span><span class="p">.</span><span class="na">name</span><span class="p">()</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="s">&quot; &quot;</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">value</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="k">switch</span><span class="w"> </span><span class="p">(</span><span class="n">networkSecurity</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="n">LOW</span><span class="p">:</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;The network security MUST be increased!&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="k">break</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="n">MEDIUM</span><span class="p">:</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;The network security needs improvements&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="k">break</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="n">HIGH</span><span class="p">:</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;The network security is good so far&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="k">break</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>
<h2 id="05_types_of_objects-generics">Generics</h2>
<div class="highlight"><pre><span></span><code><span class="c1">// Main.java</span><span class="w"></span>
<span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">Main</span><span class="w"> </span><span class="cm">/*extends Language implements Regex*/</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">SaveState</span><span class="o">&lt;</span><span class="n">String</span><span class="o">&gt;</span><span class="w"> </span><span class="n">stateFirst</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">SaveState</span><span class="o">&lt;</span><span class="n">String</span><span class="o">&gt;</span><span class="p">(</span><span class="s">&quot;Begin of the story&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="n">SaveState</span><span class="o">&lt;</span><span class="n">String</span><span class="o">&gt;</span><span class="w"> </span><span class="n">stateSecond</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">SaveState</span><span class="o">&lt;</span><span class="n">String</span><span class="o">&gt;</span><span class="p">(</span><span class="s">&quot;Near last boss fight&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">stateFirst</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">stateSecond</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;second state bigger? &quot;</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">stateSecond</span><span class="p">.</span><span class="na">compareTo</span><span class="p">(</span><span class="n">stateFirst</span><span class="p">));</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;first state bigger? &quot;</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">stateFirst</span><span class="p">.</span><span class="na">compareTo</span><span class="p">(</span><span class="n">stateSecond</span><span class="p">));</span><span class="w"></span>
<span class="w"> </span><span class="n">stateFirst</span><span class="p">.</span><span class="na">setSaveState</span><span class="p">(</span><span class="s">&quot;Finished tutorial&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">stateFirst</span><span class="p">.</span><span class="na">getSaveState</span><span class="p">());</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>
<h3 id="05_types_of_objects-abstract-and-interface">Abstract and Interface</h3>
<p><div class="highlight"><pre><span></span><code><span class="c1">// Regex.java</span><span class="w"></span>
<span class="kd">public</span><span class="w"> </span><span class="kd">interface</span> <span class="nc">Regex</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="n">String</span><span class="w"> </span><span class="nf">concatStrings</span><span class="p">(</span><span class="n">String</span><span class="w"> </span><span class="n">left</span><span class="p">,</span><span class="w"> </span><span class="n">String</span><span class="w"> </span><span class="n">right</span><span class="p">);</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="c1">// Main.java</span><span class="w"></span>
<span class="kd">abstract</span><span class="w"> </span><span class="kd">class</span> <span class="nc">Language</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">showLanguage</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;This text is presented to you by Java&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">abstract</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">sayHelloWorld</span><span class="p">();</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
<span class="c1">// Main.java</span><span class="w"></span>
<span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">Main</span><span class="w"> </span><span class="kd">extends</span><span class="w"> </span><span class="n">Language</span><span class="w"> </span><span class="kd">implements</span><span class="w"> </span><span class="n">Regex</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="c1">// Language myLanguage = new Language();</span><span class="w"></span>
<span class="w"> </span><span class="c1">// &#39;Language&#39; is abstract; cannot be instantiated</span><span class="w"></span>
<span class="w"> </span><span class="n">Main</span><span class="w"> </span><span class="n">myObject</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">Main</span><span class="p">();</span><span class="w"></span>
<span class="w"> </span><span class="n">myObject</span><span class="p">.</span><span class="na">sayHelloWorld</span><span class="p">();</span><span class="w"></span>
<span class="w"> </span><span class="n">String</span><span class="w"> </span><span class="n">wortwitz</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">myObject</span><span class="p">.</span><span class="na">concatStrings</span><span class="p">(</span><span class="s">&quot;du&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;schlampe&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">wortwitz</span><span class="p">);</span><span class="w"> </span><span class="c1">// duschlampe</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="nd">@Override</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">sayHelloWorld</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;I refuse to say that!&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="nd">@Override</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="n">String</span><span class="w"> </span><span class="nf">concatStrings</span><span class="p">(</span><span class="n">String</span><span class="w"> </span><span class="n">left</span><span class="p">,</span><span class="w"> </span><span class="n">String</span><span class="w"> </span><span class="n">right</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">left</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">right</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>
<div class="highlight"><pre><span></span><code><span class="c1">// SaveState.java</span><span class="w"></span>
<span class="kn">import</span><span class="w"> </span><span class="nn">java.security.InvalidParameterException</span><span class="p">;</span><span class="w"></span>
<span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">SaveState</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span><span class="w"> </span><span class="kd">implements</span><span class="w"> </span><span class="n">Comparable</span><span class="o">&lt;</span><span class="n">SaveState</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="kd">private</span><span class="w"> </span><span class="n">T</span><span class="w"> </span><span class="n">saveEntry</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="kd">private</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">saveID</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="kd">private</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">staticSaveID</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="c1">// constructor</span><span class="w"></span>
<span class="w"> </span><span class="n">SaveState</span><span class="p">(</span><span class="n">T</span><span class="w"> </span><span class="n">saveEntry</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">InvalidParameterException</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="k">if</span><span class="p">(</span><span class="n">saveEntry</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="kc">null</span><span class="p">)</span><span class="w"> </span><span class="k">throw</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">InvalidParameterException</span><span class="p">(</span><span class="s">&quot;entry shall not be null&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">saveEntry</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">saveEntry</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">saveID</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">staticSaveID</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="n">staticSaveID</span><span class="o">++</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">getSaveID</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">saveID</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="n">T</span><span class="w"> </span><span class="nf">getSaveState</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">saveEntry</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">setSaveState</span><span class="p">(</span><span class="n">T</span><span class="w"> </span><span class="n">saveEntry</span><span class="p">)</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="n">InvalidParameterException</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="k">if</span><span class="p">(</span><span class="n">saveEntry</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="kc">null</span><span class="p">)</span><span class="w"> </span><span class="k">throw</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">InvalidParameterException</span><span class="p">(</span><span class="s">&quot;entry shall not be null&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">saveEntry</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">saveEntry</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="nd">@Override</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="n">String</span><span class="w"> </span><span class="nf">toString</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="k">try</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">saveID</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="s">&quot;: &quot;</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="na">saveEntry</span><span class="p">.</span><span class="na">toString</span><span class="p">();</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">catch</span><span class="w"> </span><span class="p">(</span><span class="n">Exception</span><span class="w"> </span><span class="n">exception</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;T.toString() for Class &quot;</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">saveEntry</span><span class="p">.</span><span class="na">getClass</span><span class="p">()</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="s">&quot; does not exist&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="kc">null</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="nd">@Override</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">compareTo</span><span class="p">(</span><span class="n">SaveState</span><span class="w"> </span><span class="n">object</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="na">saveID</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="n">object</span><span class="p">.</span><span class="na">getSaveID</span><span class="p">())</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="na">saveID</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">object</span><span class="p">.</span><span class="na">getSaveID</span><span class="p">())</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="o">-</span><span class="mi">1</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div></p>
<h2 id="05_types_of_objects-collections">Collections</h2>
<div class="highlight"><pre><span></span><code><span class="kn">import</span><span class="w"> </span><span class="nn">java.util.*</span><span class="p">;</span><span class="w"></span>
<span class="c1">// Main.java</span><span class="w"></span>
<span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">Main</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">alphabet</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="s">&quot;bee&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="s">&quot;apple&quot;</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="s">&quot;clown&quot;</span><span class="w"></span>
<span class="w"> </span><span class="p">};</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="w"> </span><span class="n">Arrays</span><span class="p">.</span><span class="na">toString</span><span class="p">(</span><span class="n">alphabet</span><span class="p">)</span><span class="w"> </span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="n">ArrayList</span><span class="o">&lt;</span><span class="n">String</span><span class="o">&gt;</span><span class="w"> </span><span class="n">myArrayList</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">ArrayList</span><span class="o">&lt;</span><span class="n">String</span><span class="o">&gt;</span><span class="p">();</span><span class="w"></span>
<span class="w"> </span><span class="n">TreeSet</span><span class="o">&lt;</span><span class="n">String</span><span class="o">&gt;</span><span class="w"> </span><span class="n">myTreeSet</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">TreeSet</span><span class="o">&lt;</span><span class="n">String</span><span class="o">&gt;</span><span class="p">();</span><span class="w"></span>
<span class="w"> </span><span class="n">HashMap</span><span class="o">&lt;</span><span class="n">Integer</span><span class="p">,</span><span class="w"> </span><span class="n">String</span><span class="o">&gt;</span><span class="w"> </span><span class="n">myHashMap</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">HashMap</span><span class="o">&lt;&gt;</span><span class="p">();</span><span class="w"></span>
<span class="w"> </span><span class="k">for</span><span class="p">(</span><span class="n">String</span><span class="w"> </span><span class="n">selection</span><span class="p">:</span><span class="w"> </span><span class="n">alphabet</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">myArrayList</span><span class="p">.</span><span class="na">add</span><span class="p">(</span><span class="n">selection</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="n">myTreeSet</span><span class="p">.</span><span class="na">add</span><span class="p">(</span><span class="n">selection</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="n">myHashMap</span><span class="p">.</span><span class="na">put</span><span class="p">(</span><span class="n">myHashMap</span><span class="p">.</span><span class="na">size</span><span class="p">(),</span><span class="w"> </span><span class="n">selection</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="n">Set</span><span class="o">&lt;</span><span class="n">Integer</span><span class="o">&gt;</span><span class="w"> </span><span class="n">mapKeys</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">myHashMap</span><span class="p">.</span><span class="na">keySet</span><span class="p">();</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">mapKeys</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="n">Collection</span><span class="o">&lt;</span><span class="n">String</span><span class="o">&gt;</span><span class="w"> </span><span class="n">mapValues</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">myHashMap</span><span class="p">.</span><span class="na">values</span><span class="p">();</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">mapValues</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="n">Iterator</span><span class="o">&lt;</span><span class="n">String</span><span class="o">&gt;</span><span class="w"> </span><span class="n">arrayListIterator</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">myArrayList</span><span class="p">.</span><span class="na">iterator</span><span class="p">();</span><span class="w"></span>
<span class="w"> </span><span class="n">Iterator</span><span class="o">&lt;</span><span class="n">String</span><span class="o">&gt;</span><span class="w"> </span><span class="n">treeSetIterator</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">myTreeSet</span><span class="p">.</span><span class="na">iterator</span><span class="p">();</span><span class="w"></span>
<span class="w"> </span><span class="n">Iterator</span><span class="o">&lt;</span><span class="n">String</span><span class="o">&gt;</span><span class="w"> </span><span class="n">hashMapIterator</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">myHashMap</span><span class="p">.</span><span class="na">values</span><span class="p">().</span><span class="na">iterator</span><span class="p">();</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;--- arrayList ---&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">String</span><span class="w"> </span><span class="n">selectedValue</span><span class="p">:</span><span class="w"> </span><span class="n">myArrayList</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">selectedValue</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;--- arrayListIterator ---&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">arrayListIterator</span><span class="p">.</span><span class="na">hasNext</span><span class="p">())</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">arrayListIterator</span><span class="p">.</span><span class="na">next</span><span class="p">());</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;--- treeSet ---&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">String</span><span class="w"> </span><span class="n">selectedValue</span><span class="p">:</span><span class="w"> </span><span class="n">myTreeSet</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">ystem</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">selectedValue</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;--- treeSetIterator ---&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">treeSetIterator</span><span class="p">.</span><span class="na">hasNext</span><span class="p">())</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">treeSetIterator</span><span class="p">.</span><span class="na">next</span><span class="p">());</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;--- hashMap ---&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">Map</span><span class="p">.</span><span class="na">Entry</span><span class="o">&lt;</span><span class="n">Integer</span><span class="p">,</span><span class="w"> </span><span class="n">String</span><span class="o">&gt;</span><span class="w"> </span><span class="n">pair</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="n">myHashMap</span><span class="p">.</span><span class="na">entrySet</span><span class="p">())</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">pair</span><span class="p">.</span><span class="na">getKey</span><span class="p">()</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="s">&quot;: &quot;</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">pair</span><span class="p">.</span><span class="na">getValue</span><span class="p">());</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">&quot;--- hashMapIterator ---&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">hashMapIterator</span><span class="p">.</span><span class="na">hasNext</span><span class="p">())</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="n">hashMapIterator</span><span class="p">.</span><span class="na">next</span><span class="p">());</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>
<ul>
<li>List - für beliebig große Listen, deren Elemente auch über einen Index zugegriffen werden können,<ul>
<li><code>ArrayList</code> - Indizierte Liste, deren Größe dynamisch verändert werden kann. Indexzugriffe sind schnell, Größenänderungen sind aufwändig.</li>
<li><code>LinkedList</code> - Verkettete Liste. Indexzugriffe sind langsam, Einfügen und Löschen ist schnell.</li>
</ul>
</li>
<li>Set - zur Darstellung von Mengen<ul>
<li><code>HashSet</code> - ungeordnete Datenmenge (ohne Duplikate)</li>
<li><code>TreeSet</code> - Sortierte Menge.</li>
</ul>
</li>
<li>Map - für Paare von Daten verschiedenen Typs.<ul>
<li><code>HashMap</code> - Menge von (Schlüssel,Wert)-Paaren</li>
<li><code>TreeMap</code> - nach Schlüsseln sortierte Menge von (Schlüssel,Wert)-Paaren</li>
</ul>
</li>
</ul>
<h3 id="05_types_of_objects-collection-interface-list-set-map">Collection Interface (List, Set, Map)</h3>
<table>
<thead>
<tr>
<th>Methode</th>
<th>Beschreibung</th>
</tr>
</thead>
<tbody>
<tr>
<td>int size()</td>
<td>liefert die Anzahl der Einträge</td>
</tr>
<tr>
<td>boolean isEmpty()</td>
<td>prüft, ob keine Einträge vorhanden sind</td>
</tr>
<tr>
<td>boolean contains(Object o)</td>
<td>prüft, ob o eingetragen ist</td>
</tr>
<tr>
<td>boolean add(Object o)</td>
<td>prüft, ob alle Elemente aus c enthalten sind</td>
</tr>
<tr>
<td>boolean addAll(Collection c)</td>
<td>trägt alle Elemente aus c ein (optional)</td>
</tr>
<tr>
<td>boolean remove(Object o)</td>
<td>entfernt o (optional)</td>
</tr>
<tr>
<td>boolean removeAll(Collection c)</td>
<td>entfernt die in c angegebenen Elemente (optional)</td>
</tr>
<tr>
<td>boolean retainAll(Collection c)</td>
<td>entfernt alle Elemente, außer die in c angegebenen (optional)</td>
</tr>
<tr>
<td>boolean equals(Object o)</td>
<td>prüft, ob o mit der Collection übereinstimmt</td>
</tr>
<tr>
<td>Iterator iterator()</td>
<td>erzeugt einen Iterator</td>
</tr>
<tr>
<td>void clear()</td>
<td>entfernt alle Elemente (optional)</td>
</tr>
</tbody>
</table>
<h3 id="05_types_of_objects-list-interface">List Interface</h3>
<table>
<thead>
<tr>
<th>Methode</th>
<th>Beschreibung</th>
</tr>
</thead>
<tbody>
<tr>
<td>Object get(int i)</td>
<td>liefert das Element an Position i (ohne es zu entfernen)</td>
</tr>
<tr>
<td>int indexOf(Object o)</td>
<td>liefert den Index des ersten Vorkommens von o oder -1</td>
</tr>
</tbody>
</table>
<h3 id="05_types_of_objects-map-interface">Map Interface</h3>
<table>
<thead>
<tr>
<th>Methode</th>
<th>Beschreibung</th>
</tr>
</thead>
<tbody>
<tr>
<td>boolean containsKey(Object key)</td>
<td>prüft, ob ein Datenpaar mit Schlüssel key eingetragen ist</td>
</tr>
<tr>
<td>boolean containsValue(Object value)</td>
<td>prüft, ob ein Datenpaar mit Wert value eingetragen ist</td>
</tr>
<tr>
<td>Object get(Object key)</td>
<td>liefert den eingetragenen Wert zum Schlüssen key</td>
</tr>
<tr>
<td>Object put(Object key, Object value)</td>
<td>trägt das Datenpaar(key,value) ein (optional)</td>
</tr>
<tr>
<td>boolean remove(Object key)</td>
<td>entfernt das Datenpaar mit Schlüssel key (optional)</td>
</tr>
</tbody>
</table>
<h3 id="05_types_of_objects-iteratoren-list-set">Iteratoren (List, Set)</h3>
<table>
<thead>
<tr>
<th>Methode</th>
<th>Beschreibung</th>
</tr>
</thead>
<tbody>
<tr>
<td>boolean hasNext()</td>
<td>prüft, ob ein weiteres Element existiert</td>
</tr>
<tr>
<td>Object next()</td>
<td>liefert das nächste Element und schaltet weiter</td>
</tr>
<tr>
<td>void remove()</td>
<td>löscht das aktuelle Element</td>
</tr>
</tbody>
</table>
<h3 id="05_types_of_objects-listiterator-list">ListIterator (List)</h3>
<table>
<thead>
<tr>
<th>Methode</th>
<th>Beschreibung</th>
</tr>
</thead>
<tbody>
<tr>
<td>boolean hasPrevious()</td>
<td>prüft, ob ein Vorgänger existiert</td>
</tr>
<tr>
<td>Object previous()</td>
<td>liefert das vorherige Element</td>
</tr>
<tr>
<td>void add(Object o)</td>
<td>fügt ein neues Element o hinter dem aktuellen Element ein</td>
</tr>
<tr>
<td>void set(Object o)</td>
<td>ersetzt das aktuelle Element durch o</td>
</tr>
</tbody>
</table></section><section class="print-page" id="06_java_docs"><h1 id="06_java_docs-06-javadoc">06: JavaDoc</h1>
<p>Quelle: <a href="https://binfalse.de/2015/10/05/javadoc-cheats-sheet/">JavaDoc Cheatsheet</a></p>
<p>Output as PDF: <a href="https://github.com/YamiDoesDev/algodat-java-intro/blob/main/media/javadoc_main.pdf">JavaDoc from class Main</a></p>
<div class="highlight"><pre><span></span><code><span class="cm">/**</span>
<span class="cm"> * This is the Main class</span>
<span class="cm"> * @version 1.0.1</span>
<span class="cm"> * @author Justin Drtvic</span>
<span class="cm"> */</span><span class="w"></span>
<span class="c1">// Main.java</span><span class="w"></span>
<span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">Main</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="cm">/**</span>
<span class="cm"> * this is the main function, which is needed to execute the code</span>
<span class="cm"> * @param args params passed by the command line</span>
<span class="cm"> */</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="w"> </span><span class="n">addition</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span><span class="w"> </span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="cm">/**</span>
<span class="cm"> * addition of two integer numbers</span>
<span class="cm"> * @param left number for left side</span>
<span class="cm"> * @param right number for right side</span>
<span class="cm"> * @return sum of two numbers</span>
<span class="cm"> * @throws IllegalArgumentException for numbers smaller than 0</span>
<span class="cm"> * @see Math</span>
<span class="cm"> * @see &lt;a href=&quot;https://www.mathebibel.de/addition/&quot;&gt;Mathebibel Addition&lt;/a&gt;</span>
<span class="cm"> * @since Java API 7</span>
<span class="cm"> * @deprecated deprecated since 3.0.0</span>
<span class="cm"> */</span><span class="w"></span>
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">addition</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">left</span><span class="p">,</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">right</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">left</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="n">right</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="k">throw</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">IllegalArgumentException</span><span class="p">(</span><span class="s">&quot;we don&#39;t like numbers smaller than 0&quot;</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">left</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">right</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="p">}</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div></section></div>
</article>
</div>
</div>
</main>
<footer class="md-footer">
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-copyright">
Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
Material for MkDocs
</a>
</div>
</div>
</div>
</footer>
</div>
<div class="md-dialog" data-md-component="dialog">
<div class="md-dialog__inner md-typeset"></div>
</div>
<script id="__config" type="application/json">{"base": "/", "features": [], "search": "assets/javascripts/workers/search.ecf98df9.min.js", "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.config.lang": "de", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Suche", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version.title": "Version ausw\u00e4hlen"}}</script>
<script src="https://unpkg.com/iframe-worker/polyfill"></script>
<script src="search/search_index.js"></script>
<script src="assets/javascripts/bundle.9c69f0bc.min.js"></script>
<script src="js/print-site.js"></script>
<script src="js/arithmatex.config.js"></script>
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
<script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
</body>
</html>