Java 实例化类的的几种方法

Java类与对象的关系及实例化过程 本文深入探讨了Java中类与对象的关系及实例化过程。类是Java面向对象编程的基本单元,定义了对象的结构和行为,包括属性、方法、构造方法等。对象是类的实例,代表了现实世界中的具体实体,具有状态、行为和唯一标识。类与对象的关系可以理解为模板与实例、抽象与具体、一对多关系等。对象的实例化过程包括类加载、内存分配、初始化零值、设置对象头和执行初始化等步骤。本文还详细介绍了构造方法、this关键字、静态成员以及对象的生命周期等内容。在实际开发中,应遵循类设计原则,如单一职责原则、开闭原则等,合理管理对象的创建和生命 阅读详情



Java中,类的实例化方法有四种途径:

1)使用new操作符

2)调用Class对象的newInstance()方法

3)调用clone()方法,对现有实例的拷贝

4)通过ObjectInputStream的readObject()方法反序列化类

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;
    }
}

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();
    }
}

输出结果

有参类的实例化
测试...01
无参类的实例化
测试...
测试...01
测试...01
-------------------额外测试--------------------
有参类的实例化
测试...05

除了这几种情况可以实例化一个Java类对象外,隐式调用实例化也是利用了已上集中情况。例如常见的方法:

public class ClassInstance{
  public ClassInstance(){
  }
    public ClassInstance getInstance(){
    return new ClassInstance();
  }
}

通过观察结果,我们发现无论哪一种方式必须经过的一步---调用构造方法。无论怎样构造函数作为初始化类的意义怎样都不会改变。




易灵思FPGA实战:T35F324的PLL硬核配置全流程(附避坑指南) 本文详细解析了易灵思T35F324 FPGA中硬核PLL的配置全流程与核心避坑点。内容涵盖从架构理解、Interface Designer参数设置、VCO范围校验,到时钟网络冲突分析与动态重配置等实战环节,重点解决了引脚分配、资源约束和常见报错问题,为工程师提供了一套清晰可靠的配置指南。 阅读详情

相关推荐

Sigmastar平台WDR调试实战:从参数解析到鬼影消除的完整指南

本文提供了Sigmastar平台宽动态(WDR)技术的实战调试指南。针对逆光、运动场景下的核心痛点,系统性地解析了从多曝光采集、HDR融合到色调映射的完整管线,并重点阐述了如何通过调整曝光比、运动阈值与调整曲线等关键参数,有效消除运动鬼影、平衡暗部噪声与细节,最终实现清晰稳定的图像效果。

Jerry的专栏 926

Java 实例化类的方法

Java 实例化类的方法   Java中,类的实例化方法有四种途径: 1)使用new操作符 2)调用Class对象的newInstance()方法 3)调用clone()方法,对现有实例的拷贝 4)通过ObjectInputStream的readObject()方法反序列化类

Jo__yang的专栏 1066

三相电机控制入门:端电压、相电压、线电压到底怎么测?(附实测波形对比)

本文为三相电机控制初学者提供了端电压、相电压和线电压的完整测量指南。通过厘清三者的物理定义与测量方法,详细讲解了如何搭建虚拟星形点电路,并对比分析了方波、SPWM和SVPWM三种主流控制模式下关键电压波形的核心特征与差异,帮助工程师掌握正确的示波器测量与波形解读技巧。

oauth7security的博客 650

java程序类如何实例化

类可以被明确或者隐含地实例化。实例化一个类有四种途径: 明确地使用new操作符; 调用Class或者java.lang.reflect.Constuctor对象的newInstance()方法; 调用任何现有对象的clone(); 通用java.io.ObjectInputStream类的getObject()方法反序列化。...

mush_me的专栏 131

FCKeditor 2.6.4 php版本任意文件上传——漏洞复现

一、漏洞描述 FCKeditor是目前最优秀的可见即可得网页编辑器之一,它采用JavaScript编写。具备功能强大、配置容易、跨浏览器、支持多种编程语言、开源等特点。它非常流行,互联网上很容易找到相关技术文档,国内许多Web项目和大型网站均采用了FCKeditor。 Fckeditor 低于 2.6.4 php 版本任意文件上传漏洞,当您的PHP环境配置为 GPC = Off 时可绕过currentfolder参数过滤上传脚本木马控制网站服务器 二、漏洞原理 漏洞版本:<=2.6.4 三、环境搭建

W小哥 1万+

从零组装一台会‘看’的无人机:手把手教你配置NUC机载电脑与D435深度相机(环境搭建篇)

本文详细介绍了如何从零开始组装一台具备视觉能力的智能无人机,重点讲解了NUC机载电脑与D435深度相机的配置方法。通过Ubuntu系统安装、ROS环境搭建、深度学习框架配置等步骤,帮助开发者实现无人机的自主避障和目标跟踪功能。文章还提供了性能优化和常见问题解决方案,是无人机视觉系统开发的实用指南。

