小编典典

您可以在构造函数中将实例变量声明为参数吗?

java

这行得通吗?

class Cars{
    Cars(int speed, int weight)
}

我只是想弄清楚构造函数。如果将其称为方法,那么我认为它的工作原理与方法类似。您可以在调用该方法时使用的方法中创建局部变量,因此我不明白为什么在构造函数使用它们之前必须先声明实例变量。


阅读 213

收藏
2020-11-30

共1个答案

小编典典

在您的示例中,速度和权重不是实例变量,因为它们的范围仅限于构造函数。您可以在外部声明它们,以使它们在整个类(即整个类的对象)中可见。构造函数的目的是初始化它们。

例如以这种方式:

public class Car
{
    // visible inside whole class
    private int speed;
    private int weight;

    // constructor parameters are only visible inside the constructor itself
    public Car(int sp, int w)
    {
        speed = sp;
        weight = w;
    }

    public int getSpeed()
    {
        // only 'speed' and 'weight' are usable here because 'sp' and 'w' are limited to the constructor block
        return speed;
    }
}

这里spw是被用于设置实例变量的初始值的参数。它们仅在构造函数执行期间存在,并且无法以任何其他方法访问。

2020-11-30