A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王晨宇 初级黑马   /  2012-6-12 13:08  /  1579 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王晨宇 于 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);

        }
}

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

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

5 个回复

倒序浏览
可以用可变参数  大致如下
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();
        }
}

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
楼主,是不是想要这样的?
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] + ";");
                }
        }
}

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
本帖最后由 胡卿 于 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 19:01 编辑
ttkl123654 发表于 2012-6-12 13:37


  2L沙发贴出来的思路我看得明白。你的第一个方法的思路我看不明白,我才只学到第四天。。。
2L能够解释int...args这是什么意思吗?int...args//给定义了一个可变的量?不限制数据类型或者常量数组,byte、short也能用吗?
回复 使用道具 举报
胡卿 发表于 2012-6-12 15:11
class Test02
{
        public static void main(String[] args)

你的代码不是我的需求啊。
如果我只想打印print(5),你的代码就是失效了啊。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马