鉴于我们有 java 程序,我们通过声明来声明对对象的引用,例如String ab=new String
.
Java如何成为一种面向对象的编程语言?这个程序中哪里有对象?
在下面的 Java 代码中,我看不到任何对象。我想知道是否有任何对象用于打印 hello 消息。
class a
{
public static void main(String a[])
{
System.out.println("hello");
}
}
如果有n
命令行参数,那么就有n + 5
对象:
"hello"
是一个对象。a
是一个对象。String
传入的每个命令行参数都有一个对象。main
a
System
即使没有实例,该类也引用static
了 3 个对象:theout
和err
PrintStream
s 以及in
InputStream
.a
请注意,您的类没有实例。
是的,涉及的对象很少
System类有一个对象“out”,它是一个PrintStream类型的对象,它正在调用它的println方法
String a[]
a 是一个类型的对象:数组(字符串)。
你有你的class a
,即使它没有任何属性或instance
方法,你仍然可以实例化它,因为它所拥有的一切都是静态方法(main),所以没有意义。
此外,您可能想检查面向对象的特性。你有封装,以你的main方法为例,你可以从外面调用它;你有继承,你的类a,实际上所有的类都将至少继承到根对象类:java.lang.Object
I want to know if there is any object used to print the hello message.
在这种情况下,对象 out 实现了一个 println 方法,该方法接收一个 String 对象以在控制台中传递接收到的 String。
字符串"hello"
是一个对象。它没有new
运算符,但这仅仅是因为String
该类支持使用双引号创建文字的特殊语法。
a
您在方法中声明的数组main
也是一个对象。传递的任何参数也是对象。
System.out
也是一个对象(输出流),在System
类的代码中初始化。
仅举几个您的程序中涉及的对象:
String a[]
是一个对象;System.out
是一个对象;"hello"
是一个对象;这些是您可以看到的。但也有:
main Thread
; _class a
;System
;ClassLoader
; _还有很多。
当然,这一切都取决于你如何定义所涉及的程序。
"hello"
是一个String
对象。无需在 Java 中显式调用构造函数即可构造字符串对象。
a
, System
, out
, 传递给 main 的数组,都是从 java.lang.Object 派生的东西
a
,"hello"
并且System.out
都是对象。大多数新对象都是使用关键字创建的new
,但字符串文字也会创建一个对象。命名的对象a
由 Java 运行时系统创建以包含程序的参数。该对象System.out
是标准库的一部分。
Java 中几乎所有的东西都是对象。在这种情况下,您的类“a”是一个接受字符串对象数组作为参数的对象。在 main 方法中,它使用另一个 String 对象作为参数对 System 对象进行静态调用。据我所知,没有对象就没有 Java。