java错误:类中的构造函数不能应用于给定的类型

我刚刚添加了构造函数Building,我认为一切都会正常工作,但我在第43行遇到错误。当我创建对象时Building b = new Building(); ,它说我需要在参数中有一个doubleint ,所以我按照它说的做了,但我只是继续得到更多的错误。 我究竟做错了什么?

 //This program lets the user design the area and stories of a building multiple times //Author: Noah Davidson //Date: February 20, 2014 import java.util.*; public class Building//class begins { static Scanner console = new Scanner(System.in); double area;//attributes of building int floors; public Building (double squarefootage, int stories) { area = squarefootage; floors = stories; } void get_squarefootage()//user enters the area of floor { System.out.println ("Please enter the square footage of the floor."); area = console.nextDouble(); } void get_stories()//user enters the amount of floors in the building { System.out.println ("Please enter the number of floors in the building."); floors = console.nextInt(); } void get_info()//function prints outs the vaibles of the building { System.out.println ("The area is: " + area + " feet squared"); System.out.println ("The number of stroies in the building: " + floors + " levels"); } public static void main(String[] args)//main starts { char ans;// allows for char do{ // do/while loop starts so user can reiterate the program as many times as they desire Building b = new Building();//creates the object b b.get_squarefootage();//calls the user to enter the area b.get_stories();//calls the user to enter the floors System.out.println ("---------------"); b.get_info();// displays the variables System.out.println ("Would you like to repeat this program? (Y/N)"); ans = console.next().charAt(0);// user enters either Y or y until they wish to exit the program }while(ans == 'Y'||ans == 'y');// test of do/while loop } } 

你的问题就在这里这一行Building b = new Building();//creates the object b

你的构造函数被设置为接受两个参数,一个double和一个int,但是你都没有传递。

尝试这样的事情来消除错误

 double area = 0.0; int floors = 0; Building b = new Building(area, floors); 

也许更好的想法是只有一个没有参数的构造函数……

 public Building{ this.area = 0.0; this.floors = 0; } 

应用这些更改后,代码编译并运行…(见下图)

确认程序编译并运行

我已经修复并测试了你的代码。 现在跑。 您需要向构造函数添加两个参数(double和int)。

 import java.util.*; public class Building//class begins { static Scanner console = new Scanner(System.in); double area;//attributes of building int floors; public Building (double squarefootage, int stories) { area = squarefootage; floors = stories; } void get_squarefootage()//user enters the area of floor { System.out.println ("Please enter the square footage of the floor."); area = console.nextDouble(); } void get_stories()//user enters the amount of floors in the building { System.out.println ("Please enter the number of floors in the building."); floors = console.nextInt(); } void get_info()//function prints outs the vaibles of the building { System.out.println ("The area is: " + area + " feet squared"); System.out.println ("The number of stroies in the building: " + floors + " levels"); } public static void main(String[] args)//main starts { char ans;// allows for char do{ // do/while loop starts so user can reiterate the program as many times as they desire double a =1; int c = 2; Building b = new Building(a,c);//creates the object b b.get_squarefootage();//calls the user to enter the area b.get_stories();//calls the user to enter the floors System.out.println ("---------------"); b.get_info();// displays the variables System.out.println ("Would you like to repeat this program? (Y/N)"); ans = console.next().charAt(0);// user enters either Y or y until they wish to exit the program }while(ans == 'Y'||ans == 'y');// test of do/while loop } }