Java初学者问题:System.out.println

4

我刚开始学习Java,之前有C语言的背景。

如何解析代码行"System.out.println()"?

13个回答

15

Java是一种面向对象的语言。

System 是一个包含有用字段和方法的类。请参阅 API

out 引用的是 System 中的一个对象,它是标准输出流,因此被写作 System.out

println("blah")System.out 的一个方法,它将一个字符串作为一行打印出来。当没有参数传入时(如println()),它会打印一行空白。


3
如果out是一个对象,那么谁会实例化该对象? - Geos
2
我认为我说得对:这就是为什么面向对象范式并不完美 - 有些对象只是存在。 - David Johnstone
3
不,out是静态的并属于System。 - Jonathan Holloway
是的,out 是静态的,但这并不意味着它是一个类变量,并且仍然可以是某种对象吗? - David Johnstone
1
没错,out是一个静态的PrintStream并且属于这个类。我的意思是我不相信对象只是存在,它们只是以不同的方式被限定范围。在这种情况下,out的范围是每个类而不是每个实例。 - Jonathan Holloway

6

System是Java提供的一个类,可以让您操作各种与操作系统相关的对象。它是java.lang命名空间的一部分。

其中之一的对象out是该类中静态公共可用的对象。该对象本身代表标准输出,是java.io.PrintStream类的实例。标准输出在大多数操作系统上都是控制台输出。

println是java.io.PrintStream类的一个方法,可以让您将一些文本输出到流中,并且与print()方法相反,在文本后面换行。

来自这里

PS:请检查Google :)


4
您应该查阅 java.lang.System.out 文档。

public static final PrintStream out

“标准”输出流。此流已经打开并准备好接受输出数据。通常,此流对应于主机环境或用户指定的显示输出或其他输出目标。

对于简单的 Java 应用程序,写入一行输出数据的典型方法是:System.out.println(data)

以及 java.io.PrintStream.println():

public void println()

通过写入换行符字符串来终止当前行。换行符字符串由系统属性 line.separator 定义,并不一定是一个单独的换行符 ('\n')。


2

这与以下内容相同:

cout << "\n";

System.out.println() 主要用于调试。另一种选择是 System.out.print(),它不会添加换行符。 - Collin Price
1
Lucas,我不确定这个 C++ 的例子是否回答了问题。println 做什么很明显,但是 System 和 out 组件的作用可能并不明显。我猜问题具体是关于分析这一行的。 - Igor Krivokon

2
系统包含许多类字段和方法,其中包括:
  • err
  • in
  • out

out是PrintStream类型的,并引用标准输出流,数据可以写入其中 - 这基本上是显示器,但它也可以是另一个设备。

PrintStream包含一个名为println的静态方法,允许写入数据。它在您尝试写入的数据末尾附加一个换行符字符串。

静态关键字实际上意味着它属于类而不是实例。

所以当你看到:

System.out.println("Hello World");

它将字符“Hello World”和一个换行符写入与控制台连接的输出流中。
有关更多信息,请参见:

http://java.sun.com/j2se/1.5.0/docs/api/java/lang/System.html


PrintStream 包含一个名为 println 的静态方法,这是不正确的。请参考 http://download.oracle.com/javase/6/docs/api/java/io/PrintStream.html#println()。 - urmalp

1

这基本上就像 C 语言中的 puts 函数 -- 接收一个字符串并将其输出到标准输出。


1

System.out是指程序的标准输出。println的工作方式类似于C语言中的printf函数。在您的示例中,如果不传递参数,它只会返回一个换行符。

与C语言不同,Java是面向对象的,因此方法/函数和属性/变量被封装在对象中,例如"System"。查看javadoc以了解System对象上还有哪些可用内容。


1

1

System 是一个类,这意味着它是一个蓝图,但是蓝图的内容是什么呢? 根据API

System 类包含了几个有用的类字段和方法。

现在,System 有几个属性或字段,例如:

  • err - “标准”错误输出流。
  • in - “标准”输入流。
  • out - “标准”输出流。

API 还告诉我们 out 是什么。 Out 实际上是另一个对象,具体来说是一个 PrintStream 对象。

再次通过查阅 API,我们会发现 out 作为一个 PrintStream 对象,也有几个属性以及与之相关联的操作或方法。

Println 是 out 的其中一个方法。它的作用是在“标准输出”或者说你的屏幕上显示一个字符串、数字或其他内容。


0

就像David Johnstone所说的: System是Java中有用方法的类 out是PrintStream类型 print,println,printf是你可以将某些内容输出到控制台的不同方式;

System.out.print("your text here"); prints "your text here".

System.out.println("your text here"); prints "your text here" and goes to the next line

System.out.printf("%s %s %s" , string1,string2,string3); prints out the contents of string1 string 2 and string3. The %s tells java to put the associated string in place of it.

希望这能有所帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接