黑马程序员技术交流社区

标题: 我想定义一个函数....... [打印本页]

作者: 王晨宇    时间: 2012-6-12 13:08
标题: 我想定义一个函数.......
本帖最后由 王晨宇 于 2012-6-12 13:16 编辑

/*需求
我想让定义一个函数。让函数自己能够打印数组,也能打印常量。并且,他们都在一个函数封装里面。
*/
//思路:函数类型为空,需要定义变量。
//步骤:封装在一个函数里面。
/*
//尝试失败
class test02
{
        public static void main(String[] args)
        {
                int []arr=new int[]{3,5,1};
                print(5);

        }
        public static void print(int []arr,int a)
        {
                System.out.println("a="+a);
                for (int x1=0;x1<arr.length-1 ;x1++ )
                {
                        
                                System.out.println("/t"+"arr="+arr[x1]+";");
                        
                }
        }
}
*/
求高手指导。如果封装在两个函数中。我可以用重载函数。
附上代码:
class test02
{
        public static void main(String[] args)
        {
                int []arr=new int[]{3,5,1};
                print(arr);
                print(5);
        }
        public static void print(int []arr)
        {


                for (int x1=0;x1<arr.length ;x1++ )
                {
                        
                                System.out.println("arr="+arr[x1]+";");
                        
                }
        }
        public static void print(int a)
        {

                System.out.println("a="+a);

        }
}

但是我想封装在一个函数里面。


作者: 刘春发    时间: 2012-6-12 13:15
可以用可变参数  大致如下
public class var {

        public static void main(String[] args) {
                int[] arr = {4,6,3,8};
                printInt(3);
                printInt(arr);
               
        }
        public static void printInt(int...args){
                for(int i=0;i<args.length; i++)
                        System.out.print(args[i]);
                System.out.println();
        }
}
作者: 郑传庆    时间: 2012-6-12 13:50
楼主,是不是想要这样的?
class test02 {
        static int arry[];
        static int args;
        @SuppressWarnings("static-access")//指示应该在注解元素中取消显示指定的编译器警告,建议你去看下张老师的视频,里面有关注解的介绍
        public static void main(String[] args) {
                int[] arr = new int[] { 3, 5, 1 };
                test02 t = new test02(5,arr);
                t.print();
        }
       
        @SuppressWarnings("static-access")
        public test02(int args1,int...args){
                arry=args;
                this.args = args1;
        }
        public static void print() {

                System.out.println("args = "+args);
                for (int x1 = 0; x1 < arry.length - 1; x1++) {
                        System.out.println("/t" + "arr=" + arry[x1] + ";");
                }
        }
}
作者: 胡卿    时间: 2012-6-12 15:11
本帖最后由 胡卿 于 2012-6-12 15:19 编辑

class Test02
{
        public static void main(String[] args)
        {
                int []arr=new int[]{3,5,1};
                print(arr,5);//这里需要输入全部参数               
        }
        public static void print(int []arr,int a)//这里有两个参数
        {
                System.out.println("a="+a);
                 System.out.print("arr=[");
                for (int x1=0;x1<arr.length ;x1++ )
                {
                        
                                System.out.print(arr[x1]+",");   
                }
               System.out.println("]");
        }
}

作者: 王晨宇    时间: 2012-6-12 18:51
本帖最后由 王晨宇 于 2012-6-12 19:01 编辑
ttkl123654 发表于 2012-6-12 13:37


  2L沙发贴出来的思路我看得明白。你的第一个方法的思路我看不明白,我才只学到第四天。。。
2L能够解释int...args这是什么意思吗?int...args//给定义了一个可变的量?不限制数据类型或者常量数组,byte、short也能用吗?

作者: 王晨宇    时间: 2012-6-12 18:57
胡卿 发表于 2012-6-12 15:11
class Test02
{
        public static void main(String[] args)

你的代码不是我的需求啊。
如果我只想打印print(5),你的代码就是失效了啊。




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