Java 创建一个类,然后测试该类
我正在学习Java,我正在阅读Deitel&Deitel的书《Java:如何编程》。在学习过程中,我试图做后面的练习。我正在进行的具体练习是: 创建一个具有属性length和width的类矩形,每个属性默认为1。提供计算矩形周长和面积的方法。对长度和宽度使用set和get方法。set方法将验证长度和宽度是否都是大于0.0和小于20.0的浮点数。编写一个程序来测试类矩形 以下是我创建的类:Java 创建一个类,然后测试该类,java,Java,我正在学习Java,我正在阅读Deitel&Deitel的书《Java:如何编程》。在学习过程中,我试图做后面的练习。我正在进行的具体练习是: 创建一个具有属性length和width的类矩形,每个属性默认为1。提供计算矩形周长和面积的方法。对长度和宽度使用set和get方法。set方法将验证长度和宽度是否都是大于0.0和小于20.0的浮点数。编写一个程序来测试类矩形 以下是我创建的类: package rectangle; public class Rectangle { p
package rectangle;
public class Rectangle {
public float rectangle;
public float length;
public float width;
public float perimeter;
public float area;
public Rectangle(float length, float width){
if(length < 0.0 || length >= 20.0){
throw new IllegalArgumentException("Length must be between 0.0 and 20.0");
}
if(width < 0.0 || width >= 20.0){
throw new IllegalArgumentException("Width must be between 0.0 abnd 20.00");
}
this.length = length;
this.width = width;
}
public float getLength(){
return length;
}
public float getWidth(){
return width;
}
public void setPerimeter(float perimeter){
perimeter = ((getLength() *2) + (getWidth()*2));
}
public float getPerimeter(){
return perimeter;
}
public void setArea(float area){
area = getLength() * getWidth();
}
public float area(){
return area;
}
}
当我运行测试类(在IDE中)时,此警告显示:
“不兼容类型:可能从双精度转换为浮点型。”
我不明白IDE为什么会提出这个警告。有人能帮忙吗?您正在用这行代码实例化Double
Rectangle rectangle1 = new Rectangle (3.2, 3.3);
要制作浮动,您需要执行以下操作:
Rectangle rectangle1 = new Rectangle (3.2f, 3.3f);
在Java中,文字值1.0或任何其他正常十进制值被视为双精度(64位浮点值)。构造函数将浮点(32位浮点值)作为输入。您试图将64位数字传递给接受32位数字的函数。Java永远不会让您做任何可能会丢失精度的事情(比如将浮点传递给int方法或将double传递给浮点方法)。最好的办法是说
Rectangle rectangle1 = new Rectangle (3.2f, 3.3f);
添加f会告诉java该文本是32位浮点,而不是64位双精度浮点。您还可以添加强制类型转换:
Rectangle rectangle1 = new Rectangle ((float) 3.2, (float) 3.3);
但是使用f表示法是非常可取的。Java中的浮点文本是
double
类型,但是您的矩形
构造函数采用浮点
。只需将构造函数中参数的数据类型更改为double
,以消除以后可能出现的错误。公共实例变量的访问器怎么了?保密!什么是公共浮动矩形?
Rectangle rectangle1 = new Rectangle ((float) 3.2, (float) 3.3);