1 package org.awt; 2 3 import java.awt.Graphics; 4 import java.applet.Applet; 5 6 7 public class test{ 8 9 float ptValue; 10 11 public void changeInt(int value) 12 { 13 value=55;//1 14 int val=value;//2 15 System.out.print(value); 16 //这里理解为型參,pt.changeInt(val)只是将val的的值传递到了changeInt函数中。实验中是用1,但实际上主函数给被调用函数传递参数更多的是形式2 17 // 18 } 19 20 public void changeStr(String value){ 21 22 value=new String("different");//1 23 String str=value.toUpperCase();//2 24 System.out.println("Inside methon the str value "+str); 25 //这个跟上面一个是同样的道理,不过要记得val str 都是引用类型,都是把地址传递给被调用函数。只不过这里相当于在被调用函数内部把value声明了 26 //对于2直接value.toUpperCase()然后输出得到的还是原来的string。要通过2的形式才能得到想要的输出。不过注意一点想想String 与 StringBuf的区别 27 } 28 29 public void changeObjValue(test ref){ 30 31 ref.ptValue=99.0f; 32 //当调用pt.changeObjValue(pt)之前,ref.ptValue 和 pt.ptValue 都是指向101.0f这个浮点数的地址单元。当调用之后pt.changeObjValue(pt) 传给changeObjValue函数的是 33 //pt的地址,这时候pt赋值给ref,ref将它的ptValue指向了浮点数99.0f的地址单元 34 } 35 36 public static void main(String [] args) 37 { 38 39 String str; 40 int val; 41 test pt=new test(); 42 val=11; 43 pt.changeInt(val); 44 System.out.println("Int value is "+val); 45 46 str=new String("hello"); 47 pt.changeStr(str); 48 System.out.println("str value is "+str); 49 50 pt.ptValue=101.0f; 51 pt.changeObjValue(pt); 52 System.out.println("pt values is"+ pt.ptValue); 53 54 55 } 56 }
时间: 2024-11-29 05:40:28