所以我问自己为什么我不必导入java.io.PrintStream
使用System.out
。我知道java.lang
默认情况下是由编译器导入的。行。
因为System
是一类java.lang
我可以使用领域System.out
。但是此字段具有类型,java.io.PrintStream
并且默认情况下不导入此类(它在java.io包中),那么为什么我可以System.out.print()
在不java.io.PrintStream
单独导入的情况下访问实例?
如果我创建自己的类,MyClass
那么我将无法进行此类操作,MyClass anInstance = new MyClass();
首先需要导入MyClass。为什么这不是强制性的PrintStream
?
提前致谢。
你只需要进口PrintStream
,如果你需要使用PrintStream
(类名)在你的代码。在其他类型的对象上使用字段PrintStream
并不需要它。
也就是说,import
是要告诉编译器代码中的含义PrintStream
(文字文本)。这并不是要告诉编译器您将使用PrintStream
从其他地方(在本例中为System
)获得的对象。
换句话说,它import
是关于知道如何编译源文本的;这与在运行时使用什么无关。例如,导入不会写入类文件;在运行时不需要这些信息。字段和变量定义以其全限定的类名(而不是import
相对的类名)存储。由于中out
的类型信息System
表示java.io.PrintStream
为java.io.PrintStream
,因此无论您是否导入PrintStream
代码,编译器(后来的JVM)都知道它为。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句