上节说明了类类型变量和基本变量的赋值方式的不同,这次就谈谈类类型参数和基本类型参数之间的差别。

首先要明白什么是类类型参数。类类型参数,方法定义开始位置方法名称后面小括号中给定形式参数。类似于类类型变量,类类型参数作为一个局部变量,保存了类类型对象的内存地址。类类型参量实例变量的值在方法中是可以改变的,而基本类型参量的值却不能。下面给段代码加以说明:

/**
 * Comments:方法对类类型参数值及基本类型参数值的影响实例
 * @author 塞上名猪
 * Create Time:2013-09-15
 *
 */
public class ClassTest {
    private int num;
    public int getNum() {
        return num;
    }
    public void setNum(int num) {
        this.num = num;
    }
    public void change(int n){
        n=2;
    }
    public void change(ClassTest n){
        n.setNum(2);
    }
    public void change(ClassTest c1,ClassTest c2){
        c2=c1;
    }
    public static void main(String[] args) {
        ClassTest class1=new ClassTest();
        class1.setNum(1);
        class1.change(class1);                      //传入类类型class1,其中class1.getNum=1
        System.out.println(class1.getNum());        //输出类类型class1,其中class1.getNum=2
                                                         
        class1.setNum(1);
        class1.change(class1.getNum());             //传入基本类型class1.getNum=1
        System.out.println(class1.getNum());        //输出基本类型class1.getNum=1
                                                         
        class1.setNum(2);
        ClassTest class2=new ClassTest();
        class2.setNum(1);
        class2.change(class1, class2);              //传入类类型class1,其中class1.getNum=2
                                                    //传入类类型class2,其中class2.getNum=1
        System.out.println(class2.getNum());        //输出类类型class2,其中class2.getNum=1
    }
}

从代码中可以看出,类类型参量的值在方法中改变,并直接影响到了方法外参数的值,但基本类型参量的值却没有被修改。而且,当方法将一个对象直接用另一个对象代替,也失败了。

注:方法外称为参量,方法内称为参数(本人的理解)。


相关博文:java类类型变量:http://zuohao1990.blog.51cto.com/6057850/1296239

        java类类型的存储特点:http://zuohao1990.blog.51cto.com/6057850/1304854