黑马程序员技术交流社区

标题: 一段数组代码的小问题 [打印本页]

作者: yaowenjiang    时间: 2011-12-4 22:58
标题: 一段数组代码的小问题
本帖最后由 yaowenjiang 于 2011-12-7 18:06 编辑

public class TestFive{
        public static void main(String [] args){
                int [] a=new int [args.length];
                for(int i=0;i<a.length;i++){
                        a=Integer.parseInt(args);
                }
                print(a);   //这个起的什么作用呢   就是看不懂。。。。为什么要加这个才可以
        }
        public static void print(int [] a){
                for(int j=0;j<a.length;j++){
                        System.out.print(a[j]+" ");
}
}
}
作者: 应国炎    时间: 2011-12-5 00:29
你是想调用print方法来打印数组里的数据,当然得在主方法里调用print方法了,要不他怎么知道你要干什么
作者: 常登凯    时间: 2011-12-5 01:08
汗,你不是在下面定义了一个打印数组里全部数据的方法public static void print(int [] a)么?
main方法所做的是将args[]数组里的参数转换成int数据存到a[]里,然后下面定义的print()方法就是将a[]数组里的数据一个个打印出来。那么在main方法最后肯定要调用这个print方法了,要不然他只是将args数组里的参数存进a数组了,但是并没有打印出来,就看不到效果了。
作者: yaowenjiang    时间: 2011-12-5 09:55
我是才学的   方法的调用可以直接  这么用的吗   不是需要引用的吗
作者: 李晓斌    时间: 2011-12-5 12:15
只要在同一个类里面的就可以直接调用该方法了了。否则的话,就要创建新对象,让对象去调用方法。
另外,你这句话int [] a=new int [args.length];我很好奇,主函数中定义的Sting []args数组的默认长度是0啊,你这里再新建一个数组a的长度也就变成0了,
那么在print方法中for(int j=0;j<a.length;j++),0<0? 你这个程序能运行出来结果嘛?
作者: 韩军博    时间: 2011-12-5 13:46
楼主不明白的地方就是个简单的方法的调用:
可以如下思考:

public class TestFive{
         public static void main(String [] args){
                 int [] a=new int [args.length];
                 for(int i=0;i<a.length;i++){
                         a[i]=Integer.parseInt(args[i]);
                 }

           for(int j=0;j<a.length;j++){                        //此处的for循环就相当于是楼主程序中的Print(int [] a)方法。
                         System.out.print(a[j]+" ");
              }      
}
希望楼主还是将最基础的部分搞明白。
作者: 刘基军    时间: 2011-12-5 15:01
  1. public class TestFive
  2. {
  3.         public static void main(String [] args)
  4.         {
  5.                 int [] a=new int [args.length];
  6.                 for(int i=0;i<a.length;i++)
  7.                 {
  8.                         a[i]=Integer.parseInt(args[i]);
  9.                 }
  10.                 print(a);   //这个起的什么作用呢   就是看不懂。。。。为什么要加这个才可以
  11.                 //回答:1.现在只需看main()方法的内容,main中首先将接收到的数据进行了处理,处理后,那就应该会输出结果(不然我们编译运行后看不到效果,谁知道做的对不对,是吧),推断出print(a)语句,是用于输出结果的(再看print单词,打印的意思嘛);
  12.                 //      2.另外当我们看到"print(a)"(单词+括号)的格式时,可以确定,这肯定是调用方法嘛。那么接下来就要找到这个方法的来源,在一个类中能直接以一个方法名进行方法调用,则这个方法是该类自己的方法;
  13.                 //      3.接着可以看到类中确实还有一个静态方法print(),查看方法中的语句,可以确认,该方法的功能是:接收一个int数组,将其打印出来(把它定义成一个方法有好处,比如若你还需要在main()方法中,进行数组的打印,那么直接一句方法调用即可完成,而不需要再写一遍for循环);
  14.                 //      4.另外,该方法修饰为静态,即为类方法:所以该语句还可以写成:TestFive.print(a);(写成这样,那就直接可以看出,print()是TestFive类的方法)
  15.         }
  16.        
  17.         public static void print(int [] a)
  18.         {
  19.     for(int j=0;j<a.length;j++)
  20.     {
  21.             System.out.print(a[j]+" ");
  22.                 }
  23.         }
  24. }
复制代码

作者: yaowenjiang    时间: 2011-12-5 18:26
李晓斌 发表于 2011-12-5 12:15
只要在同一个类里面的就可以直接调用该方法了了。否则的话,就要创建新对象,让对象去调用方法。
另外,你 ...

可以运行的    只是运行之后什么都没有   要运行的同时输入什么都会打印出什么来的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2