Java 直觉理解
在本页上: 类包含用于从中创建对象的构造函数 班级蓝图。构造函数声明看起来像方法 声明,除非它们使用类的名称并且没有 返回类型。例如,Java 直觉理解,java,Java,在本页上: 类包含用于从中创建对象的构造函数 班级蓝图。构造函数声明看起来像方法 声明,除非它们使用类的名称并且没有 返回类型。例如,Bicycle有一个构造函数: public Bicycle(int startCadence, int startSpeed, int startGear) { gear = startGear; cadence = startCadence; speed = startSpeed; } 要创建名为myBike的新自行车对象,需要使用构
Bicycle
有一个构造函数:
public Bicycle(int startCadence, int startSpeed, int startGear) {
gear = startGear;
cadence = startCadence;
speed = startSpeed;
}
要创建名为myBike
的新自行车对象,需要使用构造函数
由新操作员调用:
Bicycle myBike = new Bicycle(30, 0, 8);
新自行车(30,0,8)
在内存中为对象和
初始化其字段。”
所以我之前和那里都做过JS,声明一个新对象类似于var newObject=newbicycle(params);
然而,我在这里注意到的是,当您创建一个新对象时,您会说Bicycle myBike=newbicycle(params);
为什么单词Bicycle使用了两次?它是如何工作的?第一部分(在
=
定义对象引用之前),第二部分(在=
之后)构造一个新对象。=
执行赋值。第一部分(在=
定义对象引用之前),第二部分(在=
之后)构造一个新对象。=
进行赋值。在JS中,每个变量都称为var
类型。它是一种泛型,但在java
中,每个对象都有一种类型,比如Bicycle
。因此它基本上取决于语言遵循的语法
Bicycle myBike=新自行车(30,0,8);
在此Bicycle myBike
中声明了Bicycle
的引用变量myBike
类型和新自行车(30,0,8)
创建Bicycle
的新实例,初始值为30,0,8
,=/code>将该实例分配给myBike
变量。在JS中,每个变量都称为var
类型。它属于泛型,但在java
中,每个对象都有一个类似Bicycle
的类型>这基本上取决于语言所遵循的语法
Bicycle myBike=新自行车(30,0,8);
在此Bicycle myBike
中声明了Bicycle
的引用变量myBike
类型和新自行车(30,0,8)
创建Bicycle
的新实例,初始值为30,0,8
,=
将此实例分配给myBike
变量。Java更喜欢显式声明对象的预期用途。例如,在sim卡中创建一个整数时,如果使用int,则在前面加上前缀按照ilar的方式,Java编译器希望知道您要创建的对象将是什么。因此,我们必须告诉它它将是一个特定的类。所有Java变量(据我所知)遵循同样的模式。这是语言的设计方式。其他语言通常使用类似的结构,或者有空间容纳var变量
单词Bicycle的第一个实例声明您正在使用的变量类型。第二个实例用于创建Bicycle类型的新对象。单词的第二个用法与调用方法相同
虽然我同意,但在这样的情况下,它似乎有点多余。我认为这是因为Java的面向对象特性,我们需要限制它。(例如,您可能会遇到有趣的情况,对象从其他对象继承).Java更喜欢显式声明对象的预期用途。例如,当您创建一个整数时,如果使用int作为前缀。同样,Java编译器希望知道您要创建的对象将是什么。因此,我们必须告诉它它将是一个特定的类。所有Java变量(据我所知)遵循同样的模式。这是语言的设计方式。其他语言通常使用类似的结构,或者有空间容纳var变量
单词Bicycle的第一个实例声明您正在使用的变量类型。第二个实例用于创建Bicycle类型的新对象。单词的第二个用法与调用方法相同
虽然我同意,但在这种情况下,它似乎有点多余。我认为这是因为Java的面向对象特性,我们需要限制它(例如,可能会出现对象从其他对象继承的有趣情况)
在“一个声明”中发生的两件主要事情:
一,
这是变量声明,其中指定了变量名称和类型
二,
这是变量初始化,在这里赋值
在“一个声明”中发生的两件主要事情:
一,
这是变量声明,其中指定了变量名称和类型
二,
这是变量初始化,在这里赋值。在“头先Java”中解释了另一种方法,您可能会发现它更直观一些(对我来说更有意义)
接受这个声明
Bicycle myBike=新自行车(参数);
并将其分解为:
Bicycle myBike;
myBike = new Bicycle(params);
现在将myBike
想象为遥控器,将bike(params)
想象为遥控器控制的对象
这两条线是这样说的:
第一行:
制作一个名为myBike的遥控器,用于控制Bicycle类型的对象
然后第二行是:myBike将控制的特定自行车是一辆具有这些参数的新自行车。
我认为这是一个更直观的解释
按照你的表达方式,它只是把这些语句放在一行中(以节省一些空间)
因此,在等号的左边,您告诉编译器生成一个名为myBike
的变量,该变量只能链接到类型为Bicycle的对象
Bicycle myBike;
myBike = new Bicycle(30, 0, 8);
Bicycle myBike;
myBike = new Bicycle(params);