class Array{
private int[] data;
public Array(int enu){
data = new int[enu];
}
public void setData(int[] data){
this.data = data;
}
public int[] getInfo(){//数组的输出
return this.data;
}
}
public class Arrayproject {
public static void main(String[] args){
Array a = new Array(5);
}
}
如上代码,如何在调用Array类的getInfo()时候输出数组内的所有值呢;
从代码的最优考虑来讲
能直接使用一个 for循环 然后 print输出 的形式吗,
亦或是
在主方法里通过for循环 然后 print输出呢?
这样会不会让主方法显得十分的繁杂呢?
请教各位大触们的最优解决方法。
各有利弊,放在主程序,主程序需要更多的代码,但是你的类和方法的适用范围更广,放在方法内,主程序是简单了,但是如果你希望换一种输出格式,那么就只好修改方法本身了,牺牲了灵活性。
两者兼得的办法是,使用接口,将依赖关系翻转,在方法内循环和迭代,在主程序里输出,这样就都兼顾了。如果你采纳本回答,可以写一个简单的例子。
常规情况下,学习的时候,怎么好用怎么来,工程中,你要敢用System.out.print,我就敢让你退回去重写。有标准的日志接口调用,不要用System.out.print.
关于要不要在循环内使用,我的建议是,放到循环外部。有两点你要明白。
第一点,基本上我们写的程序不会只是简单的输出到文件,大多数会是输出到某个变量,再传递给下一个函数,而这里打印出内容,主要是为了记录下调用痕迹。所以正式写程序时,会有日志级别这一说,基本信息用info级别,调试信息用debug级别。而为了不让日志量报表,大部分信息将会在debug中,只有少量的重要信息会在info中,又因为不想让我的这次日志被其他日志乱入(多线程时常见)所以我们最好一次写入日志中。
第二点,写代码时想看看变量里倒地是什么,这个时候初级阶段你会使用System.out.print将变量输出到控制台或文件,但我更建议你使用debug调试工具,直接查看变量在内存中的值,这对你以后的开发会有好入。
学习阶段就不要考虑这么多了,给你个最简单的方式
int[] ints = new int[5];
System.out.println(Arrays.toString(ints));
Array arr=new Array()
System.out.println(arr.getinfo().toString());
控制台会显示数组内容。
如果要一个个的显示出来,那就用循环呀
使用Arrays.toString(), 就不用for循环一个一个打印了
在getInfo里写
System.out.println(Arrays.toString(this.data));
Arrays有很多的处理数组的很好的方法,建议直接查看JDK文档,在线JDK文档