我刚刚学习JAVA(在很长一段时间内),我有一个简单的问题。 java.something
和System.something
之间有什么区别?
我得到的初学者书不够详尽(至少现在还没有)。
答案 0 :(得分:1)
对于java.something
,这是一个包:包中包含可在程序中使用的各种类。如果你想使用特定的课程 - 比如java.util.Random
- 你可以将其全部称为java.util.Random
,或者在课程顶部有一个import
行告诉Java在哪里找到Random
类,然后将其称为Random
。
System
是一个类,它包含在java.lang
包中。 (并且java.lang
类始终会导入到您的项目中,因此在这种情况下您不需要import
行。)当您引用System.something()
时,您指的是{ {1}}类,并调用该类的System
方法。
大多数情况下,如果要在类something()
上调用方法something()
,则创建Someclass
的实例,然后在其上调用Someclass
:< / p>
something()
但是对于Someclass x = new Someclass();
x.something();
方法,您无需创建实例即可调用它。 static
的方法是静态的,因此您只需将它们作为
System
不创建类型为System.something();
的实例。
答案 1 :(得分:1)
在Java中,类和接口按packages组织(&lt; - 单击以转到教程)。
类System
是包java.lang
中的一个类。
如果您看到例如System.out
,则表示您正在使用属于out
类的成员变量System
执行某些操作。
当您看到例如java.util.Date
时,则表示您正在使用包Date
中的类java.util
。您可以使用类的完全限定名称java.util.Date
,也可以import
使用该类,然后只使用类名Date
:
// At the beginning of your source file
import java.util.Date;
// Now you can just use the short name Date instead
// of the long name java.util.Date
Date now = new Date();
答案 2 :(得分:0)
很难说,System.something
是java.lang.System.something
的简写。您指的是JDK中的System类。
如果你看到java.something
,它将成为JDK中内置的包名(例如java.sql
,java.util
等)。这是Sun / Oracle为JDK包保留的。
答案 3 :(得分:0)
系统类属于java.lang包,默认情况下导入java.lang包中的所有类,因此您无需导入java.lang。*;
另一方面,要使用java.something包中的类,必须使用类名
编写包名Object obj = new java.something.YourClass();
或者您必须使用import statement
import java.something.YourClass;
...
Object obj = new YourClass();