java - 我在为刚刚使用 Java 创建的类创建实例对象时遇到困难

标签 java class object netbeans instance

这是我尝试创建的类:

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

我相信我已经正确地完成了类(class)。我只是想创建并使用一个可以计算矩形面积的类。
然后我尝试实际创建实例对象:

/*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();  
    }   
}

当我尝试创建对象rec作为我刚刚创建的矩形类的实例时,我不断收到错误。就好像程序根本找不到我刚刚制作的类(class)一样。任何反馈都会有所帮助。谢谢

最佳答案

您的两个类位于两个不同的包中。因此,当您想在 RectangleClassTest 中使用 Rectangle 类时,您需要导入它。

您只需在 RectangleClassTest 类的顶部添加导入行,如下所示

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

关于java - 我在为刚刚使用 Java 创建的类创建实例对象时遇到困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24727854/

相关文章:

c++ - 具有模板参数的模板类上的赋值运算符重载

html - 第二种 CSS 样式不会超越第一种

c++ - 如何初始化数组指针对象

java - jooq 中具有动态名称的存储过程

java - 为什么Optional isPresent类方法采用Consumer<? super T> 作为参数,而不是 Consumer<T>?

python - 使用 python 计算数学表达式而不使用多个函数的算法

javascript - 将对象数组转换为不同格式的问题

php - 对象像一个数组? (PHP)

java - 如何修复 javafx.fxml.LoadException

java - 将 Vespa 扩展为 500 QPS 以进行搜索