<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Coder-Blog &#187; objektorientierte programmierung</title>
	<atom:link href="http://coder-blog.de/tag/objektorientierte-programmierung/feed" rel="self" type="application/rss+xml" />
	<link>http://coder-blog.de</link>
	<description>Just another WordPress site</description>
	<lastBuildDate>Fri, 30 Mar 2012 08:43:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Java-Tutorial: CowSay (Kuh lernt sprechen)</title>
		<link>http://coder-blog.de/java-tutorial-cowsay-kuh-lernt-sprechen</link>
		<comments>http://coder-blog.de/java-tutorial-cowsay-kuh-lernt-sprechen#comments</comments>
		<pubDate>Thu, 09 Apr 2009 20:29:27 +0000</pubDate>
		<dc:creator>Eugen</dc:creator>
				<category><![CDATA[Java-Tutorials]]></category>
		<category><![CDATA[bedingte-anweisungen]]></category>
		<category><![CDATA[coder-blog.de]]></category>
		<category><![CDATA[cowsay]]></category>
		<category><![CDATA[for-schleife]]></category>
		<category><![CDATA[java-lernen]]></category>
		<category><![CDATA[java-tutorial]]></category>
		<category><![CDATA[objektorientierte programmierung]]></category>

		<guid isPermaLink="false">http://coder-blog.de/?p=78</guid>
		<description><![CDATA[Dieses Java-Tutorial beschreibt wie wir unser Java cowsay mit mehr Funktionalität ausstatten, sodass unsere Kuh nun sprechen lernt <a href="http://coder-blog.de/java-tutorial-cowsay-kuh-lernt-sprechen">mehr <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Lange versprochen wenden wir uns jetzt unserer Kuh aus dem zweiten Java-Tutorial zu. Schauen wir uns noch einmal an wie das Unix-Programm cowsay funktioniert.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">cowsay <span style="color: #ff0000;">'Java rocks!'</span></pre></div></div>

<p>Die Ausgabe dazu sollte so aussehen:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"> _____________
<span style="color: #000000; font-weight: bold;">&lt;</span> Java rocks<span style="color: #000000; font-weight: bold;">!</span> <span style="color: #000000; font-weight: bold;">&gt;</span>
 <span style="color: #660033;">-------------</span>
           ^__^
           <span style="color: #7a0874; font-weight: bold;">&#40;</span>oo<span style="color: #7a0874; font-weight: bold;">&#41;</span>_______
           <span style="color: #7a0874; font-weight: bold;">&#40;</span>__<span style="color: #7a0874; font-weight: bold;">&#41;</span>       <span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #000000; font-weight: bold;">/</span>
              <span style="color: #000000; font-weight: bold;">||</span>----w <span style="color: #000000; font-weight: bold;">|</span>
              <span style="color: #000000; font-weight: bold;">||</span>     <span style="color: #000000; font-weight: bold;">||</span></pre></div></div>

<p>Diese Funktionalität möchten wir nun nachbauen, dass wir unser cowsay mit diesem Befehl ausführen können und das Ergebnis genauso aussehen soll wie das original cowsay aus Unix.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">java cowsay <span style="color: #ff0000;">'Java rocks!'</span></pre></div></div>

<p>Der Vorteil dabei ist jedoch, dass wir dieses Programm auf Windows, Linux, Mac OSX und allen anderen Betriebssystemen nutzen können, die auch von dem Java Runtime Environment unterstützt werden.<span id="more-78"></span><br />
Okay, fangen wir dann mal an. Zunächst erstellen wir uns eine Klasse cowsay, die auch die main-Methode enthält:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> cowsay
<span style="color: #009900;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> main<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> args<span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Zunächst sollten wir klären wie wir es schaffen, dass der Text, den wir beim Aufruf des cowsay-Programms mitgeben auch in unseren Java-Code kommt. Dazu ist dieses String[] args da! Wie wir in den letzten Tutorials gelernt haben, handelt es sich hierbei um ein Array des Typs String. Darin finden wir die Argumente, die wir an unser Programm in der Konsole übergeben haben. Bei unserem cowsay brauchen wir lediglich auf args[0] zuzugreifen, denn wir übergeben nur ein Argument. Sollten wir jedoch mehrere Argumente übergeben wollen, so trennen wir diese durch ein Leerzeichen im Programmaufruf und finden diese in args[0] … args[n] wieder. Je nachdem wie viele davon wir übergeben hatten.<br />
Ein Problem auf das wir stoßen werden, ist dass wir die Fehlermeldung &#8220;ArrayIndexOutOfBoundException&#8221; erhalten, wenn wir beim Programmaufruf keine Nachricht übergeben. Dies werden wir mit einer bedingten Anweisung lösen und eine Standardnachricht angeben.<br />
Deshalb waren mir auch die letzten Tutorials so wichtig, bevor wir dieses hier bearbeiten konnten.<br />
Bauen wir uns dazu nun folgenden Code:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> cowsay
<span style="color: #009900;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> main<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> args<span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>args.<span style="color: #006633;">length</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
      args <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
      args<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Ich sage nix&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #666666; font-style: italic;">//Hier geht es noch weiter</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Hier prüfen wir mit args.length == 0, ob das args Array einen Wert zugewiesen bekommen hat. Ist dies der Fall, so ist die Länge des Arrays größer 0! Sollte es nun so sein, dass keine Nachricht eingegeben wurde, definieren wir args als ein String-Array-Objekt mit einer Länge von eins. Nun speichern wir die Standardnachricht &#8220;Ich sage nix&#8221; in das Array an der Stelle 0.</p>
<p>Wenden wir uns jetzt der Sprechblase zu. Wir müssen dabei darauf achten, dass die Größe dieser abhängig von der Länge der eingegeben Nachricht ist. Dieses Problem werden wir mit einer Schleife lösen können. Dies zeigt uns das folgende Code-Fragment:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> cowsay
<span style="color: #009900;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> main<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> args<span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>args.<span style="color: #006633;">length</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
      args <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
      args<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Ich sage nix&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #003399;">String</span> message <span style="color: #339933;">=</span> args<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">int</span> messageLength <span style="color: #339933;">=</span> message.<span style="color: #006633;">length</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>   <span style="color: #666666; font-style: italic;">//Laenge der Nachricht</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">/*********************************************
    *           Sprechblase erzeugen
    *********************************************/</span>
    <span style="color: #003399;">String</span> top <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot; &quot;</span><span style="color: #339933;">;</span>                <span style="color: #666666; font-style: italic;">//Obere Linie der Sprechblase</span>
    <span style="color: #003399;">String</span> bottom <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot; &quot;</span><span style="color: #339933;">;</span>             <span style="color: #666666; font-style: italic;">//Untere Linie der Sprechblase</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">//Linke und rechte Grenze mit Nachricht der Sprechblase</span>
    <span style="color: #003399;">String</span> contentAndBorders <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&lt; &quot;</span> <span style="color: #339933;">+</span> message <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot; &gt;&quot;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">//Gesamte Sprechblase</span>
    <span style="color: #003399;">String</span> speechBubble<span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">//Obere + untere Linie erzeugen</span>
    <span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> i <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;=</span> messageLength <span style="color: #339933;">+</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
      top <span style="color: #339933;">+=</span> <span style="color: #0000ff;">&quot;_&quot;</span><span style="color: #339933;">;</span>
      bottom <span style="color: #339933;">+=</span> <span style="color: #0000ff;">&quot;-&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    speechBubble <span style="color: #339933;">=</span> top <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;n&quot;</span><span style="color: #339933;">;</span>
    speechBubble <span style="color: #339933;">+=</span> contentAndBorders <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;n&quot;</span><span style="color: #339933;">;</span>
    speechBubble <span style="color: #339933;">+=</span> bottom <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;n&quot;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">//Jetzt folgt noch die Kuh</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Die ersten Zeilen sind die gleichen wie im obigen Code. Wir weisen der Variablen message den Inhalt des Arrays an der Stelle 0 zu, damit wir uns das Schreiben der eckigen Klammern sparen können und diese Variable einfach sprechender ist, als ein args[0].<br />
Die Variable messageLength bekommt die Länge unserer Nachricht zugewiesen, da wir diese für die Schleife brauchen werden. Als nächstes erzeugen wir uns die Variablen top und bottom, die die Zeichen für die obere bzw. untere Linie enthalten werden. Diese bekommen jeweils zunächst ein Leerzeichen zugewiesen. Damit stellen wir sicher, dass über / unter der öffnenden spitzen Klammer keine Striche stehen werden.<br />
Die Variable messageAndBorders enthält die Nachricht und den linken und rechten Begrenzer gefolgt von einem Leerzeichen, damit links und rechts von der Nachricht etwas Platz bleibt. &#8211; Sieht einfach besser aus. Dadurch müssen wir aber auch die Schleife um zwei Durchläufe erweitern, um dies auszugleichen. In dieser Schleife werden die Variablen top und bottom mit den entsprechenden Zeichen &#8220;_&#8221; und &#8220;-&#8221; gefüllt. Es werden so viele Zeichen erstellt wie die Nachricht – verlängert um zwei – lang ist.<br />
Die Variable speechBubble soll die gesamte Sprechblase enthalten und bekommt deshalb top, contentAndBorders und bottom – jeweils gefolgt von einer &#8220;newline&#8221; – zugewiesen.</p>
<p>Jetzt fehlt uns nur noch die Kuh. Eigentlich könnten wir einfach den Code aus dem CowSay-Tutorial verwenden, denn es ändert sich hierbei nichts. Um aber so viele System.out.println zu vermeiden, speichern wir die Kuh in die kuh Variable und erstellen uns eine Variable cowsay, die die Sprechblase und die Kuh enthält, die wir dann schließlich ausgeben werden.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> cowsay
<span style="color: #009900;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> main<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> args<span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>args.<span style="color: #006633;">length</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
      args <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
      args<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Ich sage nix&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #003399;">String</span> message <span style="color: #339933;">=</span> args<span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">int</span> messageLength <span style="color: #339933;">=</span> message.<span style="color: #006633;">length</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>   <span style="color: #666666; font-style: italic;">//Laenge der Nachricht</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">/*********************************************
    *           Sprechblase erzeugen
    **********************************************/</span>
    <span style="color: #003399;">String</span> top <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot; &quot;</span><span style="color: #339933;">;</span>                <span style="color: #666666; font-style: italic;">//Obere Linie der Sprechblase</span>
    <span style="color: #003399;">String</span> bottom <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot; &quot;</span><span style="color: #339933;">;</span>             <span style="color: #666666; font-style: italic;">//Untere Linie der Sprechblase</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">//Linke und rechte Grenze mit Nachricht der Sprechblase</span>
    <span style="color: #003399;">String</span> contentAndBorders <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;&lt; &quot;</span> <span style="color: #339933;">+</span> message <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot; &gt;&quot;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">//Gesamte Sprechblase</span>
    <span style="color: #003399;">String</span> speechBubble<span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">//Die Kuh</span>
    <span style="color: #003399;">String</span> kuh<span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">//Die gesamte Ausgabe</span>
    <span style="color: #003399;">String</span> cowsay<span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">//Obere + untere Linie erzeugen</span>
    <span style="color: #000000; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> i <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;=</span> messageLength <span style="color: #339933;">+</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
      top <span style="color: #339933;">+=</span> <span style="color: #0000ff;">&quot;_&quot;</span><span style="color: #339933;">;</span>
      bottom <span style="color: #339933;">+=</span> <span style="color: #0000ff;">&quot;-&quot;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    speechBubble <span style="color: #339933;">=</span> top <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;n&quot;</span><span style="color: #339933;">;</span>
    speechBubble <span style="color: #339933;">+=</span> contentAndBorders <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;n&quot;</span><span style="color: #339933;">;</span>
    speechBubble <span style="color: #339933;">+=</span> bottom <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;n&quot;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">//Die Kuh erzeugen</span>
    kuh <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;          ^__^&quot;</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;n&quot;</span><span style="color: #339933;">;</span>
    kuh <span style="color: #339933;">+=</span> <span style="color: #0000ff;">&quot;          (oo)_______&quot;</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;n&quot;</span><span style="color: #339933;">;</span>
    kuh <span style="color: #339933;">+=</span> <span style="color: #0000ff;">&quot;           (__)       )/&quot;</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;n&quot;</span><span style="color: #339933;">;</span>
    kuh <span style="color: #339933;">+=</span> <span style="color: #0000ff;">&quot;               ||----w |&quot;</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;n&quot;</span><span style="color: #339933;">;</span>
    kuh <span style="color: #339933;">+=</span> <span style="color: #0000ff;">&quot;               ||     ||&quot;</span><span style="color: #339933;">;</span>
&nbsp;
    cowsay <span style="color: #339933;">=</span> speechBubble <span style="color: #339933;">+</span> kuh<span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span>cowsay<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Jetzt ist unsere Kuh eigentlich fertig und kann auch verwendet werden. Wir werden sie aber noch in späteren Tutorials umbauen. Freut euch schon mal drauf.</p>
]]></content:encoded>
			<wfw:commentRss>http://coder-blog.de/java-tutorial-cowsay-kuh-lernt-sprechen/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java-Tutorial: Fallunterscheidungen (Bedingte Anweisungen)</title>
		<link>http://coder-blog.de/java-tutorial-fallunterscheidungen-bedingte-anweisungen</link>
		<comments>http://coder-blog.de/java-tutorial-fallunterscheidungen-bedingte-anweisungen#comments</comments>
		<pubDate>Sat, 28 Mar 2009 22:28:04 +0000</pubDate>
		<dc:creator>Eugen</dc:creator>
				<category><![CDATA[Java-Tutorials]]></category>
		<category><![CDATA[bedingte-anweisungen]]></category>
		<category><![CDATA[else-Anweisung]]></category>
		<category><![CDATA[else-if-anweisung]]></category>
		<category><![CDATA[fallunterscheidungen]]></category>
		<category><![CDATA[if-Anweisung]]></category>
		<category><![CDATA[java-arrays]]></category>
		<category><![CDATA[java-lernen]]></category>
		<category><![CDATA[java-tutorial]]></category>
		<category><![CDATA[objektorientierte programmierung]]></category>
		<category><![CDATA[switch-anweisung]]></category>
		<category><![CDATA[variablen]]></category>
		<category><![CDATA[verschachtelte-fallunterscheidung]]></category>

		<guid isPermaLink="false">http://coder-blog.de/?p=103</guid>
		<description><![CDATA[Dieses Java-Tutoral bringt uns Fallunterscheidungen oder auch bedingte Anweisungen näher <a href="http://coder-blog.de/java-tutorial-fallunterscheidungen-bedingte-anweisungen">mehr <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Wie in anderen Programmiersprachen, so bietet natürlich auch Java die Möglichkeit der Fallunterscheidung zu nutzen, die auch in mancher Literatur als bedingte Anweisung beschrieben wird.<br />
Ohne Fallunterscheidungen wäre ein Programm ziemlich doof, denn es könnte nicht flexibel Programmteile ausführen, die nur unter einer bestimmten Bedingung aufgerufen werden soll. Dazu bietet Java die if- bzw. if/else-Anweisungen und die switch-Anweisung.</p>
<p>Bedingte Anweisungen sind gar nicht so schwer – also fangen wir gleich mit der if-Anweisung an:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">int</span> meinAlter <span style="color: #339933;">=</span> <span style="color: #cc66cc;">55</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">int</span> rentenalter <span style="color: #339933;">=</span> <span style="color: #cc66cc;">66</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>meinAlter <span style="color: #339933;">!=</span> rentenalter<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
  <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Rentenalter nicht erreicht – weiterackern!&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Was macht dieses Programm nun? Wir setzen uns zwei Variablen mit den Werten 55 und 66. Die Variable meinAlter soll das jetzige Alter repräsentieren. Die Zweite enthält das gegenwärtige Rentenalter 66. Darunter sehen wir die if-Anweisung, die – wie jede if-Anweisung – mit dem Schlüsselwort if eingeleitet wird und in Klammern einen boolschen Wert enthält.<br />
<span id="more-103"></span><br />
Hä, ich sehe aber gar keinen boolschen Wert?! Auf den ersten Blick erkennt man dies auch nicht sofort, doch der Operator != vergleicht zwei Werte auf Nicht-Gleichheit und liefert uns einen boolschen Wert als Ergebnis. Als Gegenstück dazu gibt es den == Operator, der zwei Werte auf Gleichheit hin überprüft. In unserem Fall würde es bedeuten, dass wir den Wert der Variablen meinAlter mit dem Wert der Variablen rentenalter vergleichen. Wir fragen uns also: &#8220;Ist der Wert der Variablen meinAlter ungleich des Wertes der Variablen rentenalter?&#8221;. Als Ergebnis bekommen wir von Java ein true – also es ist wahr, dass beide ungleich sind.<br />
Da diese Bedingung nun wahr ist, wir der Code, der sich unterhalb der if-Anweisung in den geschweiften Klammern befindet ausgeführt.<br />
In normaler Sprache ausgedrückt, könnte man diese Bedingung auch schreiben als: &#8220;Wenn meinAlter ungleich rentenalter ist, dann gib mir aus &#8216;Rentenalter nicht erreicht – weiterackern!&#8217;&#8221;.</p>
<p>Natürlich ist diese Bedingung nicht gut programmiert, denn wenn meinAlter einen Wert enthält, der größer als 66 ist, wir die Meldung ebenfalls ausgegeben. Stattdessen sollten wir den < Operator benutzen, der wie in der Mathematik prüft, ob der erste Wert kleiner dem zweiten Wert ist.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">int</span> meinAlter <span style="color: #339933;">=</span> <span style="color: #cc66cc;">55</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">int</span> rentenalter <span style="color: #339933;">=</span> <span style="color: #cc66cc;">66</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>meinAlter <span style="color: #339933;">&lt;</span> rentenalter<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
  <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Rentenalter nicht erreicht – weiterackern!&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>So ist der Code schon viel besser. Was ist, wenn wir aber auch etwas ausführen möchten, wenn die if-Anweisung nicht zutrifft? Dafür gibt es eben die if-/else-Anweisung. Fügen wir nun unserem if- einen else-Zweig hinzu.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">int</span> meinAlter <span style="color: #339933;">=</span> <span style="color: #cc66cc;">55</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">int</span> rentenalter <span style="color: #339933;">=</span> <span style="color: #cc66cc;">66</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>meinAlter <span style="color: #339933;">&lt;</span> rentenalter<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
  <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Rentenalter nicht erreicht – weiterackern!&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">else</span>
<span style="color: #009900;">&#123;</span>
  <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Yay, jetzt ist erstmal ausruhen angesagt!&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Ins else wird immer nur dann gesprungen, wenn das if nicht zutrifft. Bei uns würde eben die if-Anweisung zuschlagen, da unsere meinAlter-Variable kleiner ist als die rentenalter.<br />
Ändern wir nun meinAlter zum Beispiel in 80, so würde die if-Anweisung nicht mehr zutreffen und dem Else-Zweig Beachtung geschenkt werden.</p>
<p>Es sind auch verschachtelte Fallunterscheidungen möglich:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">int</span> meinAlter <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1000</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">int</span> rentenalter <span style="color: #339933;">=</span> <span style="color: #cc66cc;">66</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>meinAlter <span style="color: #339933;">&lt;</span> rentenalter<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
  <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Rentenalter nicht erreicht – weiterackern!&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">else</span>
<span style="color: #009900;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>meinAlter <span style="color: #339933;">&gt;=</span> <span style="color: #cc66cc;">969</span><span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
      <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Na, willst du Methusalem Konkurrenz machen?&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
  <span style="color: #000000; font-weight: bold;">else</span>
  <span style="color: #009900;">&#123;</span>
      <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Yay, jetzt ist erstmal ausruhen angesagt!&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Wir haben meinAlter auf 1000 geändert. Da jetzt die Bedingung der if-Anweisung nicht zutrifft, wird in die else-Anweisung gesprungen. Darin befindet sich nun ebenfalls eine if-/else-Anweisung. Innerhalb des else-Zweiges, wird jetzt im if geprüft, ob meinAlter größer oder gleich 969 ist. Dies trifft nun zu und es wir die entsprechende Nachricht ausgegeben.<br />
Für solch einen Fall bietet uns Java ein besonderes Konstrukt. Wir hätten also auch schreiben können:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">int</span> meinAlter <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1000</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">int</span> rentenalter <span style="color: #339933;">=</span> <span style="color: #cc66cc;">66</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>meinAlter <span style="color: #339933;">&lt;</span> rentenalter<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
  <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Rentenalter nicht erreicht – weiterackern!&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">else</span> <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>meinAlter <span style="color: #339933;">&gt;=</span> <span style="color: #cc66cc;">969</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
      <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Na, willst du Methusalem Konkurrenz machen?&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">else</span>
<span style="color: #009900;">&#123;</span>
  <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Yay, jetzt ist erstmal ausruhen angesagt!&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Die else-if-Anweisung ist eine Kombination der if – und else-Anweisung. Denn trifft nun der if-Fall bei uns nicht zu, dann wird der else-if-Fall überprüft. Trifft dieser auch nicht zu, wird else ausgeführt. Als Anmerkung sei noch gesagt, dass es uns möglich ist, so viele else-if-Fälle zu benutzen wie wir wollen.</p>
<p>Neben der if-Anweisung und der if-/else-Anweisung findet man die switch-Anweisung:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">int</span> meinAlter <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1000</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">switch</span><span style="color: #009900;">&#40;</span>meinAlter<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">:</span>
    <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Na, heute Windeln schon gewechselt bekommen?&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">66</span><span style="color: #339933;">:</span>
    <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Du darfst in Rente gehen!&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">969</span><span style="color: #339933;">:</span>
    <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Methusalem lässt grüßen&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">4723</span><span style="color: #339933;">:</span>
    <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Der Methuselah-Baum ist so alt wie du – Respekt!&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">default</span><span style="color: #339933;">:</span>
    <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Ja, schönes Alter!&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000000; font-weight: bold;">break</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Der switch-Anweisung wird zunächst ein Wert übergeben. Dieser wir dann überprüft, ob er sich einem bestimmten Fall (case) zuordnen lassen kann. Ist dies nicht möglich, wird der default-Fall angewandt. Der default-Fall ist optional und kann auch weggelassen werden. Bei switch ist zu beachten, dass die break-Anweisungen gesetzt sind. Ein Break bedeutet, dass nach Aufruf der break-Anweisung der weitere Durchlauf einer Anweisung abgebrochen wird. Wird ein Break bei der switch-Anweisung vergessen, so erzeugen wir einen Fall-Through. Es wird jetzt nicht abgebrochen sobald ein Fall eingetroffen ist, sondern es werden die weiter unten stehenden Fälle auch überprüft.</p>
<p>Jetzt müssen wir nur noch etwas über Arrays erfahren und wir können unser CowSay-Programm zum &#8220;Sprechen&#8221; bringen.</p>
]]></content:encoded>
			<wfw:commentRss>http://coder-blog.de/java-tutorial-fallunterscheidungen-bedingte-anweisungen/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Java-Tutorial: Variablen</title>
		<link>http://coder-blog.de/java-tutorial-variablen</link>
		<comments>http://coder-blog.de/java-tutorial-variablen#comments</comments>
		<pubDate>Fri, 27 Mar 2009 21:24:07 +0000</pubDate>
		<dc:creator>Eugen</dc:creator>
				<category><![CDATA[Java-Tutorials]]></category>
		<category><![CDATA[informatik]]></category>
		<category><![CDATA[java-tutorial]]></category>
		<category><![CDATA[lernen]]></category>
		<category><![CDATA[objektorientierte programmierung]]></category>
		<category><![CDATA[studium]]></category>
		<category><![CDATA[variablen]]></category>

		<guid isPermaLink="false">http://coder-blog.de/?p=81</guid>
		<description><![CDATA[In diesem Java-Tutorial lernen wir was Variablen sind und was man mit ihnen anstellen kann. <a href="http://coder-blog.de/java-tutorial-variablen">mehr <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In diesem Java-Tutorial lernen wir was Variablen sind und was man mit ihnen anstellen kann.</p>
<p>Variablen werden viele schon aus der Mathematik kennen. Schauen wir und beispielsweise eine einfache Gleichung aus der Algebra an.<br />
<code>x² + 2x = 0</code><br />
Dabei ist x eine Variable, die für verschiedene Zahlen steht. Dass x die Werte 0 und -2 annehmen kann, damit die Gleichung auch korrekt ist, ist hier unwichtig.</p>
<p>Eine Variable in der Programmierung kann man sich als Box vorstellen, in die wir verschiedenste Werte reinstecken und diese dann wieder auslesen oder verändern können.</p>
<p>Die Variable ist eine Box, die den Namen &#8220;zahl&#8221; trägt. In diese Box können wir nun zum Beispiel eine Zahl &#8220;hineinschieben&#8221; &#8211; hier ist es die 5. Später können wir auf diese gespeicherte 5 zugreifen, indem wir einfach dazu den Namen der Variablen verwenden.</p>
<p><span id="more-81"></span>Dies wollen wir nun in Java mit folgendem Code übertragen.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">int</span> zahl<span style="color: #339933;">;</span>
zahl <span style="color: #339933;">=</span> <span style="color: #cc66cc;">5</span><span style="color: #339933;">;</span></pre></div></div>

<p>In der ersten Zeile sagen wir dem Compiler, dass wir eine Variable zahl in unserem Programm haben werden. In der zweiten Zeile weisen wir der Variablen zahl den Wert 5 zu.<br />
Den obigen Code können wir so auch verkürzt aufschreiben:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">int</span> zahl <span style="color: #339933;">=</span> <span style="color: #cc66cc;">5</span><span style="color: #339933;">;</span></pre></div></div>

<p>Jetzt kann man beim weiteren Programmieren auf diese Variable zugreifen, sie verändern oder mit ihr Rechnungen durchführen. Dazu dieses Beispiel:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> VariablenTutorial
<span style="color: #009900;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> main<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> args<span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
    <span style="color: #000066; font-weight: bold;">int</span> zahl <span style="color: #339933;">=</span> <span style="color: #cc66cc;">5</span><span style="color: #339933;">;</span>
    <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Ich bin die Variable zahl! Mein Wert ist: &quot;</span> <span style="color: #339933;">+</span> zahl<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    zahl <span style="color: #339933;">=</span> <span style="color: #cc66cc;">3</span><span style="color: #339933;">;</span>
    <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Ich bin die Variable zahl! Mein Wert ist: &quot;</span> <span style="color: #339933;">+</span> zahl<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    zahl <span style="color: #339933;">=</span> zahl <span style="color: #339933;">+</span> <span style="color: #cc66cc;">3</span><span style="color: #339933;">;</span>
    <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Ich bin die Variable zahl! Mein Wert ist: &quot;</span> <span style="color: #339933;">+</span> zahl<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Die Ausgabe dieses Programmes sollte wie folgt aussehen:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">Ich bin die Variable zahl<span style="color: #000000; font-weight: bold;">!</span> Mein Wert ist: <span style="color: #000000;">5</span>
Ich bin die Variable zahl<span style="color: #000000; font-weight: bold;">!</span> Mein Wert ist: <span style="color: #000000;">3</span>
Ich bin die Variable zahl<span style="color: #000000; font-weight: bold;">!</span> Mein Wert ist: <span style="color: #000000;">6</span></pre></div></div>

<p>Was geschieht nun in unserem Programmablauf?<br />
In der ersten Zeile der main-Methode erstellen wir eine Variable zahl, die den Wert 5 zugewiesen bekommt. Danach rufen wir System.out.println() mit einem Text auf und übergeben unsere Variable. In der dritten Zeile überschreiben wir unsere Variable mit einem neuen Wert und geben wieder eine Meldung auf der Konsole aus. In der fünften Zeile rechnen wir mit dieser Variable. Der Wert der Variable zahl, der jetzt 3 ist, wird mit 3 addiert und das Ergebnis wird wieder in unsere Variable zahl gespeichert. Eine erneute Ausgabe auf der Konsole zeigt uns, dass die Variable zahl jetzt den Wert 6 angenommen hat.<br />
Was dieses &#8220;int&#8221; da vor der Variable zu suchen hat, klären wir im nächsten Tutorial. Freut euch drauf!</p>
]]></content:encoded>
			<wfw:commentRss>http://coder-blog.de/java-tutorial-variablen/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java-Tutorial: CowSay (naiv)</title>
		<link>http://coder-blog.de/java-tutorial-cowsay-naiv</link>
		<comments>http://coder-blog.de/java-tutorial-cowsay-naiv#comments</comments>
		<pubDate>Wed, 25 Mar 2009 20:41:00 +0000</pubDate>
		<dc:creator>Eugen</dc:creator>
				<category><![CDATA[Java-Tutorials]]></category>
		<category><![CDATA[coder-blog.de]]></category>
		<category><![CDATA[helloworld]]></category>
		<category><![CDATA[java-tutorial]]></category>
		<category><![CDATA[javakurs]]></category>
		<category><![CDATA[objektorientierte programmierung]]></category>
		<category><![CDATA[studium]]></category>

		<guid isPermaLink="false">http://coder-blog.de/?p=57</guid>
		<description><![CDATA[In desem Java-Tutorial erstellen wir uns das aus Unix bekannte cowsay-Programm in mini-Ausgabe. <a href="http://coder-blog.de/java-tutorial-cowsay-naiv">mehr <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Unsere Kenntnisse aus dem <a title="Java-Tutorial: HelloWorld" href="http://coder-blog.de/java-tutorial-helloworld/" target="_blank">HelloWorld-Tutorial</a> geben uns die Möglichkeit das in Unix-Systemen aufzufindende Programm cowsay nachzubilden. Wer ein solches System laufen hat, kann gerne diesen Befehl ausprobieren, um zu sehen wie unser Ergebnis aussehen wird.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">cowsay <span style="color: #ff0000;">&quot;Java rocks!&quot;</span></pre></div></div>

<p>Die Ausgabe sollte in etwa so aussehen:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"> _____________
<span style="color: #000000; font-weight: bold;">&lt;</span> Java rocks<span style="color: #000000; font-weight: bold;">!</span> <span style="color: #000000; font-weight: bold;">&gt;</span>
 <span style="color: #660033;">-------------</span>
          ^__^
          <span style="color: #7a0874; font-weight: bold;">&#40;</span>oo<span style="color: #7a0874; font-weight: bold;">&#41;</span>_______
           <span style="color: #7a0874; font-weight: bold;">&#40;</span>__<span style="color: #7a0874; font-weight: bold;">&#41;</span>       <span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #000000; font-weight: bold;">/</span>
               <span style="color: #000000; font-weight: bold;">||</span>----w <span style="color: #000000; font-weight: bold;">|</span>
               <span style="color: #000000; font-weight: bold;">||</span>     <span style="color: #000000; font-weight: bold;">||</span></pre></div></div>

<p><span id="more-57"></span>Falls ihr aber Windows benutzen solltet, so braucht ihr nicht enttäuscht zu sein, denn wenn ihr diesem Link folgt (<a title="Web-Cowsay" href="http://user.cs.tu-berlin.de/~mutax/cgi-bin/cowsay.cgi" target="_blank">CowSay</a>), findet ihr ein CowSay als Web-Applikation. Wie es scheint, findet sich cowsay auf Mac OSX nicht automatisch vorinstalliert. Will man dieses Programm unbedingt auf dem Rechner haben, so kann man es sich über die <a title="DarwinPorts" href="http://darwinports.com" target="_blank">DarwinPorts</a> oder <a title="MacPorts" href="http://www.macports.org" target="_blank">MacPorts</a> nachinstallieren. Danke an Martin für diesen Hinweis.</p>
<p>Nun wollen wir mit unserem Java CowSay beginnen. Wir werden für jede Zeile eine System.out.println()-Anweisung mit dem entsprechenden Inhalt schreiben. So würde beispielsweise der Aufruf für die erste Zeile lauten</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot; _____________&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Das wollen wir nun für jede Zeile fortführen. Diesen Code packen wir in der Klasse CowSay in die Methode main(). Dann sollte unser Quelltext wie folgt aussehen</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> CowSay
<span style="color: #009900;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> main<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> args<span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
    <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot; _____________ &quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;&lt; Java rocks! &gt;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;          ^__^&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;          (oo)_______&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;           (__)       )/&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;               ||----w |&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;               ||     ||&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Euch wird sicher auffallen, dass wir statt einem Backslash (  ) zwei Backslashes (  ) hintereinander geschrieben haben. Dies liegt daran, dass das Backslash in Java &#8211; und einigen anderen Programmiersprachen auch &#8211; ein Escape-Zeichen ist, womit bestimmte <a title="Wikipedia: Escape-Sequenzen" href="http://de.wikipedia.org/wiki/Escape-Sequenz" target="_blank">Escape-Sequenzen</a> eingeleitet werden. Was Escape-Sequenzen sind behandeln wir in einem weiteren Tutorial.</p>
<p>Unseren Quellcode speichern wir analog zu unserem HalloWelt-Tutorium unter CowSay.java, compilieren diese Datei mit dem Java Compiler und führen den entstandenen Bytecode aus.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">javac CowSay.java
java CowSay</pre></div></div>

<p>Und siehe da, wir haben nun eine Kuh auf unserer Konsole. Okay, zugegeben hat unsere Kuh noch einen recht kleinen Wortschatz, denn sie kann immer nur &#8220;Java rocks!&#8221; ausgeben (deshalb auch &#8220;CowSay (naiv)&#8221;). Dies wird sich aber im Laufe der nächsten Tutorials ändern. Also seid gespannt auf die kommenden Java-Tutorials!</p>
]]></content:encoded>
			<wfw:commentRss>http://coder-blog.de/java-tutorial-cowsay-naiv/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Java-Tutorial: HelloWorld</title>
		<link>http://coder-blog.de/java-tutorial-helloworld</link>
		<comments>http://coder-blog.de/java-tutorial-helloworld#comments</comments>
		<pubDate>Tue, 24 Mar 2009 22:02:03 +0000</pubDate>
		<dc:creator>Eugen</dc:creator>
				<category><![CDATA[Java-Tutorials]]></category>
		<category><![CDATA[coder-blog.de]]></category>
		<category><![CDATA[helloworld]]></category>
		<category><![CDATA[java tutorials]]></category>
		<category><![CDATA[java-tutorial]]></category>
		<category><![CDATA[javakurs]]></category>
		<category><![CDATA[objektorientierte programmierung]]></category>
		<category><![CDATA[oop programmierung]]></category>
		<category><![CDATA[studium]]></category>

		<guid isPermaLink="false">http://coder-blog.de/?p=30</guid>
		<description><![CDATA[In diesem Java-Tutorial erstellen wir ein einfaches HelloWorld - Programm. <a href="http://coder-blog.de/java-tutorial-helloworld">mehr <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In diesem Java-Tutorial erstellen wir ein einfaches HelloWorld &#8211; Programm.</p>
<p>Zunächst einmal kann man jedes Java-Programm in einem stinknormalen Editor schreiben. Daneben gibt es auch Editoren, die bestimmten Code besonders hervorheben &#8211; das Syntax-Highlighting. Einige bekannte sind hier <a title="Projektseite Gedit" href="http://projects.gnome.org/gedit/" target="_blank">gedit</a> für Gnome und <a title="Projektseite Kate" href="http://www.kate-editor.org/" target="_blank">kate</a> für KDE. Beide für Linux-Betriebssysteme. Für Windows bietet sich beispielsweise das <a title="Projektseite Notepad++" href="http://notepad-plus.sourceforge.net/de/site.htm" target="_blank">Notepad++</a> an.</p>
<p>Daneben gibt es auch sogenannte integrierte Entwicklungsumgebungen &#8211; die IDEs. Diese bieten in der Regel neben Syntax-Highlighting, einen Compiler bzw. Interpreter, einen Debugger, einen Linker und viele andere tolle Features. Bekannte Vertreter sind hierbei für Java <a title="Internetpräsenz von NetBeans" href="http://www.netbeans.org/" target="_blank">NetBeans</a> und <a title="Internetpräsenz von eclipse" href="http://www.eclipse.org/" target="_blank">eclipse</a>. IDEs sind für Einsteiger jedoch nicht zu empfehlen, da sie unter anderem einem viel Arbeit vorweg nehmen, dies jedoch am Anfang den Lernerfolg eher behindert.</p>
<p>Kommen wir nun zu unserem ersten Programm &#8211; dem HelloWorld</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> HelloWorld
<span style="color: #009900;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> main<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> args<span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
    <span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;HelloWorld&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p><span id="more-30"></span>Diesen Code speichern wir nun unter dem Dateinamen HelloWorld.java ab. Bei Java-Programmen ist darauf zu achten, dass Dateinamen mit dem Namen der Klasse identisch sind, da sonst ein Fehler erzeugt wird. Die genauen Bedeutungen der Aufrufe werden noch im Laufe der Zeit in den Tutorien geklärt. Aber eine kurze Beschreibung dürfte dennoch nicht schaden.</p>
<p>Wir erzeugen in der ersten Zeile eine Klasse mit dem Namen HelloWorld. In dieser Klasse definieren wir die Methode main. Die main-Methode in Java ist ein besonderes Konstrukt und wird deshalb auch speziell behandelt. In der fünften Zeile erzeugen wir die Bildschirmausgabe HelloWorld mit dem Befehl System.out.println(&#8220;HelloWorld&#8221;);. Dabei wird am Ende automatisch in eine neue Zeile gesprungen.</p>
<p>Jetzt wollen wir unser kleines HelloWorld-Programm noch compilieren und dann ausführen.</p>
<p>Den ersten Schritt erledigen wir mit dem im <a title="Downloadsite des JDK" href="http://java.sun.com/javase/downloads/index.jsp" target="_blank">Java Development Kit</a> (JDK) mitgelieferten Java Compiler. Dazu lautet der Befehl, den wir in der Konsole / Eingabeaufforderung eingeben müssen wie folgt. Beim Compilieren erstellt uns der Java Compiler aus unserer HelloWorld.java den sogenannten Bytecode. Dabei wird die Datei HelloWorld.class erzeugt, die man auf allen Betriebssystemen lauffähig sein sollte. Vorausgesetzt, auf dem anderen Betriebssystem ist mindestens das <a title="Downlaodseite JRE" href="http://java.com/de/download/manual.jsp" target="_blank">Java Runtime Environment</a> (JRE) installiert.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">javac HelloWorld.java</pre></div></div>

<p>So, haben wir nun keine Fehlermeldung ausgegeben bekommen, ist alles gut gelaufen und wir können nun mit der Ausführung unseres Programms jetzt fortfahren. Dies bewerkstelligen wir mit</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">java HelloWorld</pre></div></div>

<p>Man sollte darauf achten, dass hier keine Dateiendung angegeben werden darf. Als Ausgabe solltet ihr nur ein kurzes &#8220;HelloWorld&#8221; auf der Konsole / Eingabeaufforderung sehen.</p>
<p>Ich hoffe, ihr hattet viel Spaß mit dem ersten kleinen Java-Tutorial und freut euch auf die kommenden! <img src='http://coder-blog.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://coder-blog.de/java-tutorial-helloworld/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Javakurs 2009</title>
		<link>http://coder-blog.de/javakurs-2009</link>
		<comments>http://coder-blog.de/javakurs-2009#comments</comments>
		<pubDate>Mon, 23 Mar 2009 21:53:09 +0000</pubDate>
		<dc:creator>Eugen</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[freitagsrund]]></category>
		<category><![CDATA[imperative programmiersprachen]]></category>
		<category><![CDATA[java tutorials]]></category>
		<category><![CDATA[javakurs]]></category>
		<category><![CDATA[javakurs 2009]]></category>
		<category><![CDATA[objektorientierte programmierung]]></category>
		<category><![CDATA[oop programmierung]]></category>

		<guid isPermaLink="false">http://coder-blog.de/?p=21</guid>
		<description><![CDATA[Ab dem 24. März 2009 findet organisiert durch die Freitagsrunde der Javakurs 2009 statt. <a href="http://coder-blog.de/javakurs-2009">mehr <span class="meta-nav">&#187;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Die <a title="Internetseite der Freitagsrunde" href="https://wiki.freitagsrunde.org/Freitagsrunde" target="_blank">Freitagsrunde</a> ist eine Studierendeninitiative der TU-Berlin der Fakultät IV, die dieses Jahr für alle Studenten einen Javakurs anbietet, der eine gute Einführung in Java bieten soll. Besonders zu empfehlen ist dieser für Studierende, die sich im zweiten Semester des Informatikstudienganges mit imperativen Programmiersprachen &#8211; hierbei besonders der objektorientierten Programmierung &#8211;  auseinandersetzen dürfen.</p>
<p>Davon werde ich natürlich auch Gebrauch machen und hier am 24. März 2009 mit dem offiziellen Beginn des Kurses die ersten Aufgaben, Mitschriften und Lösungen posten. Diese werden dann unter den <span style="color: #000000;"><a title="Java Tutorials" href="http://coder-blog.de/category/tutorials/java/" target="_self">Java Tutorials</a></span> zu finden sein. Auch können diese Unterlagen auf der Seite der Freitagsrunde unter der Rubrik <a title="Freitagsrunde Javakurs 2009" href="https://wiki.freitagsrunde.org/Javakurs_2009" target="_blank">Javakurs 2009</a> eingesehen werden. Dort findet man sorgar auch Videomitschnitte der Vorträge.</p>
<p>Leider gibt der Firefox beim Besuch der Seite der Freitagsrunde eine Fehlermeldung aus:</p>
<blockquote><p>&#8220;Fehlercode: sec_error_unknown_issuer&#8221;</p>
</blockquote>
<p>Die Seiten der Freitagsrunde sind vertrauenswürdig und können ohne Bedenken auf die Ausnahmeliste gesetzt werden, damit beim nächsten Besuch diese Meldung nicht mehr erscheint.</p>
<p>Dabei geht man folgendermaßen vor:</p>
<ol>
<li>Seite der <a title="Freitagsrunde Hauptseite" href="https://wiki.freitagsrunde.org/Hauptseite" target="_blank">Freitagsrunde</a> aufrufen</li>
<li>Auf der Fehlerseite diesen Link klicken<br />
<blockquote><p>&#8220;Oder Sie können eine Ausnahme hinzufügen…&#8221;</p>
</blockquote>
</li>
<li>Auf den Button klicken:<br />
<blockquote><p>&#8220;Ausnahme hinzufügen&#8230;&#8221;</p>
</blockquote>
</li>
<li>Es erscheint ein neues Fenster. Hier klickt man nun auf<br />
<blockquote><p>&#8220;Zertifikat herunterladen&#8221;</p>
</blockquote>
</li>
<li>Sich vergewissern, dass ein Haken gesetzt ist bei<br />
<blockquote><p>&#8220;Diese Ausnahme dauerhaft speichern&#8221;</p>
</blockquote>
</li>
<li>Jetzt folgt ein letzter Klick auf den Button<br />
<blockquote><p>&#8220;Sicherheit-Ausnahmeregel bestätigen&#8221;</p>
</blockquote>
</li>
<li>Die gewünschte Seite wird neu geladen und der Inhalt wird sichtbar</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://coder-blog.de/javakurs-2009/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

