当前位置: 首页 > 知识库问答 >
问题:

如何从main方法打印void方法

吕亮
2023-03-14

好吧所以我有三节课

abstract class Shape  
{  
int width, height;  
String color;

public void draw()    
{      
}
    } // end Shape class

"

class Rectangle extends Shape
   {
Rectangle(int w, int h, String color)
{
    width = w;
    height = h;
    this.color = new String(color);
}

public void draw()
{
    System.out.println("I am a " + color + " Rectangle " + width + " wide and " + height + " high.");
}
   }// end Rectangle class

"

 class Circle extends Shape
   {
  Circle (int r, String color)
   {
    width = 2*r;
    height = 2*r;
    this.color = new String(color);   
}
public void draw()
{
    System.out.println("I am a " + color + " Circle with radius " + width + ".");
}
    } // end Circle class

'' 我正在尝试做的是创建一个新类来产生以下输出: 我是一个蓝色矩形,宽 20 高,高 10。我是一个半径为30的红色圆圈。我是一个绿色矩形,宽 25 宽,25 高,但我在调用方法 draw() 时遇到问题;

 This is the main class:
 public class Caller
  {
   public static void main(String args[]) 
    {
Caller call= new Caller();
Shape[] myShape = new Shape[3];

   myShape[0] = new Rectangle(20,10,"blue");
   myShape[1] = new Circle(30, "red");
   myShape[2] = new Rectangle(25,25, "green");
   for (int i=0; i < 3; i++)
     {
System.out.println();
     }
    call.draw(Rectangle);
    call.draw(Circle);
   } 
   }

共有3个答案

胥和悌
2023-03-14

for 循环中,您需要为您所在的特定 Shape 调用 draw 方法,并且不需要调用 System.out.println(),除非您想要另一个空行。

for (int i=0; i < 3; i++)
{
    myShape[i].draw();
}

删除像call.draw这样的行。不使用调用来调用方法。事实上,你甚至不需要调用者对象的实例。只需在已有的 Shape 对象上调用 draw 方法即可。

正如jlordo的回答一样,如果Shape类没有方法,那么它就不需要是抽象的。因此,您可以使绘制方法abstract,也可以从 class中删除

琴刚豪
2023-03-14

draw()方法是在Shape类上定义的,而不是在Caller类上定义。

我的形状[0]。draw()打印出矩形的例子。

梁渊
2023-03-14

你的代码格式很糟糕,所以这只是猜测。我认为你应该改变

for (int i=0; i < 3; i++)
     {
System.out.println();
     }
    call.draw(Rectangle);
    call.draw(Circle);

for (int i=0; i < myShape.length; i++) {
    myShape[i].draw();
}

此外,在Shape类更改中

public void draw()
{
}

public abstract void draw();
 类似资料:
  • 我正在做我的编程课介绍的作业,这是一个泡泡排序。代码可能有缺陷,但我不是在找人来解决那个问题。我的问题是,我试图打印它。我得到的条件是,该方法必须由“public static void sort(int[]array)”一行的void方法定义。因此,如果我尝试导入数组,并在main方法中使用,它将无法工作,因为我会得到一个编译器错误,说明void不适用。如果我试图将它放到main方法的循环中,它

  • 我正在研究一种随机数方法,从数组中选取一个随机元素。但是,我不知道如何打印方法的返回值。这是密码。

  • 我应该如何将它打印到我的控制台,并使它显示我在方法中声明的数组? 当我试图打印它时,就像: 不管用,那我该怎么做呢? 我只是想知道如何在我的控制台打印它。

  • testdate.java:

  • 我想按以下顺序打印子字符串:-“”,“D”,“C”,“CD”,“B”,“BD”,“BC”,“BCD”,“A”,“AD”,“AC”,“ACD”,“AB”,“ABD”,“ABC”,“ABCD” 在这里,最后4个阵型的“a”不见了