测试类/客户端代码中的语法错误

时间:2019-07-17 04:43:50

标签: java class syntax constructor

我正在尝试创建一个具有重载构造函数的Rectangle类。第一个构造函数不需要任何参数。第二个参数有两个参数,一个参数为长度,第二个参数为宽度。成员变量存储矩形的长度和宽度,成员方法分配和检索长度和宽度,并返回矩形的面积和周长。需要通过编写适当的客户端代码来测试该类。问题是代码中有许多语法错误,我不知道该如何解决。

公共类矩形{

public static void main(String[] args) {
          private int length;
          private int width;

          Rectangle(){
            this.length=1; // assuming default length=1
            this.width=1; // assuming default width=1
          }

          Rectangle(int length, int width){
            this.length=length; 
            this.width=width; 
          }

        int area(){
           return length*width;
        }
        int perimeter(){
          return 2*(length+width);
        }
        }


        // test class

        public class TestRectangle{
            public static void main(String args[]){
                Rectangle r1= new Rectangle();
                System.out.println("Area of r1: "+ r1.area());
                Rectangle r2= new Rectangle(2,3);
                System.out.println("Perimetr of r2: "+ r2.perimeter());
            }
        }

}

}

1 个答案:

答案 0 :(得分:0)

您实际上并不需要两个类,但是您不能在这样的方法中定义一个类。

从一个类开始,然后,如果要分开它们,则需要两个文件

public class Rectangle {
    private int length;
    private int width;

    Rectangle() {
        this.length = 1; // assuming default length=1
        this.width = 1; // assuming default width=1
    }

    Rectangle(int length, int width) {
        this.length = length;
        this.width = width;
    }

    int area() {
        return length * width;
    }

    int perimeter() {
        return 2 * (length + width);
    }

    public static void main(String args[]) {
        Rectangle r1 = new Rectangle();
        System.out.println("Area of r1: " + r1.area());
        Rectangle r2 = new Rectangle(2, 3);
        System.out.println("Perimetr of r2: " + r2.perimeter());
    }
}

编写主方法不是正确的测试。为此,您应该至少使用Junit