java 实例化类详解及简单实例
发布时间 - 2026-01-10 23:28:43 点击率:次Java 实例化类的方法

Java中,类的实例化方法有四种途径:
1)使用new操作符
2)调用Class对象的newInstance()方法
3)调用clone()方法,对现有实例的拷贝
4)通过ObjectInputStream的readObject()方法反序列化类
1.ClassInstance.java
import java.io.*;
class ClassInstance implements Cloneable, Serializable {
private String str = "测试...";
public void fun(){
System.out.println(str);
}
public ClassInstance(String str){
System.out.println("有参类的实例化");
this.str += str;
}
public ClassInstance(){
System.out.println("无参类的实例化");
}
public Object clone(){
return this;
}
}
2.ClassInstanceTest.java
import java.io.*;
import java.lang.reflect.*;
public class ClassInstanceTest{
public static void main(String[] args) throws ClassNotFoundException, InstantiationException,
IllegalAccessException, IOException,InvocationTargetException, NoSuchMethodException{
//第一种类的实例化方式
ClassInstance ci01 = new ClassInstance("01");
ci01.fun();
//第二种类的实例化方式
ClassInstance ci02 = (ClassInstance) Class.forName("ClassInstance").newInstance();
ci02.fun();
//第三种类的实例化方式
ClassInstance ci03 = (ClassInstance) ci01.clone();
ci03.fun();
//第四种类的实例化方式
FileOutputStream fos = new FileOutputStream("ci.tmp");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(ci01);
oos.close();
fos.close();
FileInputStream fis = new FileInputStream("ci.tmp");
ObjectInputStream ois = new ObjectInputStream(fis);
ClassInstance ci04 = (ClassInstance) ois.readObject();
ois.close();
fis.close();
ci04.fun();
System.out.println("--------------------额外测试--------------------");
ClassInstance ci05 = null;
//额外的思考 在第二种类实例化的方式中有没有一种方法实现有参数的构造方式
//获得类的构造信息
Constructor[] ctor = Class.forName("ClassInstance").getDeclaredConstructors();
//找到我们需要的构造方法
for(int i=0;i<ctor.length;i++ ){
Class[] cl = ctor[i].getParameterTypes();
if(cl.length == 1){
//实例化对象
ci05 = (ClassInstance) Class.forName("ClassInstance").getConstructor(cl).newInstance(new Object[]{"05"});
}
}
ci05.fun();
}
}
3.输出结果
有参类的实例化 测试...01 无参类的实例化 测试... 测试...01 测试...01 -------------------额外测试-------------------- 有参类的实例化 测试...05
除了这几种情况可以实例化一个Java类对象外,隐式调用实例化也是利用了已上集中情况。例如常见的方法:
public class ClassInstance{
public ClassInstance(){
}
public ClassInstance getInstance(){
return new ClassInstance();
}
}
通过观察结果,我们发现无论哪一种方式必须经过的一步---调用构造方法。无论怎样构造函数作为初始化类的意义怎样都不会改变。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# java
# 实例化类
# 实例化类详解及实例
# 实例化类实例代码
# Java实例化一个抽象类对象的方法教程
# Java类初始化和实例化中的2个“雷区”
# Java实例化类详解
# 浅谈Java中类的实例化步骤
# 简单了解java类的初始化以及类的实例化
# Java子类对象的实例化过程分析
# Java中类的定义与实例化详解
# 中有
# 希望能
# 几种
# 四种
# 谢谢大家
# 哪一种
# 已上
# 序列化
# 隐式
# System
# println
# str
# fun
# private
# String
# void
# public
# 有参类
# reflect
# lang
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
Laravel Blade模板引擎语法_Laravel Blade布局继承用法
Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑
Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程
JavaScript如何实现类型判断_typeof和instanceof有什么区别
如何为不同团队 ID 动态生成多个“认领值班”按钮
EditPlus 正则表达式 实战(3)
iOS中将个别页面强制横屏其他页面竖屏
怎样使用JSON进行数据交换_它有什么限制
手机网站制作与建设方案,手机网站如何建设?
Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门
Linux系统命令中tree命令详解
Laravel如何自定义分页视图?(Pagination示例)
php在windows下怎么调试_phpwindows环境调试操作说明【操作】
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧
Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
Laravel中的withCount方法怎么高效统计关联模型数量
Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧
Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】
谷歌Google入口永久地址_Google搜索引擎官网首页永久入口
微信小程序 canvas开发实例及注意事项
Laravel模型关联查询教程_Laravel Eloquent一对多关联写法
如何实现javascript表单验证_正则表达式有哪些实用技巧
Laravel Session怎么存储_Laravel Session驱动配置详解
EditPlus中的正则表达式实战(6)
Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康
Android利用动画实现背景逐渐变暗
Laravel如何使用查询构建器?(Query Builder高级用法)
如何快速搭建高效简练网站?
如何快速搭建安全的FTP站点?
如何快速搭建个人网站并优化SEO?
为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】
如何在IIS7上新建站点并设置安全权限?
Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置
,网页ppt怎么弄成自己的ppt?
Laravel中的Facade(门面)到底是什么原理
如何挑选最适合建站的高性能VPS主机?
Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程
百度浏览器如何管理插件 百度浏览器插件管理方法
PHP 500报错的快速解决方法
html5如何实现懒加载图片_ intersectionobserver api用法【教程】
Python文件异常处理策略_健壮性说明【指导】
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用
Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用
深圳网站制作培训,深圳哪些招聘网站比较好?

