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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Friends★ 中级黑马   /  2012-4-19 08:34  /  1490 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请问一下,定义方法时,括号中除了可以放入一个或多个参数外,还可以放入什么东西,比如说常量,一个类的类型什么的,这些可以啊。


今天看到一个同学写的代码??所以不明白了。



  • class Text_2
  • {
  •         public static void main(String[] args)
  •         {
  •                 Other o=new Other();
  •                 add(o);
  •         }
  •         public static void  add(final Other o)
  •         {
  •                         for(int x=0;x<5;x++)
  •                         { System.out.println(o.i++);
  •         }
  •                 }
  • }
  • class Other
  • {
  •         public int i;
  • }
求详解??(每一种情况)


评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

3 个回复

倒序浏览
传递的是对象
回复 使用道具 举报
你是对方法的定义不明白还是对:
add(o);   //不明白?
public static void  add(final Other o)
        {
                        for(int x=0;x<5;x++)
                        { System.out.println(o.i++);
        }

方法定义格式:
修饰符 返回值类型 函数名(参数类型 参数1……){}
其实这里就是定义一个add方法,传递的参数类型是类类型,参数类型有很多种:基本数据类型、引用数据类型

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
  Other o=new Other();
                add(o);
        }

        public static void  add(final Other o)
        {
                        for(int x=0;x<5;x++)
                        { System.out.println(o.i++);
        }
这里传递的是other对象的引用,关于对象的引用的传递,这里有说明:


Java中实际上只有值传递一种,引用其实就是一个4字节的整形值用来存放存在堆上对象的地址.
因此引用传递实际上是传递这个4个字节的整形值,所以也属于值传递.但是这个引用值和基本类型的值不一样,基本类型的值改变其内容就会改变值本身的内容.而引用值,我们需要通过该引用值找到存储在堆上的对象,然后改变该对象,才会使对象本身发生改变.如果只是改变引用值,那么该对象是不会发生改变,只不过指向另一个对象.

希望对你有帮助。

评分

参与人数 1技术分 +1 收起 理由
贠(yun)靖 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马