Java 调用类时出错?
任务如下所述: 问题 westfield地毯公司要求您编写一个应用程序,用于计算矩形房间地毯的价格。要计算价格,请将地板面积(宽度乘以长度)乘以每平方英尺地毯的价格。例如,12英尺长、10英尺宽的地板面积为120平方英尺。用每平方英尺8美元的地毯覆盖地板需要960美元(12x10x8=960) 首先,您应该创建一个名为RoomDimension的类,该类有两个feield:一个表示房间的长度,一个表示宽度。RoomDimension类应该有一个返回房间面积的方法(房间面积是房间长度乘以房间宽度) 接下来,您应该创建一个RoomDimension类,该类将RoomDimension对象作为字段。它还应该有一块每平方英尺地毯成本的场地。Room地毯类应该有一个返回地毯总成本的方法 编写完这些类后,在一个应用程序中使用它们,该应用程序要求用户输入房间的尺寸和所需地毯的每平方英尺价格。应用程序应显示地毯的总成本 由于主程序第31行中的错误,我下面的代码似乎无法运行Java 调用类时出错?,java,class,object,Java,Class,Object,任务如下所述: 问题 westfield地毯公司要求您编写一个应用程序,用于计算矩形房间地毯的价格。要计算价格,请将地板面积(宽度乘以长度)乘以每平方英尺地毯的价格。例如,12英尺长、10英尺宽的地板面积为120平方英尺。用每平方英尺8美元的地毯覆盖地板需要960美元(12x10x8=960) 首先,您应该创建一个名为RoomDimension的类,该类有两个feield:一个表示房间的长度,一个表示宽度。RoomDimension类应该有一个返回房间面积的方法(房间面积是房间长度乘以房间宽度)
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发布堆栈跟踪。另见和。如果你想要免费的帮助,不要让我们拔牙。添加你认为出错的地方以及你的代码修复错误的原因的描述。