Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建一个类,然后测试该类_Java - Fatal编程技术网

Java 创建一个类,然后测试该类

Java 创建一个类,然后测试该类,java,Java,我正在学习Java,我正在阅读Deitel&Deitel的书《Java:如何编程》。在学习过程中,我试图做后面的练习。我正在进行的具体练习是: 创建一个具有属性length和width的类矩形,每个属性默认为1。提供计算矩形周长和面积的方法。对长度和宽度使用set和get方法。set方法将验证长度和宽度是否都是大于0.0和小于20.0的浮点数。编写一个程序来测试类矩形 以下是我创建的类: package rectangle; public class Rectangle { p

我正在学习Java,我正在阅读Deitel&Deitel的书《Java:如何编程》。在学习过程中,我试图做后面的练习。我正在进行的具体练习是:

创建一个具有属性length和width的类矩形,每个属性默认为1。提供计算矩形周长和面积的方法。对长度和宽度使用set和get方法。set方法将验证长度和宽度是否都是大于0.0和小于20.0的浮点数。编写一个程序来测试类矩形

以下是我创建的类:

 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);