weixin_30915275的博客 397

Java实例化方法

实例化方法 使用new操作符 调用Class对象的newInstance()方法 调用clone()方法,对现有实例的拷贝 通过ObjectInputStream的readObject()方法反序列化类 Java 提供了一种对象序列化的机制,该机制中,一个对象可以被表示为一个字节序列,该字节序列包括该对象的数据、有关对象的类型的信息和存储在对象中数据的类型。 将序列化对象写入文件之后,可...

moni_mm的博客 890

【PCIe 总线及设备入门学习专栏 3.2.2 -- PCIe 中什么是 SR-IOV】

SR-IOV(Single Root I/O Virtualization)是 PCIe 规范中的一种技术,允许物理 PCIe 设备(称为 Physical Function, PF)虚拟化为多个虚拟设备(称为 Virtual Functions, VFs),使多个操作系统或虚拟机能够共享同一个物理设备。SR-IOV:一种 PCIe 虚拟化技术,允许将一个物理 PCIe 设备虚拟化为多个虚拟设备。:物理设备的主要管理接口。:PF 的轻量级副本,分配给虚拟机或操作系统。

CodingCos的博客 1513

关于类(Class)的工具类方法

import java.io.File; import java.io.FileFilter; import java.io.IOException; import java.net.JarURLConnection; import java.net.URL; import java.net.URLDecoder; import java.util.ArrayList; import java.util.Enumeration; import java.util.List; import java.uti.

编程神经元的博客 630

uni-app开发-第6篇:uni-app 样式与主题

在 uni-app 开发中,样式与主题的管理是关键部分。样式分为全局样式和局部样式,全局样式在 App.vue 中定义,适用于整个应用,而局部样式在单个 .vue 文件中定义,仅对当前页面生效。局部样式优先级高于全局样式,内联样式优先级最高。样式属性如 font-family 和 color 可被子元素继承。要覆盖全局样式,可在局部样式中重新定义相同规则。主题切换通过 CSS 变量和类名实现,动态切换主题可通过修改元素的类名来完成。例如,定义浅色和深色主题,并通过按钮点击切换主题样式。这些方法帮助开发者灵活

无 369

阿里云百炼全解析:一站式大模型开发平台的架构与行业实践

摘要: 阿里云百炼平台通过一站式架构革新大模型开发范式,将传统碎片化工具链整合为统一工作流,实现开发周期从月级到小时级的跃迁。其核心架构包含接入层、引擎层与资源层,关键技术突破包括MCP服务协议、多模态引擎及高性能训练优化。平台提供全生命周期开发支持,从数据准备到模型部署,并通过VPC隔离、数据加密构建企业级安全体系。已在医疗、电力等行业实现显著增效,如阿斯利康药物分析系统准确率提升至95%。未来将向多Agent协同、边缘计算等方向演进,推动AI技术深度融入产业核心。

fudaihb的博客 1988

Java中类的实例化方式

在Java中类实例化方式主要有四种: 1、使用new操作符 2、调用class对象的newInstance()方法 3、调用clone()方法,从而实现对实例的拷贝。 4、通过ObjecInputStream的readObject()方法,反序列化类。 下面是一个具体的例子。 public class CInstanceDemo { private String demo =

csulfy的博客 1524

Centos 7 Linux 离线安装单机 Kafka:下载、安装、配置、使用

本文详细介绍了在 CentOS 7 系统上离线安装单机版 Apache Kafka 的完整流程,包括环境准备(JDK 安装)、Kafka 安装包上传与解压、关键配置修改(如监听地址)、ZooKeeper 与 Kafka 服务的启动,以及 Topic 的创建、消息的生产和消费等基础操作。适用于无网络环境下的 Kafka 快速部署与学习,为后续开发或测试提供本地消息队列支持。

寒水馨 · 轻量级技术文档 · hanshuixin.org 1319

java实例化类方法_Java 实例化类的的几种方法

Java中,类的实例化方法有四种途径:1)使用new操作符2)调用Class对象的newInstance()方法3)调用clone()方法,对现有实例的拷贝4)通过ObjectInputStream的readObject()方法反序列化类ClassInstance.javaimport java.io.*;class ClassInstance implements Cloneable, Seri...

weixin_36303305的博客 3128

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Java实例化类的几种方法

最近在做一个基于Spring boot的后台管理系统 所以巩固一下自己的Java基础 这里写的是类的实例化的三种方式 1. 用new 关键字直接实例化一个对象 ExampleClass example = new ExampleClass ();2.用Java内部的反射机制 Object example = Class.forName("完整的类路径").newInstance();

