Java中System.out.println的含义是什么?

pro*_*eek 59 java system.out

这是类名称空间中的静态println函数吗?outSystem

namespace System {
  class out {
    static println ...
  }

我怎么能解释这个名字?在JRE中定义了这个函数?在java.lang.System/ java.lang.Object

ken*_*ytm 86

实际上,它out是类中的静态成员System(不是在.NET中),是一个实例PrintStream.并且println是类的正常(重载)方法PrintStream.

请参阅http://download.oracle.com/javase/6/docs/api/java/lang/System.html#out.

其实,如果out/ err/ in是类,它们将与资本字符(命名Out/ Err/ In)由于命名约定(忽略语法).

  • 用于引用Java命名约定的+1作为提问者来自其他语言. (9认同)
  • *仍然*引用1.4.2 javadocs并不酷:) (2认同)

cHa*_*Hao 48

System是一个具有公共静态字段的类out.所以更像是

class System 
{
    public static PrintStream out;
}

class PrintStream
{
    public void println ...
}
Run Code Online (Sandbox Code Playgroud)

这是一个轻微的过度简化,因为PrintStream类实际上在java.io包中,但它足以显示东西的关系.

  • @yogeshprajapati:这超出了这个问题和答案的范围.你应该问一个新问题. (3认同)
  • 你能给出一个初始化变量的代码吗? (2认同)

YoK*_*YoK 26

检查以下链接:

http://download.oracle.com/javase/1.5.0/docs/api/java/lang/System.html

你会清楚地看到:

System是一个中的java.lang包.

out是一个静态成员的的System类,并且是的一个实例java.io.PrintStream.

println是一个方法java.io.PrintStream.重载此方法以将消息打印到输出目标,输出目的地通常是控制台或文件.


Vde*_*deX 26

的System.out.println()

高层次的理解

为了理解这一点,我们需要回忆几下java的基础知识:

  • java中的dot(.)运算符:在java中.(点运算符)仅用于调用方法或变量.所以我们可以说是方法或变量.
  • java中的方法:我们知道方法在方法名之后总是有括号'()',所以out不能是java中的方法.所以它的变量和println()是一个方法.
  • java中的类名:类名应该在java中理想地以大写字母开头,因此System是一个类.

现在有了java的基础知识,我们知道:

  • 系统是一个类
  • out是一个变量
  • println()是一种方法

让我们详细了解:

out变量:static还是instance?

  • 使用类名称调用,因此我们知道它的System类的静态变量.

  • 但它调用方法println()方法,因此'out'是引用类型PrintStream的对象.

System类属于java.lang包

class System {
  public static final PrintStream out;
  //...
}
Run Code Online (Sandbox Code Playgroud)

Prinstream类属于java.io包

class PrintStream{
public void println();
//...
}
Run Code Online (Sandbox Code Playgroud)

  • 最佳答案.谢谢 (2认同)

小智 7

println并且print是属于PrintStream该类的两个重载方法.

要访问它们,我们需要这个类的实例.

在类上创建一个名为type的静态属性.outPrintStreamSystem

因此,要访问上述方法,我们使用以下语句:

System.out.println("foo");
System.out.print("foo");
Run Code Online (Sandbox Code Playgroud)