晕~~~~~~~~~~~~~
你在main中要先创建Rectangle的对象啊
public void main()
   {
      Rectangle rec = new Rectangle();
      system.out.println("矩形的宽度:"+rec.width);
      system.out.println("矩形的高度:"+rec.height);
      system.out.println("矩形的周长:"+rec.zhouchang());
      system.out.println("矩形的面积:"+rec.area());
      
   }

解决方案 »

  1.   

    这当然不对了
    main()方法里怎么没有类的对象声明?(Rectangle rectangle=new Rectangle
    ();)
      

  2.   

    另外,建议将赋给width和height的值提取出来放到构造函数的参数列表中
    不要直接在程序中写一些死数字
      

  3.   

    你的 main 方法定义有误,这样定义不能运行,需要:
    public static void main(String[])调用类的非静态方法,需要生成实例改过后的代码如下
    class Rectangle {    public float width, height;    public Rectangle(float width, float height) {
            this.width = width;
            this.height = height;
        }    public float zhouchang() {
            return 2 * (width + height);
        }    public float area() {
            return width * height;
        }    public static void main(String[] args) {
            Rectangle rect = new Rectangle(12, 18);
            System.out.println("矩形的宽度:" + rect.width);
            System.out.println("矩形的高度:" + rect.height);
            System.out.println("矩形的周长:" + rect.zhouchang());
            System.out.println("矩形的面积:" + rect.area());    }
    }
      

  4.   

    补充一句,System 第一个字母要大写,不然就不是系统的那个类了。Java 是区分大小写的
      

  5.   

    exception in thread "main" java.long.NoClassDefoundError:Rectangle
    是什么错呀 是我在运行程序时出错的java Rectangle 为什么呀 怎么回事
      

  6.   

    没注意到他大小写的问题,还是jamesfancy()边城狂人(James Fancy)仔细:)
    程序没有问题了,你直接考过去编译一下运行就OK了
      

  7.   

    public double zhouchang() {
            return 2 * (width + height);
        }    public double area() {
            return width * height;
        }
      

  8.   

    Rectangle类本身没问题
    如果想通过 java Rectangle执行
    必须定义static void main(String【】 args)
    static函数中必须实例化对象
      

  9.   

    如果你不想实例化变量的话
    可以将Rectangle类中的变量和方法声明为static即可