需要帮助理解这段代码(java)

时间:2011-03-19 06:04:28

标签: java

public class Bicycle {

private int cadence;
private int gear;
private int speed;

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

当你写gear = startGear时;这实际上是做什么的?是暂时设置齿轮的值,无论你的输入是什么时间,然后它重置为零?这是一个变量的实例吗?

有人可以向我解释究竟什么是“对象的实例”?这里有人吗? 我认为一个对象的实例是当有人写自行车bike1 = new Bicycle();和bike1是一个对象的实例。对不起,我是一个总菜鸟。

2 个答案:

答案 0 :(得分:0)

public Bicycle(int startCadence, int startSpeed, int startGear) ;

这是类Bicycle的构造函数,它接受三个类型为int的参数。构造函数应该与该类的名称相同。

当你写gear = startGear时,

;这实际上是做什么的?

对于这样的变量副本,您实际上是将传递参数的值赋给它。


究竟什么是“对象的实例”?

没有任何东西叫做对象的实例。你有一个实例的类。每个实例都有自己的类成员变量。事实上,实例和对象是同义词,通常可以互换使用。


将描述性部分分开并理解此图表 -

  1. 这是班级Bicycle的基本结构 - Bicycle structure
  2. 自行车自行车1 =新自行车(10,4,75);
  3. 当说new Bicycle(10, 4 75);时,Bicycle类被实例化。通过实例化手段 -

    • 为班级成员分配内存;
    • 默认情况下调用类构造函数。

    运算符new返回对象驻留在堆上的地址。所以,在我们的例子中bike1指向这样的内存位置。 bike1 (10,4,75)作为参数传递给构造函数,并且由于您在构造函数中执行必要的赋值操作,因此分别将10,4,75分配给cadence, gear, speed

    为了简短起见,在实例化类时会获得类变量的副本。

答案 1 :(得分:0)

所以自行车是一个对象。因此,它负责所有关于自行车的知识。因此,它必须记住有关自身的信息,以便在以后向自行车询问自己时,它可以告诉您信息。

此代码是构造函数,它初始化Bicycle对象。

所以我们正在做的是告诉这辆自行车你的装备是'startGear'一些值传递给构造函数。自行车将该值保存在一个字段中,以便以后可以引用它。