Importausdruck: Unterschied zwischen den Versionen

Aus EINI
Wechseln zu: Navigation, Suche
 
(8 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Mit dem Schlüsselwort <code>import</code> können in Java andere Klassen in das aktuelle Programm eingebunden werden.
+
Mit dem [[Schlüsselwort]] '''import''' können in [[Java]] andere [[Klasse|Klassen]] in das aktuelle [[Programm]] eingebunden werden.
  
In Java wird jede Übersetzungseinheit zuerst unabhängig von anderen compiliert. Um jedoch die Funktionalität anderer Programme nutzen zu können, muss der Compiler wissen, dass diese existieren und ob sie im Quellcode richtig verwendet werden. Dazu gibt man dem Compiler im <code>import</code>-Ausdruck den Hinweis, wo er andere benötigte Übersetzungseinheiten finden kann. Dazu gibt man einfach den Paketpfad zur Klasse im Ausdruck an.
+
In Java wird jede [[Übersetzungseinheit]] zuerst unabhängig von den anderen compiliert. Um jedoch die Funktionalität anderer Programme nutzen zu können, muss der [[Compiler]] wissen, dass diese existieren und ob sie im Quellcode richtig verwendet werden. Der '''Importausdruck''' zeigt dem Compiler, wo er andere Übersetzungseinheiten finden kann.
  
 
= Syntaxdiagramm =
 
= Syntaxdiagramm =
  
 
[[Datei:import_statement.png]]
 
[[Datei:import_statement.png]]
 +
 +
Ein '''Importausdruck''' wird durch das [[Schlüsselwort]] '''import''' deklariert. Anschließend wird der [[Paket]]pfad zur Klasse in Form einer URL angegeben. Das heißt die einzelnen Elemente des Pfades werden nicht durch '''/''', sondern durch '''.''' voneinander getrennt. Möchte man viele verschiedene Klassen aus dem selben [[Paket]] importieren, so kann man alternativ auch nur den Pfad zum Paket angeben und mit einem '''.*''' abschließen. Das'''*'''-Symbol dient als Platzhalter.
 +
 +
Mit dem zusätzlichen Schlüsselwort '''[[static]]''' kann man einen sogenannten '''statischen Import''' durchführen. Dabei werden alle öffentlichen statischen Methoden und Klassenvariablen der importierten Klasse so behandelt, als seien sie Teil der importierenden Übersetzungseinheit. Das heißt, dass im Quellcode des importierenden Programms diese Methoden und Variablen nicht mehr mit <code>Klasse.methode()</code>, sondern nur mit <code>methode()</code> aufgerufen werden können.
  
 
= Beispiel =
 
= Beispiel =
  
<source lang="Java">
+
<source lang="Java" title="Minimales Beispiel">
 
package de.eini.blatt07;
 
package de.eini.blatt07;
  
Zeile 20: Zeile 24:
 
}
 
}
 
</source>
 
</source>
 +
 +
Ohne den '''Importausdruck''' in Zeile 3 würde der Compiler die Klasse ''Program'' aus dem anderen Paket nicht kennen und einen Fehler ausgeben.

Aktuelle Version vom 26. September 2016, 15:25 Uhr

Mit dem Schlüsselwort import können in Java andere Klassen in das aktuelle Programm eingebunden werden.

In Java wird jede Übersetzungseinheit zuerst unabhängig von den anderen compiliert. Um jedoch die Funktionalität anderer Programme nutzen zu können, muss der Compiler wissen, dass diese existieren und ob sie im Quellcode richtig verwendet werden. Der Importausdruck zeigt dem Compiler, wo er andere Übersetzungseinheiten finden kann.

Syntaxdiagramm

Import statement.png

Ein Importausdruck wird durch das Schlüsselwort import deklariert. Anschließend wird der Paketpfad zur Klasse in Form einer URL angegeben. Das heißt die einzelnen Elemente des Pfades werden nicht durch /, sondern durch . voneinander getrennt. Möchte man viele verschiedene Klassen aus dem selben Paket importieren, so kann man alternativ auch nur den Pfad zum Paket angeben und mit einem .* abschließen. Das*-Symbol dient als Platzhalter.

Mit dem zusätzlichen Schlüsselwort static kann man einen sogenannten statischen Import durchführen. Dabei werden alle öffentlichen statischen Methoden und Klassenvariablen der importierten Klasse so behandelt, als seien sie Teil der importierenden Übersetzungseinheit. Das heißt, dass im Quellcode des importierenden Programms diese Methoden und Variablen nicht mehr mit Klasse.methode(), sondern nur mit methode() aufgerufen werden können.

Beispiel

package de.eini.blatt07;

import de.eini.blatt06.Program;

public class OtherProgram {
    public static void main(String[] args){
        Program.otherFunction();
    }
}

Ohne den Importausdruck in Zeile 3 würde der Compiler die Klasse Program aus dem anderen Paket nicht kennen und einen Fehler ausgeben.