U S E R - A R C H I V

Seite: Java und Javascript - Referenzen

Java und Javscript - Funktions-Referenzen

http://de.wikibooks.org/wiki/Websiteentwicklung:_JavaScript
Rubrik: Webseiten; Typ: Referenzen
http://java.programmersbase.net/
Rubrik: Webseiten; Typ: Referenzen
http://java.sun.com/
Rubrik: Webseiten; Typ: Referenzen
http://www.w3.org/TR/REC-html40/interact/scripts.html
Rubrik: Webseiten; Typ: Referenzen

Java Sprachgrundlagen

Kapitel aus Wikibook "Zertifizierung für Java 2 Plattform 1.4: Language Fundamentals" http://de.wikibooks.org/wiki/Zertifizierung_f%C3%BCr_Java_2_Plattform_1.4:_Language_Fundamentals

Zertifizierung für Java 2 Plattform 1.4: Language Fundamentals

Aus Wikibooks

Inhaltsverzeichnis


Source Files

Alle Java Source-Files müssen mit .java enden. Eine Source-File kann generell eine public class Definition beinhalten. Die public class Definition bestimmt den Dateinamen der Source-File. Wenn zum Beispiel eine Source-File eine public class namens MainApplet beinhaltet, dann muss die Datei dementsprechend MainApplet.java heißen.


Es gibt drei Elemente bekannt als compilation units ,die in einer Java Source-File stehen können.


  • package Deklaration
  • import Anweisungen
  • class Definition


Kommentare

Ein Quellcode kann dokumentiert werden durch Kommentare, die vom Compiler ignoriert werden. Es gibt drei Typen von Kommentaren in Java :

  • Einzeiliger Kommentar
 // comment to the end of the line
  • Mehrzeiliger Kommentar
 /* comment
over more
lines */
  • Javadoc Kommentar
 /**  Class Test
* @author Noname
* @version 1.0
*/

Allgemeiner Aufbau einer Java Datei :


 // Package declaration
package exam.prepguide;


// Imports
import java.awt.Button;
import java.util.*;


// Class definition
public class Test
{
/*...*/
}

Keywords and Identifiers

Java spezifiziert 52 Schlüsselwörter & andere reservierte Wörter, die in folgender Tabelle aufgelistet sind.


abstract

class

false

import

package

super

try

assert

const

final

instanceof

private

switch

void

boolean

continue

finally

int

protected

synchronized

volatile

break

default

float

interface

public

this

while

byte

do

for

long

return

throw


case

double

goto

native

short

throws


catch

else

if

new

static

transient


char

extends

implements

null

strictfp

true



goto und const sind reservierte Wörter. Sie haben keine Bedeutung in Java & Programmierer dürfen sie nicht als identifier benutzen.

Ein identifier ist ein Wort welches von einem Programmierer benutzt wird um eine Variable, Methode, Klasse oder Label zu benennen.

Schlüsselwörter & reservierte Wörter dürfen nicht als identifier benutzt werden.

Ein identifier muss mit einem Buchstaben, Dollarzeichen ($) oder ein Unterstrich (_) beginnen; innerhalb des Wortes dürfen Buchstaben, Dollarzeichen, Unterstriche oder Zahlen stehen.

Einige Beispiele sind


  1. foobar // legal
  2. BigInterface // legal : embedded keyword
  3. $incomeAfterExpenses // legal
  4. 3_node5 // illegal : starts with a digit
  5. !theCase // illegal : must start with letter, $ or _


Identifiers sind case sensitive, so sind beispielsweise radius und Radius unterschiedliche Identifizierer.


Primitive Data Types

Type

Size (bit)

Type

Size (bit)

boolean

1

char

16

byte

8

short

16

int

32

long

64

float

32

double

64


Es gibt vier Vorzeichenbehaftete Datentypen in Java :

  • byte
  • short
  • int
  • long


Variablen dieses Typs sind 2er-Komplement Zahlen.


Einige mathematische Operationen haben keine Ergebnisse, die mit Zahlen ausgedrückt werden können z.B. Unendlich. Um dennoch diese nicht numerischen Situationen zu beschreiben, gibt es Bit-Muster in den Datentypen float und double welche diese Nicht-Zahlen representieren.

