引用传递及其应用
上一篇 / 下一篇 2013-12-20 23:00:59 / 个人分类:java
本章目标51Testing软件测试网I:||O1S#ZVY z}E
掌握三种引用传递的操作范例51Testing软件测试网WQ(tjz p
掌握引用传递的应用
$ifUK7l051Testing软件测试网N6DrzWI,R
三道引用传递范例
VK9sF;[+Q z0class Demo{51Testing软件测试网 @8l U#C p#c6\^)G Z4^ h int temp = 30 ; //此处为了访问方便,属性暂不封装 (UN'}0{Q0u7~/o0} .wfl4\xG)@0[u-|3@@CxJ+LVx;R0 public class RefDemo01{ 2IRO~DC0public static void main(String args[]){51Testing软件测试网g1|R)h!z-}2d"s Demo d1 = new Demo() ; //实例化Demo对象,实例化后里面的temp = 30 *kY;nt(l0d1.temp = 50 ; //修改temp属性的内容51Testing软件测试网&V8m~/t"J,nQ{gJ+_2w System.out.println("fun()方法调用之前:" + d1.temp) ; H:]t%o M6Pd\5@ D0fun(d1) ;51Testing软件测试网g*wC8E&qh(e(Dk.@4RY System.out.println("fun()方法调用之后:" + d1.temp) ; W(S-n$t~$gq0} O EO1An0rB,{5R@,B}S4J*O0 public static void fun(Demo d2){ //此处的方法由主方法直接调用51Testing软件测试网t!W6R)m*MJF@a d2.temp = 1000 ; //修改temp值 Fbsw^ ]9]\bM^0}51Testing软件测试网fz S9v mq } ;51Testing软件测试网}Ms'iXiN#vJ |
输出结果:51Testing软件测试网(v8}8?yGBm
fun()方法调用之前:5051Testing软件测试网 Hs!D}'CGw1[1^x fun()方法调用之后:1000 &@/F4X qUQ*S"v%t{V0 |
"Qw3V:_3|5J.x y8u#C0
public class RefDemo02{51Testing软件测试网s.@pM~ [4B9C public static void main(String args[]){ :v6a!cT/cz~0String str1 = "hello" ; //实例化字符串对象 I Ys/o^+Zv0System.out.println("fun()方法调用之前:" + str1) ;51Testing软件测试网2bg:Z#il\lCT*g fun(str1) ; //调用fun()方法 VFe9e"C4_B05B\%U4g[Ka4lG0 System.out.println("fun()方法调用之后:" + str1) ;51Testing软件测试网kgD#H1]*V }51Testing软件测试网 A,di8dpr(R#f+SZ nD5gw+T:c EB0 public static void fun(String str2){ //此处的方法由主方法直接调用51Testing软件测试网mo1}iN}*hy str2 = "luoriver" ; //修改字符串方法 OnT]O0} D,GYrl.b(k.CUJ4]{0} ;51Testing软件测试网8Jry:Q3@Z |
输出结果:
1_DK8Y7Axvez0fun()方法调用之前:hello51Testing软件测试网s+b4f rz3A yg fun()方法调用之后:hello51Testing软件测试网_ h\v^ |
R#_/kE-I0]bU$c.w&A0
class Demo{51Testing软件测试网g/` V+UCa\6o String temp = "hello" ; //此处为了访问方便,属性暂不封装51Testing软件测试网\,[*\(w&o Bwmz }51Testing软件测试网 RUglR t.v 51Testing软件测试网^:H8g.~(g4c9f)aDKd public class RefDemo03{ 9Xe\`6y0public static void main(String args[]){51Testing软件测试网&vU-b,Zg,ed Demo d1 = new Demo() ; //实例化Demo对象 T8N2B[Q3MY|6D0d1.temp = "world" ; //修改temp属性的内容 8f(k:v e!L7A0System.out.println("fun()方法调用之前:" + d1.temp) ; 8A3sOJm Mb1i)k0fun(d1) ; C6|YZ/a_0System.out.println("fun()方法调用之后:" + d1.temp) ; 6Fix,i$O9krFD0}51Testing软件测试网A"]"j8Z0LP 51Testing软件测试网:W/g$W/lvM| public static void fun(Demo d2){ //此处的方法由主方法直接调用51Testing软件测试网EejU)] d2.temp = "luoriver" ; //修改temp值51Testing软件测试网/^y6zK csB Pe` d } \;kJ mtB*b Gn0} ;51Testing软件测试网O7HON2G/IO$v%S |
输出结果:
'Lbb2h(C[.b0fun()方法调用之前:world 'sNi5F OY0fun()方法调用之后:luoriver "N`6z:{ D#Bf0 |
51Testing软件测试网,cHB d]-hI&r:V
51Testing软件测试网(\ny wlh
接收本类引用
/]FL/|V0class Demo{ vr||,g0private int temp = 30 ; //声明temp属性并封装 9eE(G#i/q[0p,W9m0public void setTemp(int t){ //setter @^*d0v,NiJMa0temp = t ; Y7M%F7r.cW8SM0} &L(t+Pm,C7V!Q*}0public int getTemp(){ //getter 8BCD_-f2e4J J0return temp ; G.nZ*r? K0} y e;W:CS6G1s O+b0}51Testing软件测试网.U5|!@E&vI.J$g 51Testing软件测试网LkEjS{ public class RefDemo04{ {K'N@ U z r0public static void main(String args[]){51Testing软件测试网o P uswY Demo d1 = new Demo() ; //实例化Demo对象51Testing软件测试网)E:P9k?d?'O d1.setTemp(50) ; //只能通过setter方法修改内容51Testing软件测试网"[/k8p+n.Hf/W"|/`8@ d1.temp = 30 ; //肯定会出现错误 N#nK f G;o0J8R0}51Testing软件测试网Tm-Z{(z:A } ;51Testing软件测试网 JXu:u.DN |
输出结果:51Testing软件测试网7[ v$p;D^'o
RefDemo04.java:15:错误: temp可以在Demo中访问private |