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 }