Diese Bit-Muster sind deiniert in den Klassen Float und Double.


  • Float.NaN
  • Float.NEGATIVE_INFINITY
  • Float.POSITIVE_INFINITY
  • Double.NaN
  • Double.NEGATIVE_INFINITY
  • Double.POSITIVE_INFINITY



Dieser Code Ausschnitt zeigt die Verwendung dieser Konstanten:


  1. double d = -10.0 / 0.0;
  2. if(d == Double.NEGATIVE_INFINITY)
  3. {
  4. System.out.println(“ d just explode :“ + d);
  5. }


Literals

Ein Literal ist ein Wert der im Programmcode definiert wird. Literale können primitive oder String-Variablen sein, sie können auch auf der rechten Seite von Anweisungen erscheinen oder in Methodenaufrufen.


boolean Literale


Die einzigen gültigen Literale vom boolean Typ sind true & false


1. boolean isBig = true;
2. boolean isLittle = false;


char Literale

Ein char Literal kann ausgedrückt werden als ein einziges in Hochkommas eingeschlossenes Zeichen, wie zum beispiel hier :

char c = 'w';

Natürlich funktioniert diese Technik nur wenn das gewünschte Zeichen auf der Tastatur zu finden ist. Ein anderer Weg ein Zeichen zu definieren ist mittels Unicode. Jedes Zeichen ist durch 4 hexadezimale Zahlen im Unicode representiert. In Java kann man diese Hexadezimalen Werte für das Zeichen benutzt werden durch voranstellen von \u .

 char a = '\u4567';             // legal
char b = '\u008c'; // legal

Achtung nur diese folgenden 2 Anweisungen sind falsch, weil diese Unicodewerte vom Compiler als line-terminator interpretiert werden. Diese 2 Sequenzen würden einen Compile Time Error hervorrufen. Um die beiden Werte darzustellen benutzt man muss die Escapesequenzen '\n' und '\r' benutzen.

 char newline = '\u000a';        // illegal
char carriagereturn = '\u000d'; // illegal

Java unterstützt einige Escape Sequenzen um spezielle Zeichen zu benennen.


 \b - Backspace
\t - TAB
\n - Linefeed, NewLine
\f - Form feed
\r - Carriage return
\' - Apostrophe-quote
\" - Quotation mark
\\ - Backslash

Integral Literale

Integral Literals können als dezimal, oktal oder hexadezimale Zahlen ausgedrückt werden. Die Default-Einstellung ist dezimal. Um oktale Zahlen auszudrücken stellt man eine 0 (null) vor dem Literal. Um eine hexadezimale Zahl auszudrücken stellt man eine 0x oder 0X vor dem Literal, welches in Groß- oder KleinBuchstaben geschrieben werden kann. Der Wert 28 kann in 6 verschiedenen Schreibweisen ausgedrückt werden :

1. 28
2. 034
3. 0x1c
4. 0x1C
5. 0X1c
6. 0X1C

Als default ist ein Integral Literal ein 32-bit Wert. Um ein long (64-bit) auszudrücken hängt man die Endung L an das Literal. Die Endung kann auch klein geschrieben werden, aber dann sieht das L wie eine 1 aus & kann zu Verwirrungen führen.

Floating-Point Literale

floating-point Literale sind Gleitpunkt Zahlen. Damit der Compiler eine Zahl als ein floating-point Literal interprtiert muss es eines der folgenden Merkmale besitzen :

1. Einen Dezimalpunkt : 1.424
2. Der Buchstabe E oder e, bei wissenschaftlicher Notation: 4.23E+12
3. Die Endung F oder f, indiziert ein float Literal : 1.684f
4. Die Endung D oder d, indiziert ein double Literal : 1.345d

Ein floating-point Literal ohne F oder D Endung ist als Default-Einstellung vom Typ double.


String Literal

