为什么java使用System.out.print / println而不仅仅是print或println?

时间:2015-03-30 02:14:04

标签: java printing output theory println

这篇文章可能被认为不适合stackoverflow,尽管我并没有试图侮辱Java语言或类似的东西。我喜欢用Java编写代码,但是有一些关于System.out.println的东西,我一直想知道它。

为什么每次我们要打印时都要强制输入System.out.println()或System.out.print()?当然,我们可以创建一个无效函数来节省时间和能量,我们将有几个打印语句(我有时会这样做):

public static void print(String output) {
    System.out.print(output);
}

然后只调用print(如果你想真正彻底,你可以使用涉及int,double,chars等的参数重载函数)。但是为什么Java语言本身并不允许我们通过编写print来打印到控制台?有些语言(比如Python)使打印到控制台整洁而简单 - 那么为什么不用Java?

再一次 - 我并不是说Java语言的设计很差,或者试图创建一个旨在打击Java的线程。我确信语言设计师有理由以他们的方式设计它,这将有助于我理解为什么会如此。只需要输入print而不是System.out.print就好得多,因此必须有理由说明为什么我们必须键入System.out.print - 我只是无法弄清楚这些原因。我已经尝试使用Google搜索有关此问题的信息,但无法找到与此问题相关的任何内容。

请不要对Java语言做出反复无常的回应 - 我想要解释这种现象的实际事实。

1 个答案:

答案 0 :(得分:1)

简单地说,Java没有全局功能。

此外,根据The Java Language Environment(詹姆斯·戈斯林共同撰写的90年代着作):

  

Java没有任何功能。面向对象的编程取代了功能和程序风格。混合这两种风格只会导致混淆并淡化面向对象语言的纯度。你可以通过定义一个类并为该类创建方法来做一些你可以做的功能。

     

这并不是说功能和程序本质上是错误的。但是考虑到类和方法,我们现在只能用一种方式来表达给定的任务。通过消除函数,您作为程序员的工作非常简单:您只使用类及其方法。

所以至少有一位语言设计师的推理。


您可以通过静态导入System.out

来缩短通话时间
import static System.out;

class Example {
    public static void main(String[] args) {
        out.println("hello world!");
    }
}

由于System.out是一个对象,因此无法静态导入其实例方法。