黑马程序员技术交流社区
标题: [请教]关于定义方法的?? [打印本页]
作者: Friends★ 时间: 2012-4-19 08:34
标题: [请教]关于定义方法的??
请问一下,定义方法时,括号中除了可以放入一个或多个参数外,还可以放入什么东西,比如说常量,一个类的类型什么的,这些可以啊。
今天看到一个同学写的代码??所以不明白了。
- 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;
- }
求详解??(每一种情况)
作者: 韩新凯 时间: 2012-4-19 08:40
传递的是对象
作者: 黄或俊 时间: 2012-4-19 08:51
你是对方法的定义不明白还是对:
add(o); //不明白?
public static void add(final Other o)
{
for(int x=0;x<5;x++)
{ System.out.println(o.i++);
}
方法定义格式:
修饰符 返回值类型 函数名(参数类型 参数1……){}
其实这里就是定义一个add方法,传递的参数类型是类类型,参数类型有很多种:基本数据类型、引用数据类型
作者: 张超超 时间: 2012-4-19 09:18
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个字节的整形值,所以也属于值传递.但是这个引用值和基本类型的值不一样,基本类型的值改变其内容就会改变值本身的内容.而引用值,我们需要通过该引用值找到存储在堆上的对象,然后改变该对象,才会使对象本身发生改变.如果只是改变引用值,那么该对象是不会发生改变,只不过指向另一个对象.
希望对你有帮助。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |