用Java构造对象
我目前正在读《大Java早期对象》一书 在“Java中的构造对象”一节中,他们给出了下面的示例用Java构造对象,java,object,Java,Object,我目前正在读《大Java早期对象》一书 在“Java中的构造对象”一节中,他们给出了下面的示例 import java.awt.Rectangle; /** This example demonstrates constructors. */ public class ConstructorDemo { public static void main(String[] args) { // Constructs and prints a rectangle
import java.awt.Rectangle;
/**
This example demonstrates constructors.
*/
public class ConstructorDemo
{
public static void main(String[] args)
{
// Constructs and prints a rectangle
System.out.println(new Rectangle(5, 10, 20, 30));
// Constructs a rectangle and saves it in a variable
Rectangle box = new Rectangle(5, 10, 20, 30);
System.out.print("box: ");
System.out.println(box);
// The constructor with no arguments
box = new Rectangle();
System.out.print("box: ");
System.out.println(box);
}
}
我认为这段代码应该打印出一个矩形。但什么也没发生,它只是在控制台中打印出来:
java.awt.Rectangle[x=5,y=10,width=20,height=30]
box: java.awt.Rectangle[x=5,y=10,width=20,height=30]
box: java.awt.Rectangle[x=0,y=0,width=0,height=0]
我的月食有什么问题吗?我怎样才能做到这一点呢?我认为您的Eclipse没有任何问题,而且输出事实上是正确的。如果希望看到矩形的实际图形,则需要重新查看矩形类。在矩形对象上调用System.out.print将调用.toString方法。这是您创建的矩形的坐标和尺寸的表示形式 我认为您的Eclipse没有任何问题,而且输出事实上是正确的。如果希望看到矩形的实际图形,则需要重新查看矩形类。在矩形对象上调用System.out.print将调用.toString方法。这是您创建的矩形的坐标和尺寸的表示形式 我认为您的Eclipse没有任何问题,而且输出事实上是正确的。如果希望看到矩形的实际图形,则需要重新查看矩形类。在矩形对象上调用System.out.print将调用.toString方法。这是您创建的矩形的坐标和尺寸的表示形式 我认为您的Eclipse没有任何问题,而且输出事实上是正确的。如果希望看到矩形的实际图形,则需要重新查看矩形类。在矩形对象上调用System.out.print将调用.toString方法。这是您创建的矩形的坐标和尺寸的表示形式 如果查看由
System.out.println
自动调用的Rectangle.toString()
的代码,您将看到它打印出组成矩形
对象的参数。但是,它不会得出这样的结论:
return getClass().getName() + "[x=" + x + ",y=" + y + ",width=" + width + ",height=" + height + "]";
您没有显式调用toString()
,但隐式调用的是:
见:
是一个类,具有类型为的静态
字段。因此,您正在调用PrintStream
的方法
它是这样实现的:
public void println(Object x) {
String s = String.valueOf(x);
synchronized (this) {
print(s);
newLine();
}
}
正如我们看到的,它正在调用方法。具体实施如下:
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
你看,这就是所谓的
您的代码运行正常。如果查看由
系统.out.println
自动调用的矩形.toString()
的代码,您将看到它打印出组成矩形
对象的参数。但是,它不会得出这样的结论:
return getClass().getName() + "[x=" + x + ",y=" + y + ",width=" + width + ",height=" + height + "]";
您没有显式调用toString()
,但隐式调用的是:
见:
是一个类,具有类型为的静态
字段。因此,您正在调用PrintStream
的方法
它是这样实现的:
public void println(Object x) {
String s = String.valueOf(x);
synchronized (this) {
print(s);
newLine();
}
}
正如我们看到的,它正在调用方法。具体实施如下:
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
你看,这就是所谓的
您的代码运行正常。如果查看由
系统.out.println
自动调用的矩形.toString()
的代码,您将看到它打印出组成矩形
对象的参数。但是,它不会得出这样的结论:
return getClass().getName() + "[x=" + x + ",y=" + y + ",width=" + width + ",height=" + height + "]";
您没有显式调用toString()
,但隐式调用的是:
见:
是一个类,具有类型为的静态
字段。因此,您正在调用PrintStream
的方法
它是这样实现的:
public void println(Object x) {
String s = String.valueOf(x);
synchronized (this) {
print(s);
newLine();
}
}
正如我们看到的,它正在调用方法。具体实施如下:
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
你看,这就是所谓的
您的代码运行正常。如果查看由
系统.out.println
自动调用的矩形.toString()
的代码,您将看到它打印出组成矩形
对象的参数。但是,它不会得出这样的结论:
return getClass().getName() + "[x=" + x + ",y=" + y + ",width=" + width + ",height=" + height + "]";
您没有显式调用toString()
,但隐式调用的是:
见:
是一个类,具有类型为的静态
字段。因此,您正在调用PrintStream
的方法
它是这样实现的:
public void println(Object x) {
String s = String.valueOf(x);
synchronized (this) {
print(s);
newLine();
}
}
正如我们看到的,它正在调用方法。具体实施如下:
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
你看,这就是所谓的
您的代码运行正常。为什么会打印出矩形?打印矩形是什么意思?它不会绘制矩形。它正在调用
rectangle\toString
方法,并且该字符串正在控制台中打印。它应该在屏幕上绘制矩形,而且它还应该根据您的喜好对其进行着色:)我会重新阅读这本书的这一部分,以了解代码的意图是什么。这段代码肯定不会在屏幕上“画”任何东西。为什么它会打印出一个矩形?打印矩形是什么意思?它不会绘制矩形。它正在调用rectangle\toString
方法,并且该字符串正在控制台中打印。它应该在屏幕上绘制矩形,而且它还应该根据您的喜好对其进行着色:)我会重新阅读这本书的这一部分,以了解代码的意图是什么。这段代码肯定不会在屏幕上“画”任何东西。为什么它会打印出一个矩形?打印矩形是什么意思?它不会绘制矩形。它正在调用rectangle\toString
方法,并且该字符串正在控制台中打印。它应该在屏幕上绘制矩形,而且它还应该根据您的喜好对其进行着色:)我会重新阅读这本书的这一部分,以了解代码的意图是什么。这段代码肯定不会在屏幕上“画”任何东西。为什么它会打印出一个矩形?你说普林是什么意思