0

我正在尝试做作业,但我似乎遇到了错误。我必须构建一个矩形并返回周长和面积,矩形默认高度和宽度为 1。在我编译它之前一切看起来都很好,然后我被告知 main 方法必须是静态的。当我将主方法设为静态时,我会收到“无法从静态上下文引用的非静态变量”错误。关于我需要做些什么来解决它的任何想法?

package rectangle;
/**
 *
 * @author james
 */
public class Rectangle {
/** Main Method */
    public static void main(String[] args) {
        //Create a rectangle with width and height
        SimpleRectangle rectangle1 = new SimpleRectangle();
        System.out.println("The width of rectangle 1 is " + 
                rectangle1.width + " and the height is " +
                rectangle1.height);
        System.out.println("The area of rectangle 1 is " +
                rectangle1.getArea() + " and the perimeter is " +
                rectangle1.getPerimeter());

        //Create a rectangle with width of 4 and height of 40
        SimpleRectangle rectangle2 = new SimpleRectangle(4, 40);
                System.out.println("The width of rectangle 2 is " + 
                rectangle2.width + " and the height is " +
                rectangle2.height);
                System.out.println("The area of rectangle 2 is " +
                        rectangle2.getArea() + " and the perimeter is "
                        + rectangle2.getPerimeter());



    }

        public class SimpleRectangle {
        double width;
        double height;

        SimpleRectangle() {
            width = 1;
            height = 1;
        }

        //Construct a rectangle with a specified width and height
        SimpleRectangle(double newWidth, double newHeight) {
            width = newWidth;   
            height = newHeight;
        }

        //Return the area of the rectangle
        double getArea() {
            return width * height;
        }
        //Return the perimeter of a rectangle
        double getPerimeter() {
            return (2 * width) * (2 * height);
        }

    }
}
4

1 回答 1

1

您正在尝试在一个类中创建一个类,这可能不是您想要做的。

SimpleRectangle在自己的文件中创建一个类,或者只在类上创建getPerimetergetArea方法并将Rectangle类重命名RectangleSimpleRectangle(您需要相应地更改源文件名)

于 2013-03-18T01:31:12.087 回答