In Java, there are four ways to instantiate a class:
1) Use the new operator
2) Call the newInstance() method of the Class object
3) Call the clone() method to copy the existing instance
4) Deserialize the class through the readObject() method of ObjectInputStream
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><p>3. Output result</p> <pre class="brush:php;toolbar:false">有参类的实例化 测试...01 无参类的实例化 测试... 测试...01 测试...01 -------------------额外测试-------------------- 有参类的实例化 测试...05
In addition to these situations where a Java class object can be instantiated, implicit call instantiation also takes advantage of the above centralized situations. . For example, common methods:
public class ClassInstance{ public ClassInstance(){ } public ClassInstance getInstance(){ return new ClassInstance(); } }
The above is the detailed content of How to instantiate a class in Java. For more information, please follow other related articles on the PHP Chinese website!

在使用Netty开发WebSocket服务器时,可能会遇到浏览器在尝试连接时未能正确处理服务器返回的401状态码的情况。 �...

Java compilation failed: Running window javac command cannot generate class file Many Java beginners will encounter this problem during the learning process: running window...

Discussing the hierarchical architecture problem in back-end development. In back-end development, common hierarchical architectures include controller, service and dao...

Packages and Directories in Java: The logic behind compiler errors In Java development, you often encounter problems with packages and directories. This article will explore Java in depth...

Leetcode ...

JWT and Session Choice: Tradeoffs under Dynamic Permission Changes Many Beginners on JWT and Session...

How to correctly configure apple-app-site-association file in Baota nginx? Recently, the company's iOS department sent an apple-app-site-association file and...

How to understand the classification and implementation methods of two consistency consensus algorithms? At the protocol level, there has been no new members in the selection of consistency algorithms for many years. ...


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Atom editor mac version download
The most popular open source editor

SublimeText3 Linux new version
SublimeText3 Linux latest version

SublimeText3 Mac version
God-level code editing software (SublimeText3)

SublimeText3 English version
Recommended: Win version, supports code prompts!

SAP NetWeaver Server Adapter for Eclipse
Integrate Eclipse with SAP NetWeaver application server.