Java类类型参数

上节说明了Java类类型变量和基本变量的赋值方式的不同(http://www.linuxidc.com/Linux/2013-10/91074htm),这次就谈谈类类型参数和基本类型参数之间的差别。

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

 /**
 * 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://www.linuxidc.com/Linux/2013-10/91073.htm

Java中两种单例模式小结 http://www.linuxidc.com/Linux/2013-05/84751.htm

单例模式(Singleton Pattern) http://www.linuxidc.com/Linux/2012-09/70555.htm

Java单例模式实例—读取配置文件 http://www.linuxidc.com/