Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Square类_Java - Fatal编程技术网

Java Square类

Java Square类,java,Java,以下是我被要求做的: 1.创建一个名为Square的类,该类在构造函数中接受宽度参数。Square类应该有一个draw()方法,可以在屏幕上绘制正方形。创建一个名为TestSquare的类,该类将从用户获取宽度,创建一个Square对象,并对Square对象调用draw()方法 这是我的问题,但我的问题是将draw()方法传递给test方法。我知道我需要将for循环从测试移到类中,以便在testmain方法中调用它 public class Square { /** the width

以下是我被要求做的: 1.创建一个名为Square的类,该类在构造函数中接受宽度参数。Square类应该有一个draw()方法,可以在屏幕上绘制正方形。创建一个名为TestSquare的类,该类将从用户获取宽度,创建一个Square对象,并对Square对象调用draw()方法

这是我的问题,但我的问题是将draw()方法传递给test方法。我知道我需要将for循环从测试移到类中,以便在testmain方法中调用它

public class Square {
    /** the width of square*/
    int width;

    /** construct the square*/
    Square(){   
    }

    /**construct a square */
    Square(int newWidth){
        width = newWidth;
}

/**show the square*/
  void draw(){
  for (int i=0; i<width; i++)
  {
   for (int j=0; j<width; j++)
   {    System.out.print("* ");}

   System.out.println();
  }

}
}
import java.util.Scanner;

public class TestSquare {
  /** Main method */
  public static void main(String[] args) {
  // Create a scanner input
 Scanner input = new Scanner(System.in); 

  // prompt user to enter width
System.out.println("Creating a Square ...");
    System.out.print("Please enter its width:");
    int width = input.nextInt();


   Square square = new Square(width);
   System.out.println("Here is the Square:"); 
   square.draw();



  }

}
公共类广场{
/**正方形的宽度*/
整数宽度;
/**建造广场*/
正方形({
}
/**建造一个广场*/
正方形(整型宽度){
宽度=新宽度;
}
/**展示广场*/
作废提款(){

对于(int i=0;i有一些问题

将此方法重命名为“getArea”或仅返回宽度:

int getWidth() {
    return width*width;
}
不要在for循环声明的末尾加分号。这会使for循环不起任何作用。此外,外部for循环应该从0(而不是1)开始:


for(int i=1;i将循环更改为:

for (int i=0; i<width; i++)
{
   for (int j=0; j<width; j++)
   { System.out.print("*"); }

   System.out.println();
}
int getWidth() {
    return width;
}
使用width*width将使方法返回n^2的宽度。它应该是宽度而不是面积

编辑:我不确定这是否是您想要做的,但请尝试将其放在Square类中:

void draw() {
    for (int i=0; i<width; i++)
{
   for (int j=0; j<width; j++)
   { System.out.print("*"); }

   System.out.println();
}
}

它似乎传递不正确:使用调试器。那么,呃,你能解释一下这里发生了什么吗?
int getWidth(){return width*width;}
问题到底是什么?不可能帮助你让它“正确传递”不知道您希望得到什么样的输出。您能提供这个程序的输出示例,以及您希望得到什么样的输出示例吗?您可能还会发现Eric Lippert的博客文章很有用。我需要能够使用TestSquare,让它运行Square.java。这样,当提示时,我可以输入一个正方形的宽度,然后它将dra宽度为4的正方形显示4行4*'s@planker1010:你读过“如何调试小程序”链接了吗?我可以帮你调试,但教你如何调试可能更有价值。这段代码有六个错误——你需要将它分解成几部分并修复每一部分。行
square.getWidth()
本身不起任何作用。我已经这样做了。但是我不相信truley需要这样做才能调用Square类,让它根据用户输入的宽度绘制它。如果我回到类并更改int getWidth(){return(width*2);它不占用我的宽度输入和2倍的时间。因此,出于某种原因,我觉得测试不是针对类Square进行的。我不明白您试图实现什么。您是否应该构造没有循环的“*”?我需要调用draw()方法让它在我接受用户输入的宽度后绘制正方形那么你就不需要getWidth()方法了。只需调用draw并将for循环放入itThanks中,这就是我缺少的部分,我试图将for循环放入测试中,而不是类中。现在我可以调用draw()来自全班。非常感谢。
void draw() {
    for (int i=0; i<width; i++)
{
   for (int j=0; j<width; j++)
   { System.out.print("*"); }

   System.out.println();
}
}
square.draw();