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