这是我第一次尝试与“建设者”做任何事情,经过一个小时左右的时间寻找这个主题的帮助,我仍然觉得我不知道自己在做什么。
所以这是我为不同的程序创建的类文件,它应该有2个构造函数。我尽我所能,但编译器一直告诉我,我需要标识符。
如何识别构造函数?
public class property
{
int storey = 0;
int width = 0;
int length = 0;
property(int storey, int width, int length)
{
{
this.storey = storey;
this.width = width;
this.length = length;
}
}
property(int width, int length)
{
this(1, width, length);
}
public int calculateArea(int area)
{
return (storey * width * length);
}
public double calculatePrice(double price)
{
return (((storey * width * length) * 2.24) *1.15);
}
}
答案 0 :(得分:3)
编译器告诉您需要指定p1
和p2
变量应该是什么类型。例如:
property(int p1)
{
// constructor
}
其他一些建议:
Property
。storey
,width
和length
作为构造函数参数,然后使用this
关键字将它们分配给字段:的
Property(int storey, int width, int length)
{
this.storey = storey;
this.width = width;
this.length = length;
}
的
Property(int width, int length)
{
this(1, width, length);
}
calculateArea
和calculatePrice
应返回计算值。分配给参数将不起作用:的
public int calculateArea()
{
return (storey * width * length);
}
的
public int getStorey()
{
return storey;
}
然后您可以使用您的财产:
BufferedReader br = new BufferedReader(System.in);
System.out.println("storey: ");
int storey = Integer.parseInt(br.readLine());
System.out.println("width: ");
int width = Integer.parseInt(br.readLine());
System.out.println("length: ");
int length = Integer.parseInt(br.readLine());
Property p = new Property(storey, width, length);
System.out.println("property dimensions:width " + p.calculateArea());
System.out.println("width: " + p.getWidth());
System.out.println("length: " + p.getLength());
System.out.println("storeys: " + p.getStoreys());
System.out.println("area: " + p.calculateArea());
System.out.println("price: " + p.calculatePrice());
答案 1 :(得分:1)
构造函数需要知道p1
和p2
的类型。你可能想要对这些值做些什么,例如您可以将p1或p2的值分配给宽度或长度。
您已撰写if(storey >> 1)
- 您的意思是if (storey > 1)
吗?
如果storey
不是1,我也会为构造函数提供一些默认值。赞:
property(int s, int w, int l)
{
if (l > 1)
{
storey = s;
width = w;
length = l;
}
else
{
storey = 0;
width = 0;
length = 0;
}
}
答案 2 :(得分:0)
您需要指定构造函数参数的类型,此处为p1
和p2
例如:
property(int p2)
答案 3 :(得分:0)
这里需要指定datatypes.How编译器知道它们是哪种类型
property(p1)
示例:property(int p1)
答案 4 :(得分:0)
传递给构造函数的p1
和p2
需要有一个与之关联的类型。所以你会这样:
public property(int p1)
{
//do something
}