为什么我们不必在java中创建System或Math类的对象并直接使用它们?

时间:2018-03-29 12:18:01

标签: java class system

我们使用System.out.println而不实例化它或创建它的对象。同样适用于Math类和许多其他类(我猜)。这些课有什么特别之处吗?我们可以以相同的方式使用在这些类中声明的类和方法吗?请帮忙。

8 个答案:

答案 0 :(得分:1)

这就是所谓的静态'方法。为了调用静态方法,您不需要拥有该类的实例。

这也有其他副作用,例如不存在的'这个'因此静态方法无法调用实例方法。

这主要用于某些通常无状态的实用程序类。

数学就是一个很好的例子。

我建议在Java中阅读一些关于静态方法和静态的内容。

答案 1 :(得分:1)

您不必为SystemMath类创建对象,因为这些类中的方法和变量是static。这意味着它们属于类本身,而不属于类的实例

供参考:

答案 2 :(得分:1)

  

为什么我们不必在java中创建System或Math类的对象并直接使用它们?

因为Math的方法被声明为static方法,并且System.in / System.out / System.errstatic个变量。< / p>

  

这些课程有什么特别之处吗?

没有。声明为static的任何变量或方法都将以这种方式运行。

  

我们可以以相同的方式使用在这些类中声明的类和方法吗?

我真的不明白你在那里问什么。但是,如果您问是否可以创建MathSystem的实例,以便您可以执行以下操作:

    Math myMath = new Math();
    myMath.min(1, 2);
  1. 不,你不能。这些类都没有公共构造函数,因此您不能new它们。

  2. 如果你能做到这一点,那将是非常糟糕的风格!

  3. 参考:

答案 3 :(得分:1)

首先,你不能创建 Math 类的实例,因为它只有一个构造函数并且它被标记为私有,你不能从类外部创建它的实例。 Snapshot of the source code of the class Math 其次,您不需要这样做。Math 类中的所有方法都是静态的,只需使用类名和点运算符即可调用其中任何一个。

答案 4 :(得分:1)

System 类无法实例化/创建对象,因为此 System 类具有私有构造函数。 并且所有成员和方法都是静态的,可以通过类名直接访问。 这个简单而有效的答案会对您有所帮助。

答案 5 :(得分:0)

我们没有实例化其他所有类或方法,因为JVM(Java虚拟机)已经将它们加载到项目中,因此我们可以反复使用这些类。一个这样的例子是主要方法。这些类/方法已经为我们预定义了,所以我们不需要实例化这样的类/方法,因为它们是静态的。

答案 6 :(得分:0)

您不需要创建SystemMath类的对象来使用它,因为它们具有静态方法。静态方法属于该类,因此不需要实例化它。

虽然,你可以创建它的对象,然后也使用那些方法,但是为静态方法创建一个类没有用。

答案 7 :(得分:0)

您不必实例化该对象即可使用math类的方法。

  • 因为使用此方法,所以不需要对象。我们可以直接调用它。
  • 这些类型的类称为static。这里的方法可以由类本身直接调用。
  • 它们已经在JVM中定义。我们无需实例化即可使用此类的方法。