关于java函数传值的学习深化
2012-10-02 13:58
183 查看
java函数传递
1.值传递,传递过去的值的副本
2.对象传递,传递过去的是对象地址的副本。当然数组传递的过去对象的地址。
所以,在函数中,如果给对象进行新建的操作等等,都不会影响原来的数据,但是如果更具对象的数据来进行修改的话,就可以成功的修改数据成功
以上是测试代码:
第一个是bean类
第二个是测试代码:
第一个测试的结果:传递null对象,在函数中赋值的结果:
Exception in thread "main" java.lang.NullPointerException
at com.test1.Test2.main(Test2.java:17)
第二测试的结果:修改成功
num=-1000
string=king
data=Tue Oct 02 14:03:02 CST 2012
1.值传递,传递过去的值的副本
2.对象传递,传递过去的是对象地址的副本。当然数组传递的过去对象的地址。
所以,在函数中,如果给对象进行新建的操作等等,都不会影响原来的数据,但是如果更具对象的数据来进行修改的话,就可以成功的修改数据成功
以上是测试代码:
第一个是bean类
package com.test1; import java.util.Date; //简单的bean类,用于测试简单的对象问题,有date类型,int数据,string数据 public class DataBean { private int num; private String string; private Date date; public int getNum() { return num; } public void setNum(int num) { this.num = num; } public String getString() { return string; } public void setString(String string) { this.string = string; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } }
第二个是测试代码:
package com.test1; import java.util.Date; public class Test2 { // 测试java 普通对象函数传值的问题 public static void main(String[] args) { //========测试是否建立的问题 //建立一个空对象 // DataBean dataBean = null; // //在函数里面简历 // create(dataBean); // //报错,因为函数传递过去的是地址的引用 // System.out.println("num="+dataBean.getNum()); // System.out.println("string="+dataBean.getString()); // System.out.println("data="+dataBean.getDate().toString()); // ===测试修改内容的问题 DataBean dataBean = new DataBean(); dataBean.setNum(0); dataBean.setString("adsjakldjs"); dataBean.setDate(new Date()); // 修改内容 change(dataBean); // 修改成功,传递过去的对象的地址副本,在这地址上做修改,结果会保存的,但如果重新建立一个dataBean的话,就不会修改成功 System.out.println("num=" + dataBean.getNum()); System.out.println("string=" + dataBean.getString()); System.out.println("data=" + dataBean.getDate().toString()); } public static void create(DataBean dataBean) { dataBean = new DataBean(); dataBean.setNum(1000); dataBean.setString("ljz"); dataBean.setDate(new Date()); } public static void change(DataBean dataBean) { dataBean.setNum(-1000); dataBean.setString("king"); dataBean.setDate(new Date()); } }
第一个测试的结果:传递null对象,在函数中赋值的结果:
Exception in thread "main" java.lang.NullPointerException
at com.test1.Test2.main(Test2.java:17)
第二测试的结果:修改成功
num=-1000
string=king
data=Tue Oct 02 14:03:02 CST 2012
相关文章推荐
- 关于JAVA学习的书籍介绍
- Oracle的学习三:java连接Oracle、事务、内置函数、日期函数、转换函数、系统函数
- Java学习笔记35:Java常用字符串操作函数
- 关于java读取文件IO流学习总结(二)
- 关于java读取文件IO流学习总结(一)
- 嘿,程序员——关于java中的语句、函数与数组知识
- Java学习中关于用cmd执行.class文件
- JAVA学习日志 关于dowhile在周易数字卦程序里的应用
- 关于张老师java视频的学习(十二)
- 关于java字节码框架ASM的学习
- 关于java的重写和隐藏的学习笔记。
- java学习 常用的java函数(四)
- SIPP 代码学习笔记3- 关于函数
- Java学习中关于I/O的理解(File类)1
- js基础学习之--关于 Cookie 的增删改查的封装函数
- 黑马程序员_Java学习日记1_关于数组的相关应用
- Java学习笔记~关于类与对象的总结01
- Java8学习计划--关于多核多线程并发编程-Java8-CompletableFuture 1的介绍
- Java中执行存储过程和函数(web基础学习笔记十四)
- Java学习第4天:函数