有关我编写的Java构造函数的问题

时间:2019-12-28 20:56:49

标签: java constructor

我正在尝试练习构造函数的工作方式,并编写了一个简单的构造函数

arrtest2 shirley = new arrtest2(arrtest2.b);

其中arrtest2是一段代码,用于将二维数组中的整数加倍。

package christmas;
public class arrtest2 {

    static int[][] b={{10,20},{30,40}};

    public arrtest2(int[][] a) {


        for(int i = 0; i < 2; i++) {

            for (int j = 0 ;j<2; j++) {
                a[i][j] = a[i][j]*2;
                System.out.println(a[i][j]);
                System.out.println(a[i][j]);
            }
        }

    }
}

代码运行。

但是我不了解的是我创造的叫做雪莉的“东西”是什么。我知道它是一个构造函数,但是它是什么?...它是一个对象还是一个数组,还是两者都存在。如果它是一个数组,我可以再次使用它吗……例如,Shirley = {{20,40},{60,80}}吗?

对不起,我只是想学习一个基本问题。

3 个答案:

答案 0 :(得分:1)

“ Shirley”被称为对象引用变量,其中包含对象new arrtest2

  

如果它是一个数组,我可以再次使用它吗……例如,Shirley = {{20,40},{60,80}}

不完全是。但是您可以使用引用变量来获取对象的属性,在这种情况下为“ b

您可以详细了解Here

答案 1 :(得分:1)

shirley 是您的类 arrtest2 的实例(顺便说一句,类名约定为驼峰式-可以使用ArrTest2来命名)。

在这种情况下,您有一个期望使用多维数组的构造函数-int [] []。这意味着,如果不将此数组作为参数传递,就无法创建arrtest2实例。

我修改了一些代码,以接收数组作为参数,应用更改并将其分配给内部数组。然后,您可以使用评估器getArray()检索修改后的数组

希望它有助于阐明如何使用构造函数参数。

public class ArrTest2 {

    static int[][] b = {{10,20},{30,40}};

    public arrtest2(int[][] a) {
        for(int i = 0; i < 2; i++) {
            for (int j = 0 ;j<2; j++) {
                b[i][j] = a[i][j] * 2;
                System.out.println(a[i][j]);
                System.out.println(b[i][j]);
            }
        }
    }

    public int[][] getArr() {
       retun b;
    } 
}

答案 2 :(得分:1)

考虑以下代码:

arrtest2 shirley = new arrtest2(arrtest2.b)

new arrtest2(arrtest2.b)创建类arrtest2的实例,并调用构造函数public arrtest2(int[][] a)。该对象的句柄已分配给变量shirley,该变量也声明为类型arrtest2

如果arrtest2类中还有其他方法,则可以使用shirley来调用它们。

例如,将此方法添加到arrtest2

public void greetMe(String s) {
     System.out.println("Hello " + s);
}

然后您可以通过shirley.greetMe("Tom")调用它,它将显示Hello Tom