对象的引用及传递

本文深入探讨了Java中的引用类型传递方式、对象克隆方法及反射机制,并通过具体实例展示了如何利用反射机制实现工厂模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引用类型的传递:基本数据类型是进行值传递,引用数据类型则是地址进行引用传递。
所谓引用传递,指的是一块堆内存空间,同时被多个栈内存所指向,引用传递的核心认识,不同的栈内存指向了同一块堆内存之中,所做的修改影响所有的栈内存。
*
*对象克隆,clone()实现克隆必须实现Cloneable接口,是标示接口,指一种能力的体现。
*对象的克隆实际上就是建立一个内存空间将原有对象中的信息复制过来。
*
*java的反射机制:在运行状态中,对于任意一个类都能够知道这个类的所有方法和属性。
* 对于任意一个对象,都能够调用它的任意一个方法,这种动态获取信息以及动态调用对象的方法的功能。
*功能:在运行时判断任意一个对象所属的类,在运行时构造任意一个类的对象,判断一个类所具有的成员变量和方法,调用任意一个对象的方法。
*getClass()方法返回对象类型为class
例:

/*传统工厂模式
 * interface Book{

    public String getTitle();

}

class MathBook implements Book{
    public String getTitle(){
        return "数学类图书";

    }

}

class Factory{
    public static Book getInstance(String className){
        if("mathBook".equals(className)){
            return new MathBook();
        }
        return null;
    }

}
public class TestFactory {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        Book book = Factory.getInstance("mathBook");
        //Book book = Factory.getInstance(" ");

        System.out.println(book.getTitle());
    }

}
*/

interface Book{
    public String getTitle();

}
class ComputerBook implements Book{
    public String getTitle(){
        return "计算机图书";
    }
}
class MathBook implements Book{
    public String getTitle(){
        return "数学类图书";
    }
}

class Factory{
    public static Book getInstance(String className){
        Book book =null;
        try{
        book = (Book)Class.forName(className).newInstance();
        }catch(Exception e){
            e.printStackTrace();
        }
        return book;
    }
}

public class TestFactory{
    public static void main(String args[])throws Exception{
        Book book = Factory.getInstance("ComputerBook");
        System.out.println(book.getTitle());
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值