请问Ja​​va构造函数说明?

时间:2011-12-19 00:17:09

标签: java

我不明白构造函数是如何工作的 在下面的代码中,我知道我们有一个类,然后是两个变量。当您创建变量时,您为值创建容器,因此通过声明变量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;
    }
}

8 个答案:

答案 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 aint 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