gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 04:49:45 29 4
gpt4 key购买 nike

这篇文章可能被认为不适合 stackoverflow,尽管我并不是想侮辱 Java 语言或类似的语言。我喜欢用 Java 编写代码,但是有一些关于 System.out.println 的问题我已经想了很长一段时间了。

为什么我们每次想要打印时总是被迫输入 System.out.println() 或 System.out.print() ?当然,我们可以创建一个 void 函数来节省程序中的时间和精力,我们将有几个打印语句(我有时会这样做),如下所示:

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

然后调用 print (如果你想真正彻底,你可以使用涉及整数、 double 、字符等的参数重载该函数)。但是为什么Java语言本身还不允许我们通过编写print来打印到控制台呢?有些语言(例如 Python)使控制台的打印变得如此整洁和简单 - 那么为什么 Java 不呢?

再说一遍 - 我并不是说 Java 语言设计得很糟糕,也不是说试图启动一个旨在攻击 Java 的线程。我确信语言设计者以他们的方式设计它是有他们的理由的,这将帮助我理解为什么会这样。只需要输入 print 而不是 System.out.print 会容易得多,所以我们必须输入 System.out.print 一定是有原因的 - 我只是无法弄清楚这些原因。我尝试在谷歌上搜索有关此问题的信息,但找不到与该问题相关的任何信息。

请不要对 Java 语言做出固执己见的回应 - 我想要解释这种现象的实际事实。

最佳答案

简单来说,Java 没有全局函数。

此外,根据 The Java Language Environment (詹姆斯·高斯林合着的 90 年代书籍):

Java has no functions. Object-oriented programming supersedes functional and procedural styles. Mixing the two styles just leads to confusion and dilutes the purity of an object-oriented language. Anything you can do with a function you can do just as well by defining a class and creating methods for that class.

It's not to say that functions and procedures are inherently wrong. But given classes and methods, we're now down to only one way to express a given task. By eliminating functions, your job as a programmer is immensely simplified: you work only with classes and their methods.

所以至少有一个语言设计者的推理。

<小时/>

您可以通过静态导入System.out来缩短调用:

import static System.out;

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

由于System.out是一个对象,因此它的实例方法不能静态导入。

关于java - 为什么java使用System.out.print/println而不仅仅是print或println?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29337393/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com