Java中数组能作为成员变量吗?
public class Test03 {
char[]ch={'a','b','c'};
String str="good";
public static void main(String[] args) {
Test03 test03=new Test03();
System.out.println(test03.ch);
}
}
为什么输出的是内容abc而不是地址值还有Java中数组能作为成员变量吗 展开
第一个问题:
数组是作为某个类的成员还是数组作为方法中的局部变量和控制台输出都没有关系。答主可以试一下,如果整型作为某个类的成员变量,字符数组作为方法中的局部变量,输出的结果还是一样的。
所以问题为:为什么字符数组和整型数组在控制台显示的一个是数组元素拼接一个是地址值?
打印字符数组和整型数组在printIn的重载方法是不一样的,System.out.println()方法,打印不同类型的对象,控制台输出的数据是一不一样的,点击打印char数组的out.println方法进入源码:
最后一直进入write()方法:
解释一下:
textOut是BufferedWriter对象,代表着向控制台输出信息的输出流对象.
charOut是OutputStreamWriter对象,是用来将字节转换成字符的转换流对象.
textOut包装了charOut.
textOut.write(buf);调用到以下方法:
该方法就是将char数组的每个字符挨个输出到控制台中。
而进入整型数组打印的方法:
则是直接输出整型数组的地址值。
第二个问题:
数组可以作为成员变量。
题主代码上已经有体现。
java中变量有三种类型:
类变量:独立于方法之外的变量,用static修饰
实例变量:独立于方法之外的变量,不过没有static修饰
类的每个对象特定的变量也是实例对象
局部变量:类的方法中的变量
示例:
public class variable{
// 类变量
static int a = 0;
// 实例变量 实例变量声明在类内而不是方法中
String str = "Java is easy to learn.";
public void method{
// 局部变量 局部变量是声明在方法中的 ,局部变量在使用前必须初始化
int b = 1;
int x;
int z = x + 1;
(这就是错误的代码,无法编译)
}
}
资料参考链接:网页链接
2020-10-06 · 学动漫、设计、电竞、电商、短视频、软件等
在java中数组是可以做成员变量的。
比如经常会用到的String类,内部就是用字符数组作为成员变量的。
如果有帮助到你,请点击采纳。
你要想打印数组的每一个元素,需要用for循环处理。