这个Java“hello world”程序中涉及的对象是什么?

时间:2013-10-02 22:28:20

标签: oop java

鉴于我们有java程序,我们通过String ab=new String等声明声明对象的引用。

Java如何成为面向对象的编程语言?这个程序中有哪个对象?

在以下Java代码中,我看不到任何对象。我想知道是否有任何对象用于打印问候消息。

class a
{ 
  public static void main(String a[])
  {
    System.out.println("hello");
  }
}

8 个答案:

答案 0 :(得分:5)

如果有n个命令行参数,则有n + 5个对象:

  • 字符串文字"hello"是一个对象。
  • 数组a是一个对象。
  • 通过String数组传递给main的每个命令行参数都有一个a对象。
  • System类,即使没有实例,也有static个引用3个对象:outerr PrintStream,以及in InputStream

请注意,您的a课程没有实例。

答案 1 :(得分:3)

是的,涉及的对象很少

System有一个对象“out”,它是PrintStream类型的对象,它正在调用它的println方法

String a[]

a是一个类型的对象:Array(of Strings)。

你有class a即使它没有任何属性或instance方法你仍然可以实例化它,没有意义,因为它拥有的一切都是静态方法(主要)。

此外,您可能需要检查面向对象的功能。你有封装,以你的主要方法为例,你可以从外面调用它;你有继承,你的类a,实际上所有的类都将至少继承到根对象类:java.lang.Object

I want to know if there is any object used to print the hello message.

在这种情况下,对象out实现了一个println方法,该方法接收一个String对象以在控制台中传递接收到的String。

答案 2 :(得分:2)

字符串"hello"是一个对象。它没有new运算符,但这只是因为String类支持使用双引号创建文字的特殊语法。

您在a方法中声明的main数组也是一个对象。传递的任何参数也都是对象。

System.out也是一个对象(输出流),它是在System类的代码中初始化的。

答案 3 :(得分:1)

a"hello"System.out都是对象。大多数新对象都是使用关键字new创建的,但字符串文字也会创建一个对象。名为a的对象由Java运行时系统创建,以包含程序的参数。对象System.out是标准库的一部分。

答案 4 :(得分:1)

"hello"String个对象。可以在Java中构造字符串对象而不使用expliciet构造函数调用。

答案 5 :(得分:1)

aSystemout,传递给main的数组,都是来自java.lang.Object的所有东西

答案 6 :(得分:1)

Java中几乎所有东西都是一个对象。在这种情况下,您的类'a'是一个接受String对象数组作为参数的对象。在main方法中,它使用另一个String对象作为参数对System对象进行静态调用。据我所知,没有没有对象的Java。

答案 7 :(得分:1)

仅列举程序中涉及的一些对象:

  • String a[]是一个对象;
  • System.out是一个对象;
  • "hello"是一个对象;

您可以看到这些。但也有:

  • main Thread;
  • class a;
  • System;
  • ClassLoader;

还有更多。

当然,这完全取决于您如何定义参与程序