- 热门文章:
- · Java学习从入门到精通[书籍]
- · Java学习从入门到精通
- · Java面试陷阱第三波
- · Java面试陷阱第二波
- · Java Learn Steps
- · java做的比较完善的FTP连接上传下载文件
- · 用Struts开发国际化程序思路
- · Java实现网络监听
- · ANT安装、配置
- · 动态编译实例代码
- · Java 面试中的陷阱
- · Java 学习方法浅谈
上一篇:java Excel API简介(翻译) >>
Java中向方法传参数只有传值一种!
在Java中,参数的传递严格意义上讲都是传值的,只不过简单很容易分清楚。而对于对象,有些复杂。
首先,在Java中是先声明一个类的变量。然后,用类生成一个类的实例,也就是在内存中的类的实例区域,最后把这个区域的指针赋给类的这个变量。注意,变量中存的是指向对象的指针。
若是按传址传参数,是要改变这个对象变量所指的内存对象区域,也就是要在方法内把新对象赋给方法外的对象变量。但是,这在Java中办不到。因为Java是把对象变量中的对象指针传入方法,并没有把变量本身的地址传入方法;在方法中,会生成新变量接受这个对象的指针。所以,在Java方法中,可以改变当前对象中的内容,却不能改变方法外边变量的值,即所指向的对象。对于传值、传址的分析就是为了在应用中少犯错误。其他是次要的。
《此位置本有图片,因不能上传,故删除》
0: public class DemoTest {
1: public String x;
2: public void setX(String x){
3: this.x=x;
4: }
5: public void test(DemoTest ok){
6: ok=new DemoTest(); this.x="333";
7: }
8: public String getX(){
9: return this.x;
10: }
11: public static void main(String[] args) {
12: DemoTest ob = new DemoTest();
13: DemoTest obp = new DemoTest();
14: ob.setX("111");
15: System.out.println("ob.X"+ob.getX());
16: obp.test(ob);
17: System.out.println("ob.X"+ob.getX());
18: ob.test(ob);
19: System.out.println("ob.X"+ob.getX());
20: }
21: }
对于上面的程序,要分清楚对象变量和对象实体。
注意在上面的方法调用是一个可能引出错误的调用,不能说明传值和传址的区别。
下一篇:Java学习从入门到精通[书籍] >>
相关文章:
- · Java核心编程:卷I——学习小记
- · Java语言已成为手机通讯标准 微软恐难夺天下
- · 获得本机IP和名称
- · 将 Java 小程序迁移到 Microsoft J# 浏览器控件
- · 密钥对的存储和加载
- · 我的JAVA工具
- · JAVA编程思想 课程进展 一
- · java文件的相对路径
- · java内部类的总结
- · Java 面试中的陷阱
- · 自己动手编写Eclipse扩展点
- · log4j学习(上)
- · 一个简单的表达式求值类,java
- · 一个简单的 CORBA/java 示例
- · 实现可自定义的搜索功能
- · 用JAVA开发CORBA应用实例
- · Java性能探寻
- · Java扫雷程序,初试Java
- · 为什么Java中继承是有害的
- · Java 线程综合述
- · 用Java编写扫雷游戏--算法思考
- · java初学者要搞清
- · java制作欢迎屏幕123
- · 浅谈Java中的存储空间类型
- · Java变量类型间的相互转换
- · JAVA反射技术(二)
- · java反射技术(一)
- · 第四讲 Java的例外处理和I/O流
- · 第三讲 Java语言中的面向对象特性
- · 第二讲 Java语言基础知识
- · 第一讲 Java语言概述
- · 用java学习数据结构--单链表
- · 用Java创建带图标和缩进的JComboBox
- · Java基础之关键字
- · 用Java创建带图像的菜单
- · 用java读写ini配置文件
- · Java性能之我见
- · Java程序的性能优化StringBuffer与Vector
