Java程序设计语言使用值调用。也就是说,方法得到的是所有参数值的一个拷贝,特别是,方法不能修改传递给它的任何基本数据类

方法参数共有两种类型:

1、基本数据类型(数字、布尔值)。

2、对象引用。

一个方法不可能修改一个基本数据类型的参数。而对象引用作为参数就不同了,对象参数所引用的对象状态是可以被改变的,因为方法

得到的是对象引用的拷贝,对象引用及其他的拷贝同时引用同一个对象。

Java程序设计语言对对象采用的不是引用调用,实际上,对象引用进行的是值传递。

总结Java程序设计语言中,方法参数的使用情况:

1、一个方法不能修改一个基本数据类型的参数(即数值开和布尔值)。

2、一个方法可以改变一个对象参数的状态。

3、一个方法对象参数引用一个新的对象不改变方法外对象的值。

package com.action;
public class Test {
private static int i = 1;
private static String s = "string1";
private static String[] ss = { "11", "bb", "cc" };
private static int j = 10;
public int ii;
static {
System.out.println("静态块1");
System.out.println(i);
}
static {
System.out.println("静态块2");
}
/**
* @param args
*/
public static void main(String[] args) {
Test t = new Test();
t.changeInt(i);
System.out.println("傳入int值:" + i + ":::" + j);
t.changeString(s);
System.out.println("傳入String值1:" + s);
t.changeString2(s);
System.out.println("傳入String值2:" + s);
t.changeStrings(ss);
System.out.println("傳入数组:" + ss[0] );
t.changeTest(t);
System.out.println("傳入對象"+t.i);
t.ii = 111;
t.changeTest1(t);
System.out.println(t.ii);
}
public void changeInt(int i) {
i = 10;
j++;
}
public void changeString(String s) {
s = new String("changeString");
}
public void changeString2(String s) {
s.replace("o", "a");
}
public void changeStrings(String[] s) {
s[0] = "numberChange";
}
public void changeTest(Test t) {
Test tt = new Test();
tt.i = 100;
t = tt;
}
public void changeTest1(Test t) {
Test tt = new Test();
tt.ii = 1;
t = tt;
}
}

结果:

静态块1

1

静态块2

傳入int值:1:::11

傳入String值1:string1

傳入String值2:string1

傳入数组:numberChange

傳入對象100

111

一个方法中可以有多个静态块。