引用数据类型和基本数据类型

引用数据类型和基本数据类型

ID:12520740

大小:36.50 KB

页数:4页

时间:2018-07-17

引用数据类型和基本数据类型_第1页
引用数据类型和基本数据类型_第2页
引用数据类型和基本数据类型_第3页
引用数据类型和基本数据类型_第4页
资源描述:

《引用数据类型和基本数据类型》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、引用数据类型和基本数据类型的一些区别Ø首先先举几个引用数据类型的例子:StringStringBuffer类(包括自己定义的一些类和包中有的类)integer等Ø下面的是基本数据类型IntdoublecharBoolean等表面上可以看出两个区别(单从类的角度来看):1.引用数据类型必须要实例化之后才可以使用,(String和integer除外)注:String是一个很特殊的引用数据类型Inteter是在在使用的过程中会自动的装箱和拆箱例如:StringBuffersb=newStringBuffer();2.引用数据类型或多或少的会

2、有一些属性和方法例如:类里面包含的就是属性和方法,比如StringBuffer里面就有append()方法还有charAt()方法深入点看:3.引用数据类型是指针的指向,基本数据类型则在内存中直接得到1.下面一个列子是一个值传递的过程例如:下面是一个类的方法publicvoidchangeNumber(inta,intb){inttemp=a;a=b;b=temp;System.out.println("交换后的两数a="+a+"b="+b);}在main方法中publicstaticvoidmain(String[]args){//

3、实例化的一个过程Exam9ex=newExam9();inta=10;intb=5;System.out.println("交换前的两数a="+a+"b="+b);//调用交换的方法ex.changeNumber(a,b);System.out.println("方法调用后的两数a="+a+"b="+b);}运行的结果是:交换前的两数a=10b=5交换后的两数a=5b=10方法调用后的两数a=10b=5这个是许多人都会犯的错误,包括我也犯了这个错误就是:方法调用后的两数a=5b=10解释:a变量和b变量在内存中的值已经有了,并且值是固

4、定的基本数据类型的传递是一个值传递的过程2.下面的一个例子是一个引用类型的传递里面有一个user类:里面有一个属性:Stringname=“tom”;publicvoidchangeName(Useruser,Stringname){user.name=name;}Useruser=newUser();System.out.println("更改前的用户姓名:"+user.name);//调用更改名字的方法ex.changeName(user,"jack");System.out.println("更改后的用户姓名:"+user.na

5、me);结果是:更改前的用户姓名:tom更改后的用户姓名:jack这个是个引用的数据类型,引用数据类型就是一个指针的一个指向。1.这个例子也是一个引用数据类型的例子publicvoidchange(StringBufferbufferA,StringBufferbufferB,StringBufferbufferC){bufferA=newStringBuffer("AA");bufferB.append("B");bufferC=bufferA;bufferC.append("C");System.out.println("方法中:

6、");System.out.println(bufferA);System.out.println(bufferB);System.out.println(bufferC);}/***@paramargs*/publicstaticvoidmain(String[]args){StringBufferbufferA=newStringBuffer("A");StringBufferbufferB=newStringBuffer("B");StringBufferbufferC=newStringBuffer("C");Exam10ex

7、=newExam10();ex.change(bufferA,bufferB,bufferC);System.out.println("方法外");System.out.println(bufferA);System.out.println(bufferB);System.out.println(bufferC);}运行的结果:方法中的值大家都会的:方法中:AACBBAAC方法外ABBC关键是方法外面的System.out.println(bufferA);这个比较难理解:因为在方法体内部,有实例化了一个A对象,所以在方法里面的buf

8、ferA指向的是方法里面的A对象。和外面的没有联系。所以外面的还是指向原来的A对象,所以结果是A。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。