我有困难使一个实例对象的类,我刚刚使用Java



下面是我尝试创建的类:

package rectangle;
public class Rectangle
{
    private double length,width;
    public void setLength(double length)
    {
        length=this.length;
    }
    public void setWidth(double width)
    {
        width=this.width;
    } 
    public double getLength()
    {
        return length;
    }
    public double getWidth()
    {
        return width;
    }
    public double area()
    {
        return length*width;
    }
}

我相信我已经正确地上课了。我只是想创建和使用一个类,可以计算矩形的面积。
然后尝试实际创建实例对象:

/*Testing out the rectangle class*/
package rectangleclasstest;
import java.util.Scanner;
public class RectangleClassTest 
{
    static void main(String[] args) 
    {
        Scanner keyboard= new Scanner(System.in);
        Rectangle rec=new Rectangle();
        //get length
        System.out.println("Please enter the length");
        rec.setLength()=keyboard.nextInt();  
    }   
}

当我试图创建对象recc作为矩形类的实例时,我一直得到一个错误。就好像程序根本找不到我刚刚创建的类一样。任何反馈都会有所帮助。由于

这两个类位于两个不同的包中。所以当你想在RectangleClassTest中使用Rectangle类时,你需要导入它。

你只需要在RectangleClassTest类的顶部添加import行,就像下面的

import rectangle.Rectangle;

或者作为另一种选择,您也可以通过显式声明包来调用类名,如下

所示
rectangle.Rectangle rec=new rectangle.Rectangle();

下面还有一个编译错误
rec.setLength()=keyboard.nextInt();

应该在

下面
rec.setLength(keyboard.nextInt());

更新:除了在你的Rectangle类你的setter方法应该做this.length = length,而不是其他方式。下面是正确的方法

public void setLength(double length){
    this.length=length;
}
public void setWidth(double width){
    this.width=width;
} 

实际情况是,这些类位于不同的包中。要在包rectangleclasstest中使用Rectangle类,您必须导入它:

package rectangleclasstest;
import java.util.Scanner;
import rectangle.Rectangle;
public class RectangleClassTest 
{ ... }

同样,当你这样做的时候:

length=this.length;

只修改参数length。我猜你想修改实例属性:

this.length = length;

您需要导入rectangle包或显式命名rectangle,

rectangle.Rectangle rec=new rectangle.Rectangle();

这里还有一个编译错误,

rec.setLength()=keyboard.nextInt();
应该

rec.setLength(keyboard.nextInt());

因为您使用的是不同的软件包。您可以在矩形包中创建RectangleClassTest,或者导入矩形包

为了确保所有的角度都被覆盖,我们还可以看看你的导入,以确保矩形类被正确导入。
问题似乎也在下面这句话上:
rec.setLength()=keyboard.nextInt();
应该是:
rec.setLength(keyboard.nextInt());
那对我来说似乎更有意义。如果这个答案有帮助,请不要忘记给它投票或接受它作为答案

相关内容

  • 没有找到相关文章