Scala에서는 기본적으로 다음 3가지를 자동적으로 임포트 합니다.
- java.lang
- scala
- scala.Predef
같은 팩키지의 여러 클래스를 임포트 할때는 하나로 묶을 수 있습니다.
임포트 하면서 다른 이름으로 변경할 수도 있습니다.
또한 Static 메서드와 변수에 접근하기 위해서 사용하는 자바5의 import static은 import문으로 동일하게 사용합니다.
일반적인 import의 사용입니다. B 오브젝트에서 A 클래스를 임포트해서 객체를 생성하고 A 클래스의 메서드를 실행합니다. 컴파일하고 실행하면 정상적으로 출력이 됩니다.
A 클래스의 companion object를 생성해서 static 메서드 methodB를 정의하였습니다. 그리고 B.scala에서 이 static 메서드를 static import하고 호출하였습니다. 정상적으로 static 메서드라 실행되었습니다.
여기서 더 나아가 Scala는 static 메서드가 아닌 경우에도 static import를 할 수 있는데 위 코드가 그 예제입니다. C 오브젝트를 정의하여 앞서 정의한 A 클래스를 사용하였습니다. static 메서드인 methodB의 사용은 동일한데 보는 것처럼 doSomething에서 A 객체를 파라미터로 받아서 그 안에서 이 객체를 static import하면 그 다음부터는 리시버없이 static 메서드처럼 메서드를 호출할 수 있습니다.
추가적으로 REPL에서 현재 import된 클래스를 확인하고 싶으면 :import를 사용합니다.

Comments