来者往者 1万+

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

JAVA SE:认识类和对象

JAVA SE :初识类和对象

2402_83501061的博客 673

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

java动态创建子类实例_动态实例化一个类以及一个类的子类(C++/JAVA) | 学步园

整理一下理解的几种模式的类的实例化:Singleton:单态,这个类只能被实例化一次Factory Method:在Factory子类里,进行,product类的子类的实例化(Simple Factory看为Factory Method模式的一种特例)Abstract Factory:在Factory子类里,进行,多个“product类的子类”的实例化,一个是product1类的子类,一个是pro...

weixin_28953361的博客 760

JAVA学习笔记——System类

System类包含一些有用的类字段和方法,它不能被实例化。方法:     public static void gc():运行垃圾回收器         public static long currentTimeMillis():返回以毫秒级为单位的当前时间         public static void arraycopy(Object src , int srcPos , obj

弓长亖石 241

JAVA System类

System类 System 类包含一些有用的类字段和方法。它不能被实例化 成员方法 publicstatic void gc()  运行垃圾回收器 publicstatic void exit(int status)  结束JVM,参数是状态码,0表示正常退出 publicstatic long currentTimeMillis()  获取当前的系统时间的毫秒值;从1970年1月1日

乔培宸的博客 425

Java中创建实例化对象的几种方式

Java中创建实例化对象有哪些方式? ①最常见的创建对象方法,使用new语句创建一个对象。②通过工厂方法返回对象,例:String s =String.valueOf()。(工厂方法涉及到框架)③动用反射机制创建实例化对象,Class类的三种方法或者通过类类型的newInstance()实例方法。④调用对象的clone()方法。(俗称克隆方法)⑤通过I/O流的反序列化手段,调用ObjectInp...

weixin_33794672的博客 206

java 实例化是什么及五种实例化方法

实例化是什么 1.在Java中,使用已经定义好的类,创建该类对象的过程称为“实例化”。 2.实例化就是在堆中分配内存的过程,分配的内存即对象。 3.只有实例化后的对象,才能访问到类中的成员变量和方法。 实例化的特点 1.简单地说,实例化就是new对象。 2.new的过程就是实例化的过程,如 new Cat();就是对Cat类的实例化。 3.实例化对象的语法:类名 引用变量名 = new 构造器名() ; 4.访问成员属性或成员方法一般语法是:引用成员变量名.成员名 示例代码 学生类 public class

weixin_47498250的博客 1万+

Java类的 初始化 和 实例化区别

类的初始化:是完成程序执行前的准备工作。在这个阶段,静态的(变量,方法,代码块)会被执行。同时在会开辟一块存储空间用来存放静态的数据。初始化只在类加载的时候执行一次。类的实例化:是指创建一个对象的过程。这个过程中会在堆中开辟内存,将一些非静态的方法,变量存放在里面。在程序执行的过程中,可以创建多个对象,既多次实例化。每次实例化都会开辟一块新的内存。 1.主要区别 2.基础知识 2.1 java类的生命周期: 指一个class文件从加载到卸载的全过程,类的完整生命周期包括7个部分:...

fox_bert的博客 1万+

详解Java类、对象、实例化

Java是一种面向对象的语言。由于具有面向对象特性的语言,Java支持以下基本概念: 多态性 继承 封装 抽象化 类 对象 实例 方法 消息解析 在本章中,我们将探讨类和对象这些概念。对象 - 对象具有状态和行为。例如:狗有状态 - 颜色,名称,繁殖以及行为,摇头晃脑,吠叫,吃。对象是类的实例。类 - 一个类可以被定义为描述行为的模板/蓝色印花/指

Smile&搁浅 9231

Java类的定义及其实例化

类必须先定义才能使用。类是创建对象的模板,创建对象也叫类的实例化。 下面通过一个简单的例子来理解Java中类的定义: publicclassDog{ Stringname; intage; voidbark(){// 汪汪叫 System.out.println(“汪汪,不要过来”); } void...

Java入门基础教程 5205

java类的实例化探究

java类的实例化(instantiation)具有显性的和隐性的区别。 一般编程时,我们锁使用new的方法实例化,这是最简单直接的显性实例化。另外还有三种实例化,分别为反射机制中的newInstance()方法,类的clone()方法 和 解串行化使用的ObjecInputStream中的getObject()方法。 而隐性的实例化则出现在java程序的整个生命周期中,包括String 、

biaobiaoqi的老博客 4969

Java类和对象:类是对象的模板,对象是类的实例化

Java类和对象:类是对象的模板,对象是类的实例化

子夜的个人博客 2303
上一篇: CAP和BASE理论
下一篇: Java 浅拷贝和深拷贝那些事
大树叶
博客等级 码龄12年 1171粉丝 664原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值