2011-07-08 13 views
6

Mam pytanie dotyczące importu klas. Wygląda na to, że możesz wywołać metodę ze zredukowaną linią, jeśli zaimportowałeś klasę. Nie rozumiem, jaka jest nazwa tej operacji, a jak to jest możliwe ...Klasa importu Java System

Na przykład:

Dlaczego ten kod

public class test 
{ 
     public static void main (String args[]) 
     { 
       System.out.print("Test"); 
     } 
} 

może być zastąpiony przez

import static java.lang.System.out; 

public class test 
{ 
     public static void main (String args[]) 
     { 
       out.print("Test"); 
     } 
} 

Co się stanie, jeśli masz obiekt o nazwie "out"?

góry dzięki

+3

Nazywane są import statyczny.. (Oczywiste ze sprawozdania;)) Słońce robi. nie polecam systematycznego korzystania z importu statycznego dla jasności kodu http://download.oracle.com/javase/1,5.0/docs/guide/language/static-import.html – VirtualTroll

+0

Dzięki, powinienem być bardziej uważny: D. istnieje również w innych językach? – MisterDoy

+0

Tak, istnieją inne języki, które mają podobne pojęcia. – Kaj

Odpowiedz

3

Co się dzieje, że się z klasą zewnętrznego należy odwoływać się pełną nazwą:

String out = "Hello World"; 
java.lang.System.out.println(out); 
+4

Nie, 'System.out.println (out);' zrobi w tym przypadku. – Kaj

5

Zmienna się będzie śledzony statyczny import i trzeba będzie użyć pełnej nazwy w celu skorzystania z funkcji drukowania.

import static java.lang.System.out; 
public class Tester5 { 
    public static void main (String args[]) { 
    int out=0; 
    out.print("Test"); 
    } 
} 

daje „nie można powoływać print (string) na prymitywne typu int Ten sam błąd jest wyświetlany, jeśli na zewnątrz jest obiektem