Ein String Literal ist eine Sequenz von Zeichen eingeschlossen in Anführungszeichen(").

String s = "Characters in strings are 16-bit Unicode.";

Arrays

Ein Java Array ist ein Sammlung von Daten gleichen Typs z.B. Primitive Datentypen, Objektreferenzen oder anderen Arrays. Wenn man ein Array deklariert dann legt man damit den Datentyp der Elemente fest, das damit enstehende Aray kann dann nur Daten diesen Typs annehmen oder davon abgeleitete Klassen.


1. int[] array; // Deklariert ein Array vom Typ int
2. Dimension[] dims; // Deklariert ein Array von Objektreferenzen
3. float[][] twoDee; // Ein zweidimensionales Array vom Typ float
4. String s[]; // Deklariert ein Array vom Objektreferenzen der Klasse String



Die Deklaration spezifiziert nicht die Größe eines Arrays. Die Größe wird erst zur Laufzeit spezifiziert, wenn das Arry über das Schlüsselwort new erzeugt wird. Z.B.:


  1. int[] ints; // Declaration to the compiler
  2. ints = new int[25]; // Runtime construction


Die Arraygröße wird bis zur Laufzeit nicht benutzt. Man kann Arraygrößen mit Literalen als auch mit Variablen definieren.


  1. int size = 1152*900;
  2. int[] raster;
  3. raster = new int[size];


Deklaration & Erzeugung kann auch in einer Zeile geschrieben werden.


  1. int[] ints = new int[25];


Wenn ein Array erzeugt wird , werden seine Elemente automatisch mit ihren jeweiligen default-Wert initialisiert. Diese Default-Werte sind die gleichen wie für Objekt-Member Variablen. Numerische ELemente werden mit 0; nicht-numerische Elemente werden mit 0-ähnlichen Werten initialisiert.

Element Type

Initial Value

Element Type

Initial Value

byte

0

short

0

int

0

long

0L

float

0.0f

double

0.0d

char

'\u0000'

boolean

false

objects

null

Class Fundamentals

Die main() Methode

Die main() Methode ist Einstiegspunkt für eine Java-Applikation. Um eine Applikation zu schreiben, muss man eine Klasse definieren die die main() Methode enthält. Um ein Programm auszuführen muss man folgendes in die Kommando-Zeile eingeben :


java [Name of the class containing the main() method]


Die Signatur für die main() Methode ist :


public static void main(String[] args)


Der args Parameter beinhaltet alle Argumente, welche der Benutzer in der Kommando-Zeile eingegeben hat.


java Plus 18 3


Mit dieser Kommandozeile wird dem args Array zwei String-Elemente übergeben :


in args[0] 18

in args[1] 3



Java unterstützt Variablen mit drei verschiedenen Lebenszyklen:


Member Variablen : Membervariablen , auch Attribute gennant, werden erzeugt, wenn eine Instanz erzeugt wird und zerstört wenn das Objekt zerstört wird.


Lokale Variablen : lokale Variablen einer Methode ( method local or automatic variable) werden erzeugt beim Einstieg in eine Methode und existieren nur während der Ausführung der Methode.


Klassenvariablen : Klassenvariablen ( static variable ) werden erzeugt wenn eine Klasse geladen wird. Es existiert nur eine Kopie von einer Klassenvariablen unabhängig wie viele Instanzen von der Klasse erzeugt worden sind, auch wenn die Klasse niemals instanziiert wurde.


Alle Membervariablen, die bei der Deklaration nicht explizit einen Wert zugewiesen kriegen, werden automatisch mit einem Default-Wert initialisiert. Der Initialisierungswert hängt vom Typ der Member Variable ab.


  1. class Variables {
  2. int x = 20;
  3. static int y = 40; }


In diesem Beispiel würde die nicht statische Variable x bevor der Konstruktor ausgeführt wird mit dem Wert 20 initialisiert werden.

Statische Variablen (hier y) werden zu dem Zeitpunkt des Ladens der Klasse initialisiert, also wird y = 30 gesetzt sobald die Klasse geladen wird.

Lokale Variablen werden von System nicht initialisiert. Jede lokale Variable muss deswegen explizit initialisiert werden bevor sie genutzt wird. z.B :


  1. public int wrong() {
  2. int i;
  3. return i+5; }


Dieses Beispiel würde einen Compiler Fehler in Linie 3 erzeugen. („Variable i may not have been initialized.“)


Dieser Fehler tritt auch auf, wenn die Initialisierung der lokalen Variable in einem unteren / geschachtelten Block geschieht als die Benutzung der lokalen Varible.


  1. public double fourthRoot(double d){
  2. double result;
  3. if(d >= 0){
  4. result = Math.sqrt(Math.sqrt(d));
  5. }
  6. return result;
  7. }


Die Variable result wurde in Linie 4 initialisiert, aber die Initialisierung findet innerhalb der geschweiften Klammer (Linie 3 und 5) statt. Der Compiler wird Linie 6 Kennzeichnen mit der Begründung, dass die Variable nicht initialisiert worden ist. Die Lösung ist die Variable result in Linie 2 zu initialisieren.


  1. double result = 0.0;

Argument Passing : by Reference or By Value

Wenn Java Argumente an eine Methode übergibt, wird tatsächlich eine Kopie des Arguments übergeben.


  1. double r = 1.24;
  2. System.out.println(r);


Die Variable r enthält ein Bitmuster welches die Zahl 1.24 repräsentiert. In Linie 2 wird eine Kopie dieses Bitmusters an die Methode übergeben. Wenn ein Argument einer Methode übergeben wird, dann haben Änderungen des Wertes durch die Methode keinen Effekt auf die Originaldaten.


  1. public void inc(int i){
  2. i++;
  3. }
  4. // in main() method
  5. int i= 3;
  6. inc(i);
  7. System.out.println(i);


Als Ergebnis würde das Programm den Wert 3 ausdrucken.

Java-Programme arbeiten nicht direkt mit Objekten. Wenn ein Objekt durch den Konstuktor erzeugt wird, dann gibt dieser einen Wert zurück – ein Bitmuster – der das Objekt eindeutig identifiziert.

Dieser Wert ist als Referenz des Objekts bekannt.

Wenn Objekten Variablen zugewiesen werden oder wenn Objekte Methoden übergeben werden, dann sind es die Objektreferenzen, die tatsächlich übergeben werden.


  1. Button btn;
  2. btn = new Button(“Okay“);
  3. replacer(btn);
  4. System.out.println(btn.getLabel());
  5. public void replacer(Button replaceMe){
  6. replaceMe=new Button(“Cancel“);
  7. }


Der String der ausgegeben wird ist “Okay“ .


Wie man sieht können die aufgerufenen Methoden die Originaldaten nicht verändern, es sei denn die aufgerufene Methode arbeitet mit dem Objekt über dessen Referenz, die übergeben wird. Daraus ergeben sich wichtige Konsequenzen.


  1. Button btn;
  2. btn = new Button(“Okay“);
  3. changer(btn);
  4. System.out.print(btn.getLabel());
  5. public void changer(Button changeMe){
  6. changeMe.setLabel(“Cancel“);
  7. }


Ausgabe : “Cancel“

 

Dieser Artikel basiert auf dem Artikel aus der freien Enzyklopädie Wikipedia und steht unter der GNU-Lizenz für freie Dokumentation. In der Wikipedia ist eine Liste der Autoren verfügbar.

Bücher bei Amazon




Linktipps

Einkaufen

Internet-Einkaufszentrum

Computer, Elektronik

Freizeit, Sport, Fitness

Mobilfunk, Handy

Apple iPhone

Mobilfunk Handytarife

Fotografie

Filmen

Rund um's Auto

Mehr? Sieh selbst:

Verbraucherschutz

Verbrauchermagazin

Nachrichten

Stiftung Warentest

Ökotest

Verbraucherschutz-Ministerium

Wer ist unter uns?



Bücher




Software


Nutzen Sie die Vorteile beim Softwarekauf Über Amazon: Software wird von Kunden bewertet - günstiges Versandkostensystem - Amazon ist zuverlässig





Handy/Telefon


O2 Inklusiv Pakete Online

Empfehlung: Top-Services

Kredite und Finanzierung

Tagesgeld und Girokonten

Partnersuche

Reisen

Hotelsuche

Handytarif-Vergleich

Stromtarif-Vergleich

Gastarif-Vergleich

Internet Flatrate Vergleich

Versicherungsvergleich

Immobilien

Verbraucherschutz



TERRE DES LANGUES e.V. - 25 Jahre Erfahrung in Sprachreisen, Schuljahresaufenthalte, Highschool-Years und Gastfamilienaufenthalte


www.user-archiv.de (seit 1999)