1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
|
<html>
<head>
<title>
Handbuch der Java-Programmierung, 5. Auflage
</title>
</head>
<body>
<a name="startofbody"></a>
<script language="JavaScript" src="hjp4lib.js">
</script>
<script language="JavaScript">
installKbdHandler("97,#startofbody;101,#endofbody;116,cover.html;122,k100003.html;115,search.html;105,index.html;100,JDKDOCS;112,APIDOCS;104,k100040.html;106,k100040.html;107,k100042.html;108,k100046.html");
</script>
<table border=0 cellpadding=0 cellspacing=1 width="100%">
<tr bgcolor="#EEFFCC">
<td width="7%" align=center bgcolor="#DDCC99"><a href="cover.html"> Titel </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100003.html"> Inhalt </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="search.html"> Suchen </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="index.html"> Index </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/index.html" onClick="this.href=getDocIndex()"> DOC </a>
<td align="right">Handbuch der Java-Programmierung, 5. Auflage
<tr bgcolor="#EEFFCC">
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100040.html"> << </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100040.html"> < </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100042.html"> > </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100046.html"> >> </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/api/index.html" onClick="this.href=getApiIndex()"> API </a>
<td align="right">Kapitel 6 - Anweisungen
</table>
<hr>
<!-- Section -->
<a name="sectlevel2id006001"></a>
<h2>6.1 Elementare Anweisungen </h2>
<hr>
<ul>
<li><a href="k100041.html#sectlevel2id006001">6.1 Elementare Anweisungen</a>
<ul>
<li><a href="k100041.html#sectlevel3id006001001">6.1.1 Die leere Anweisung</a>
<ul>
<li><a href="k100041.html#sectlevel4id006001001001">Syntax</a>
<li><a href="k100041.html#sectlevel4id006001001002">Bedeutung</a>
</ul>
<li><a href="k100041.html#sectlevel3id006001002">6.1.2 Der Block</a>
<ul>
<li><a href="k100041.html#sectlevel4id006001002001">Syntax</a>
<li><a href="k100041.html#sectlevel4id006001002002">Bedeutung</a>
</ul>
<li><a href="k100041.html#sectlevel3id006001003">6.1.3 Variablendeklarationen </a>
<ul>
<li><a href="k100041.html#sectlevel4id006001003001">Syntax</a>
<li><a href="k100041.html#sectlevel4id006001003002">Bedeutung</a>
</ul>
<li><a href="k100041.html#sectlevel3id006001004">6.1.4 Ausdrucksanweisungen</a>
<ul>
<li><a href="k100041.html#sectlevel4id006001004001">Syntax</a>
<li><a href="k100041.html#sectlevel4id006001004002">Bedeutung</a>
</ul>
</ul>
</ul>
<hr>
<!-- Section -->
<a name="sectlevel3id006001001"></a>
<h3>6.1.1 Die <a name="ixa100382">leere Anweisung</a> </h3>
<!-- Section -->
<a name="sectlevel4id006001001001"></a>
<h4>Syntax </h4>
<p>
<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#EEFFCC">
<tr>
<td valign=top width=100%>
<font color="#660066">
<pre>
;
</pre>
</font>
</td>
</tr>
</table>
<!-- Section -->
<a name="sectlevel4id006001001002"></a>
<h4>Bedeutung </h4>
<p>
Die einfachste Anweisung in Java ist die leere Anweisung. Sie besteht
nur aus dem Semikolon und hat keinerlei Effekt auf das laufende Programm.
Eine leere Anweisung kann da verwendet werden, wo syntaktisch eine
Anweisung erforderlich ist, aber von der Programmlogik her <i>nichts</i>
zu tun ist.
<!-- Section -->
<a name="sectlevel3id006001002"></a>
<h3>6.1.2 Der <a name="ixa100383">Block</a> </h3>
<!-- Section -->
<a name="sectlevel4id006001002001"></a>
<h4>Syntax </h4>
<p>
<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#EEFFCC">
<tr>
<td valign=top width=100%>
<font color="#660066">
<pre>
{
Anweisung1;
Anweisung2;
...
}
</pre>
</font>
</td>
</tr>
</table>
<!-- Section -->
<a name="sectlevel4id006001002002"></a>
<h4>Bedeutung </h4>
<p>
Ein Block ist eine Zusammenfassung von Anweisungen, die nacheinander
ausgeführt werden. Alle im Block zusammengefassten Anweisungen
gelten in ihrer Gesamtheit als <i>eine einzelne</i> Anweisung und
dürfen überall da verwendet werden, wo syntaktisch eine
einzelne elementare Anweisung erlaubt wäre. Ein Block darf auch
Anweisungen zur Deklaration von lokalen Variablen haben. Diese sind
dann nur innerhalb des Blocks gültig und sichtbar.
<!-- Section -->
<a name="sectlevel3id006001003"></a>
<h3>6.1.3 Variablendeklarationen<a name="ixa100384"></a> <a name="ixa100385"></a>
</h3>
<!-- Section -->
<a name="sectlevel4id006001003001"></a>
<h4>Syntax </h4>
<p>
<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#EEFFCC">
<tr>
<td valign=top width=100%>
<font color="#660066">
<pre>
Typname VariablenName;
</pre>
</font>
</td>
</tr>
</table>
<p>
oder
<p>
<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#EEFFCC">
<tr>
<td valign=top width=100%>
<font color="#660066">
<pre>
Typname VariablenName = InitialerWert;
</pre>
</font>
</td>
</tr>
</table>
<!-- Section -->
<a name="sectlevel4id006001003002"></a>
<h4>Bedeutung </h4>
<p>
Die Deklaration einer <a name="ixa100386">lokalen Variable</a> gilt
in Java als ausführbare Anweisung. Sie darf daher überall
dort erfolgen, wo eine Anweisung verwendet werden darf. Die Sichtbarkeit
einer lokalen Variable erstreckt sich von der Deklaration bis zum
Ende des umschließenden Blocks.
<p>
<table border=0 cellspacing=0 cellpadding=0 width=100%>
<tr>
<td width=1 align=left valign=top bgcolor="#000077"><img src="trp1_1.gif"></td>
<td><img src="trp1_1.gif" width=2></td>
<td valign=top width=1000>
<p>
Lokale Variablen dürfen sich nicht gegenseitig verdecken. Es
ist also nicht erlaubt, eine bereits deklarierte Variable <font color="#000077"><tt>x</tt></font>
in einem tiefer geschachtelten Block erneut zu deklarieren. Das Verdecken
von Klassen- oder Instanzvariablen dagegen ist zulässig und wird
besonders häufig in Konstruktoren bei der Initialisierung von
Instanzvariablen verwendet:</td>
<td><img src="trp1_1.gif" width=2></td>
<td valign=top>
<table border=0 cellspacing=0 cellpadding=1 width=100% bgcolor="#000077">
<tr>
<td><font color="#FFFFFF"> Hinweis </font></td>
</tr>
</table>
</td>
<td width=1 align=left valign=top bgcolor="#000077"><img src="trp1_1.gif"></td>
</tr>
</table>
<a name="listingid006001"></a>
<p>
<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#DDDDDD">
<tr>
<td valign=top>
<font color="#000055">
<pre>
<font color="#555555">001 </font><font color="#0000AA">class</font> Punkt
<font color="#555555">002 </font>{
<font color="#555555">003 </font> <font color="#006699">int</font> x;
<font color="#555555">004 </font> <font color="#006699">int</font> y;
<font color="#555555">005 </font>
<font color="#555555">006 </font> Punkt(<font color="#006699">int</font> x, <font color="#006699">int</font> y)
<font color="#555555">007 </font> {
<font color="#555555">008 </font> <font color="#006699">this</font>.x = x;
<font color="#555555">009 </font> <font color="#006699">this</font>.y = y;
<font color="#555555">010 </font> }
<font color="#555555">011 </font>}</pre>
</font>
</td>
</tr>
</table>
<i>
Listing 6.1: Verdecken von Klassen- oder Instanzvariablen</i></p>
<p>
Hier wird eine Klasse <font color="#000077"><tt>Punkt</tt></font>
definiert, die zwei Instanzvariablen <font color="#000077"><tt>x</tt></font>
und <font color="#000077"><tt>y</tt></font> enthält. Der Konstruktor
initialisiert die Instanzvariablen mit den gleichnamigen Parametern.
Um nun nicht für die formalen Parameter neue Namen erfinden zu
müssen, lassen sich durch lokale Variablen verdeckte Instanzvariablen
dadurch wieder aufdecken, dass sie mit dem <a href="index_t.html#ixb100273"><font color=#000080><tt>this</tt></font></a>-Pointer
qualifiziert werden.
<p>
Das vorliegende Beispiel erscheint zum jetzigen Zeitpunkt sicherlich
schwer verständlich, denn bisher wurden weder Klassen noch Methoden
noch Konstruktoren eingeführt. Nach Lektüre von <a href="k100046.html#kapiteloop1">Kapitel 7</a>,
das sich mit den objektorientierten Eigenschaften von Java beschäftigt,
wird es verständlicher sein. Einprägen sollte man sich diesen
Stil aber jetzt schon, denn er wird in Java häufig verwendet.
<!-- Section -->
<a name="sectlevel3id006001004"></a>
<h3>6.1.4 <a name="ixa100387">Ausdrucksanweisungen</a> </h3>
<!-- Section -->
<a name="sectlevel4id006001004001"></a>
<h4>Syntax </h4>
<p>
<table border=0 cellspacing=0 cellpadding=0 width=100% bgcolor="#EEFFCC">
<tr>
<td valign=top width=100%>
<font color="#660066">
<pre>
Ausdruck;
</pre>
</font>
</td>
</tr>
</table>
<!-- Section -->
<a name="sectlevel4id006001004002"></a>
<h4>Bedeutung </h4>
<p>
Ausdrucksanweisungen dienen dazu, Ausdrücke in einem Anweisungskontext
auszuführen. Sie werden erzeugt, indem an den Ausdruck ein Semikolon
angehängt wird. Da der Rückgabewert des Ausdrucks dabei
ignoriert wird, macht eine Ausdrucksanweisung nur dann Sinn, wenn
der Ausdruck <a name="ixa100388">Nebeneffekte</a> hat. Tatsächlich
ist es in Java so, dass innerhalb einer Ausdrucksanweisung nur ganz
bestimmte Ausdrücke auftauchen dürfen:
<ul>
<li>Zuweisung
<li>Inkrement und Dekrement
<li>Methodenaufruf
<li>Instanzerzeugung
</ul>
<p>
Während es in C beispielsweise möglich ist, den Ausdruck
<font color="#000077"><tt>2+4</tt></font> in eine Ausdrucksanweisung
<font color="#000077"><tt>2+4;</tt></font> zu verpacken, ist dies
in Java nicht erlaubt. Eine solche Anweisung ist aber auch wenig sinnvoll,
und es war daher nur vernünftig, dies in Java nicht zuzulassen.
<hr>
<table border=0 cellpadding=0 cellspacing=1 width="100%">
<tr bgcolor="#EEFFCC">
<td width="7%" align=center bgcolor="#DDCC99"><a href="cover.html"> Titel </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100003.html"> Inhalt </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="search.html"> Suchen </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="index.html"> Index </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/index.html" onClick="this.href=getDocIndex()"> DOC </a>
<td align="right">Handbuch der Java-Programmierung, 5. Auflage, Addison
Wesley, Version 5.0.1
<tr bgcolor="#EEFFCC">
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100040.html"> << </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100040.html"> < </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100042.html"> > </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="k100046.html"> >> </a>
<td width="7%" align=center bgcolor="#DDCC99"><a href="../jdkdocs/api/index.html" onClick="this.href=getApiIndex()"> API </a>
<td align="right">© 1998, 2007 Guido Krüger & Thomas
Stark, <a href="http://www.javabuch.de">http://www.javabuch.de</a>
</table>
<a name="endofbody"></a>
</body>
</html>
|