采用Clone()方式创建对象
Java 语言里面的所有类都默认继承自java.lang.Object 类,在java.lang.Object 类里面有一个
clone()方法,JDK API 的说明文档里面解释了这个方法会返回Object 对象的一个拷贝。我们需要
说明两点:一是拷贝对象返回的是一个新对象,而不是一个对象的引用地址;二是拷贝对象与用
new 关键字操作符返回的新对象的区别是,这个拷贝已经包含了一些原来对象的信息,而不是对
象的初始信息,即每次拷贝动作不是一个针对全新对象的创建。
当我们使用new 关键字创建类的一个实例时,构造函数中的所有构造函数都会被自动调用。
但如果一个对象实现了Cloneable 接口,那么我们可以通过调用它的clone()方法,注意,clone()
方法不会调用任何构造函数。
代码清单3-1 所示是工厂模式的一个典型实现,工厂模式是采用工厂方法代替new 操作的一
种模式,所以工厂模式的作用就相当于创建实例对象的new 操作符。
代码清单3-1 创建新对象
public static Credit getNewCredit()
{
return new Credit();//创建一个新的Credit 对象
}
如果我们采用clone()方法的方式创建对象,那么原有的信息可以被保留,因此创建速度会加
快。如清单3-2 所示,改进后的代码使用了clone()方法。
代码清单3-2 使用了clone()方法
private static Credit BaseCredit = new Credit();
public static Credit getNewCredit()
{
return (Credit)BaseCredit.clone();
}
分享到:
相关推荐
入门设置要使用Maven添加依赖项,请使用以下命令: < dependency> < groupId>net.arnx</ groupId> < artifactId>darts-clone-java</ artifactId> < version>0.6.0</ version></ dependency>用法import ...
android-java-organizze-clone
详细描述了java基础中的数组与方法的应用技术,以及面向对象的过程思想,有助于java初学者的入门学习。
Facebook-login-page-clone-main-源码.rar
3D-clash-royale-clone.zip,一个统一的克隆超级细胞的氏族冲突衍生出移动游戏冲突皇家可能有些曲折。,3D建模使用专门的软件来创建物理对象的数字模型。它是3D计算机图形的一个方面,用于视频游戏,3D打印和VR,以及...
git-pull-or-clone 确保磁盘上存在一个git repo,并且它是最新的 安装 npm install git-pull-or-clone 用法 const gitPullOrClone = require ( 'git-pull-or-clone' ) gitPullOrClone ( 'git@github....
水果飞刀休闲游戏-(Knife Hit Unity Clone).rar
git-clone-init:在git clone上自动设置用户身份(user.email user.name)
使用的软件包: 世博会React导航安装与世博会克隆此仓库git clone git@github.com/dev-andremonteiro/react-native-twitter-clone.git cd react-native-twitter-clone 运行npm install 运行expo start没有世博会...
react-native-instagram-clone:instagram与世博会克隆
图像清晰化系列-图片克隆放大器clone v2.0免费版
A-Tune是一款基于AI的操作系统性能调优引擎。A-Tune利用AI技术,使操作系统“懂”业务,简化IT系统调优工作的同时,让应用程序发挥出色性能。安装A-Tune支持操作系统:openEuler 1.0及以上版本方法一(适用于普通...
语音克隆模型
下载java-tron和wallet-cli git clone git clone 编译并运行java-tron 光盘java-tron ./gradlew构建./gradlew运行-Pwitness 通过命令行构建并运行wallet-cli 创建一个新的命令行终端窗口。 cd wallet-cli ./...
wx-java-miniapp 前言 本项目使用 对接微信小程序后台开发,基于SpringBoot构建,实现微信小程序后端开发功能...git clone https://github.com/gongsir0630/wx-java-miniapp.git 2. 修改配置 修改src/main/resources/a
A-Flappy-Bird-Clone 我使用 libGDX-Framework 进行了重制,现在效果更好了。 你可以得到最新的二进制文件 [here] ( )。
在使用高版本版KEIL时,提示要升级固件,升级后就出现JLINK is Clone的提示!“the emulator is JLink-Clone, the segger software only support orginal segger device” 然后闪退,IDE崩溃关闭! 解决方案: 1....
jVi is a vi/vim editor clone built on top of the javax.swing.text package. Available for NetBeans and JBuilder. jVi is designed to quickly and easily integrate into many disparate java based desktop ...
我在学习React Native时正在做的项目克隆Facebook移动应用程序(IOS-EXPO CLI)安装克隆我的仓库git clone https://github.com/iamvucms/react-native-facebook-clone.gitcd react-native-facebook-clone 使用软件包...