Java 调用类时出错?

Java 调用类时出错?,java,class,object,Java,Class,Object,任务如下所述: 问题 westfield地毯公司要求您编写一个应用程序,用于计算矩形房间地毯的价格。要计算价格,请将地板面积(宽度乘以长度)乘以每平方英尺地毯的价格。例如,12英尺长、10英尺宽的地板面积为120平方英尺。用每平方英尺8美元的地毯覆盖地板需要960美元(12x10x8=960) 首先,您应该创建一个名为RoomDimension的类,该类有两个feield:一个表示房间的长度,一个表示宽度。RoomDimension类应该有一个返回房间面积的方法(房间面积是房间长度乘以房间宽度)

任务如下所述:

问题 westfield地毯公司要求您编写一个应用程序,用于计算矩形房间地毯的价格。要计算价格,请将地板面积(宽度乘以长度)乘以每平方英尺地毯的价格。例如,12英尺长、10英尺宽的地板面积为120平方英尺。用每平方英尺8美元的地毯覆盖地板需要960美元(12x10x8=960)

首先,您应该创建一个名为RoomDimension的类,该类有两个feield:一个表示房间的长度,一个表示宽度。RoomDimension类应该有一个返回房间面积的方法(房间面积是房间长度乘以房间宽度)

接下来,您应该创建一个RoomDimension类,该类将RoomDimension对象作为字段。它还应该有一块每平方英尺地毯成本的场地。Room地毯类应该有一个返回地毯总成本的方法

编写完这些类后,在一个应用程序中使用它们,该应用程序要求用户输入房间的尺寸和所需地毯的每平方英尺价格。应用程序应显示地毯的总成本

由于主程序第31行中的错误,我下面的代码似乎无法运行

import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;
public class MainProgram {


    public static void main(String[] args) {

        final double CARPET_PRICE_PER_SQFT = 8.0;

        // Create a Scanner object for keyboard input.
        Scanner keyboard = new Scanner(System.in);

        // Display intro.
        System.out.println("This program will display the "
                + "carpet cost of a room." + "\nPlease enter the room's "
                + "dimension in feet.");

        // Get the length of the room.
        System.out.print("Enter the length of room: ");
        double length = keyboard.nextDouble();

        // Get the width of the room.
        System.out.print("Enter the width of room: ");
        double width = keyboard.nextDouble();

        //close keyboard
        keyboard.close();

        ****// Create RoomDimension and RoomCarpet objects.
        CarpetCalculatorProgram calculatorProgram = new CarpetCalculatorProgram();
        RoomDimension dimensions = calculatorProgram.new RoomDimension(length,
                width);
        RoomCarpet roomCarpet = calculatorProgram.new RoomCarpet(dimensions,
                CARPET_PRICE_PER_SQFT);****

        // Print the object calling the toString
        System.out.println(roomCarpet);
    }
}
下面是代码的其他类:

房间尺寸

import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;
public class RoomDimension {

    private double length;
    private double width;

    public RoomDimension(double length, double width) {
        super();
        this.length = length;
        this.width = width;
    }

    public double getLength() {
        return length;
    }

    public double getWidth() {
        return width;
    }

    public double getArea() {
        return length * width;
    }

    @Override
    public String toString() {
        return "RoomDimension [length=" + length + ", width=" + width + "]";
    }


}
房间地毯

import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;
public class RoomCarpet {

      private RoomDimension roomDimensions;
        private double costOfCarpet;

        public RoomCarpet(RoomDimension roomDimensions, double costOfCarpet) {
            super();
            this.roomDimensions = roomDimensions;
            this.costOfCarpet = costOfCarpet;
        }

        public double getTotalCost() {
            return costOfCarpet * roomDimensions.getArea();
        }

        @Override
        public String toString() {
            return "RoomCarpet [roomDimensions=" + roomDimensions
                    + ", costOfCarpet=" + costOfCarpet + ", "
                            + "total cost=" + getTotalCost() + "]";
        }

}

当我将所有内容粘贴到IDE中时出现的错误是

无法将计算器程序解析为类型

假设没有未发布的类:

没有
地毯计算器程序
类,也没有内部
房间维度
/
房间地毯
RoomDimension
实际上是一个独立的顶级类。代码必须是

    // Create RoomDimension and RoomCarpet objects.
    RoomDimension dimensions = new RoomDimension(length,
            width);
    RoomCarpet roomCarpet = new RoomCarpet(dimensions,
            CARPET_PRICE_PER_SQFT);
而不是使用
new enclosuringclass().new InnerClass()
语法。或

    // Create RoomDimension and RoomCarpet objects.
    CarpetCalculatorProgram calculatorProgram = new CarpetCalculatorProgram();
    CarpetCalculatorProgram.RoomDimension dimensions = calculatorProgram.new RoomDimension(length,
            width);
    CarpetCalculatorProgram.RoomCarpet roomCarpet = calculatorProgram.new RoomCarpet(dimensions,
            CARPET_PRICE_PER_SQFT);
这两个类进入了地毯计算器程序类:

public class CarpetCalculatorProgram {
    public class RoomDimension {
        ...
    }

    public class RoomCarpet {
        ...
    }
}

我的代码工作正常,看看是否对你有帮助

import java.util.Scanner;
class RoomDimension{
        private int length;
        private int width;

    public RoomDimension(int length, int width){
            this.length= length;
            this.width= width;
    }
    public int Area(){
        int area= this.length* this.width;
        return area;
    }
    public int getlength(){
        return this.length;
    }
    public int getwidth(){
        return width;
    }
    }

    class RoomCarpet{
        private RoomDimension RD;
        private int costperSq;

    public RoomCarpet(RoomDimension RD, int costperSq){
        this.RD= RD;
        this.costperSq= costperSq;
    }

    public int TotalCost(){
        return this.costperSq* RD.Area();
    }
}
[主要]

class Main{
    public static void main(String[] args){
        Scanner sc= new Scanner(System.in);

        System.out.println("enter the length the room");
        int L= sc.nextInt();

        System.out.println("enter the width the room");
        int W= sc.nextInt();

        RoomDimension RD= new RoomDimension(L, W);

        System.out.println("enter how much the carpet costs per sq");
        int cost= sc.nextInt();

        RoomCarpet RC= new RoomCarpet(RD, cost);

        System.out.println("total cost of the carpet will be= "+RC.TotalCost());
    }
}

由于一个错误而导致的
:这是一个秘密错误吗?如果没有,则将其添加到问题中。而
main程序中的
31
行是什么?什么错误?第31行是什么?对不起,代码是://创建RoomDimension和Room地毯对象。地毯计算器程序计算器程序=新地毯计算器程序();RoomDimension尺寸=计算器程序。新的RoomDimension(长度、宽度);房间地毯房间地毯=计算器程序。新房间地毯(尺寸、地毯价格/平方英尺);嗯,这看起来像源代码,而不是异常消息…@KennyBowen发布堆栈跟踪。另见和。如果你想要免费的帮助,不要让我们拔牙。添加你认为出错的地方以及你的代码修复错误的原因的描述。