用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

我目前正在读《大Java早期对象》一书

在“Java中的构造对象”一节中,他们给出了下面的示例

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
方法,并且该字符串正在控制台中打印。它应该在屏幕上绘制矩形,而且它还应该根据您的喜好对其进行着色:)我会重新阅读这本书的这一部分,以了解代码的意图是什么。这段代码肯定不会在屏幕上“画”任何东西。为什么它会打印出一个矩形?你说普林是什么意思