我们使用System.out.println而不实例化它或创建它的对象。同样适用于Math类和许多其他类(我猜)。这些课有什么特别之处吗?我们可以以相同的方式使用在这些类中声明的类和方法吗?请帮忙。
答案 0 :(得分:1)
这就是所谓的静态'方法。为了调用静态方法,您不需要拥有该类的实例。
这也有其他副作用,例如不存在的'这个'因此静态方法无法调用实例方法。
这主要用于某些通常无状态的实用程序类。
数学就是一个很好的例子。
我建议在Java中阅读一些关于静态方法和静态的内容。
答案 1 :(得分:1)
您不必为System
和Math
类创建对象,因为这些类中的方法和变量是static
。这意味着它们属于类本身,而不属于类的实例。
供参考:
答案 2 :(得分:1)
为什么我们不必在java中创建System或Math类的对象并直接使用它们?
因为Math
的方法被声明为static
方法,并且System.in
/ System.out
/ System.err
是static
个变量。< / p>
这些课程有什么特别之处吗?
没有。声明为static
的任何变量或方法都将以这种方式运行。
我们可以以相同的方式使用在这些类中声明的类和方法吗?
我真的不明白你在那里问什么。但是,如果您问是否可以创建Math
或System
的实例,以便您可以执行以下操作:
Math myMath = new Math();
myMath.min(1, 2);
不,你不能。这些类都没有公共构造函数,因此您不能new
它们。
如果你能做到这一点,那将是非常糟糕的风格!
参考:
答案 3 :(得分:1)
首先,你不能创建 Math 类的实例,因为它只有一个构造函数并且它被标记为私有,你不能从类外部创建它的实例。 Snapshot of the source code of the class Math 其次,您不需要这样做。Math 类中的所有方法都是静态的,只需使用类名和点运算符即可调用其中任何一个。
答案 4 :(得分:1)
System 类无法实例化/创建对象,因为此 System 类具有私有构造函数。 并且所有成员和方法都是静态的,可以通过类名直接访问。 这个简单而有效的答案会对您有所帮助。
答案 5 :(得分:0)
我们没有实例化其他所有类或方法,因为JVM(Java虚拟机)已经将它们加载到项目中,因此我们可以反复使用这些类。一个这样的例子是主要方法。这些类/方法已经为我们预定义了,所以我们不需要实例化这样的类/方法,因为它们是静态的。
答案 6 :(得分:0)
您不需要创建System
和Math
类的对象来使用它,因为它们具有静态方法。静态方法属于该类,因此不需要实例化它。
虽然,你可以创建它的对象,然后也使用那些方法,但是为静态方法创建一个类没有用。
答案 7 :(得分:0)
您不必实例化该对象即可使用math
类的方法。
static
。这里的方法可以由类本身直接调用。JVM
中定义。我们无需实例化即可使用此类的方法。