我正在尝试练习构造函数的工作方式,并编写了一个简单的构造函数
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}}吗?
对不起,我只是想学习一个基本问题。
答案 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