Java 构造函数

2022-09-01 11:45:58

我正在尝试学习如何在Java中指定类构造函数。我开始明白,它们指定了从该类创建的对象的实例变量的类型。它们还可用于设置实例变量初始值。以下示例来自 Sun 网站上的 Java 教程:

public Bicycle(int startCadence, int startSpeed, int startGear) {
    gear = startGear;
    cadence = startCadence;
    speed = startSpeed;
}

在类源代码中应将构造函数放在何处?

这些参数是变量的名称吗?:(int startCadence,int startSpeed,int startGear)还是齿轮,节奏和速度是变量的名称?

(int startCadence, int startSpeed, int startGear) 和 gear, cadence and speed 之间有什么区别?

万一我的导师或盐湖城社区学院的任何管理员遇到这个问题,让我明确我的意图。这个问题是本着学术诚信的最大精神发布的。我问这个问题是为了寻求一般建议,并帮助理解使用Java编程语言的正确方法。我绝不使用别人的作品,并将其作为我自己的作品来代表。我使用这里提供的答案作为我理解的一般帮助。我做我自己的所有工作,不复制回答我问题的人提供的工作。


答案 1

构造函数可以出现在类代码中的任何位置。但是,按照惯例,大多数人将它们放在任何其他不是构造函数的函数之前。

至于变量名称,所有6个实际上都是变量名称,但范围是不同的。指定为构造函数参数的那些(startCadence,startSpeed,startGear)仅在构造函数中可用。其他3个(档位,节奏,速度)可能是全类变量,可用于所有方法。但是,该定义不会显示在代码段中。完整的类看起来更像:

class Bicycle
{
    // class-level variables
    private int gear;
    private int cadence;
    private int speed;

    // constructor
    public Bicycle(int startCadence, int startSpeed, int startGear) {
        gear = startGear;
        cadence = startCadence;
        speed = startSpeed;
    }

    // another method (not a constructor)
    public void ShiftUp() {
        gear = gear + 1; // notice the 'gear' variable is available here too.
    }
}

希望有所帮助!


答案 2

gear,cadence和速度是该类的成员变量(在其他地方声明),startCadence,startSpeed和startGear是函数参数。

class Bicycle
{
    private int gear, cadence, speed;

    public Bicycle(int startCadence, int startSpeed, int startGear)
    {
        // set the value of member variables from passed parameters
        gear = startGear;
        cadence = startCadence;
        speed = startSpeed;

    }
}