我不明白构造函数是如何工作的 在下面的代码中,我知道我们有一个类,然后是两个变量。当您创建变量时,您为值创建容器,因此通过声明变量x和y,我们创建了两个容器,它们包含0,0。
为什么构造函数,为什么a和b?
public class Point {
public int x = 0;
public int y = 0;
//constructor
public Point(int a, int b) {
x = a;
y = b;
}
}
答案 0 :(得分:3)
构造函数用于初始化类的实例。
每个实例的x和y值都初始化为传递给构造函数的值,这里参数名为“a”和“b”。
一般来说,对实例变量的直接公共访问是不受欢迎的,而是通过getter和setter来访问它们。
答案 1 :(得分:0)
此构造函数用于另一个类。在这种情况下,看起来你正试图在图上创建一个“点”,所以在另一个类中使用这个假设,你将使用这个构造函数来创建Point类的实例。
public class Example {
private Point pt;
public static void main(String[]args) {
pt = new Point(20,10);
}
}
此示例创建Point类的新实例,其中x为20,y为10.
答案 2 :(得分:0)
我们这里有代码,我会逐行解释。
public class Point {
public int x = 0;
public int y = 0;
//constructor
public Point(int a, int b) {
x = a;
y = b;
}
}
首先我们有public class Point {
,这是课程的开始。所有类函数/变量都在这个大括号内。
public int x = 0;
public int y = 0;
x和y在此声明。通过在任何函数中声明它们外部,我们将它们设置为全局并且可供整个类访问。这两个变量是public
,这意味着它们可以在脚本之外访问,但由于它们不是static
,因此只能在new
实例之后从脚本外部调用它们。 Point
已创建。
public Point(int a, int b) {
这行代码称为构造函数。我们可以看到这一点,因为它(a)没有返回类型,(b)与类共享相同的名称。当通过new
关键字创建类的新实例时,将调用该教师。 I.E. new Point()
。
int a
和int b
是两个必需变量,因此您必须创建此类的新实例,如new Point(5, 10);
,其中5表示A,10表示B.
在构造函数内部,您要设置变量x和y以包含传递给构造函数的两个值。因此X将使用我的示例变为5,Y将变为10。
X和Y不会为0,因为它们都已使用0值创建,现在设置为不同的值。
重要的是要注意构造函数不必具有参数,如果您不需要将任何参数传递给它,它可以简单地写为public Point() {
。
答案 3 :(得分:0)
“为什么是构造函数?” 答案:用户“应该”通过给变量赋值2来实例化Point类。这表示谁想要使用Point,给予价值并使用它。 “为什么a和b?” 答案:2明确给出了Point类变量的用户值。你甚至可以这样忘记a和b:
enter code here: public class Point {
public int x = 0;
public int y = 0;
//constructor
public Point(int x, int y) {
this.x = x;
this.y = y;
}
}
答案 4 :(得分:0)
让我通过一个非常简单的理解示例向您解释,以便您能够轻松地学习和适应它。
class store
{
protected String nameproduct;
protected String idproduct;
public store(String nameproduct, String idproduct) {
this.nameproduct = nameproduct;
this.idproduct = idproduct;
}
}
根据上面的代码,我们将nameproduct和idproduct声明为String。为什么我使用protected,因为当您将此类继承到STILL RELATED的其他类时,您不需要声明这些变量。所以变量就像是准备构建的原材料,构造函数是开发它的工具。
答案 5 :(得分:-1)
“x”和“y”值初始化为从构造函数传递的值,在本例中为“a”和“b”
答案 6 :(得分:-1)
当Point类被实例化时,x和y的值为0.但是当通过给出用户值来实例化类时,它会使用此构造函数并将x和y的值设置为用户的预期。
答案 7 :(得分:-1)
即;一个人可以创造:
Point pt=new Point(); //point which has x and y as 0
OR
Point pt=new Point(10,5); //point which has x=10 and y=5