Maison  >  Article  >  Java  >  Une description de la façon dont les objets sont créés en Java

Une description de la façon dont les objets sont créés en Java

伊谢尔伦
伊谢尔伦original
2017-05-22 23:10:091527parcourir

Les développeurs Java créent de nombreux objets chaque jour, mais ils utilisent généralement l'injection de dépendances pour gérer le système. Par exemple, Spring crée des objets. Cependant, il existe de nombreuses façons de créer des objets : en utilisant le mot-clé New et en utilisant la méthode newInstance de. Class class. , utilisez la méthode newInstance de la classe Constructor, utilisez la méthode Clone et utilisez la désérialisation.

Utilisez le nouveau mot-clé : C'est notre manière la plus courante et la plus simple de créer des objets. De cette façon, nous pouvons également appeler n'importe quelle bonne fonction (somme sans paramètres) Il y a du ginseng). Par exemple : Student student = new Student();

Utilisez la méthode newInstance de la classe Class : On peut également utiliser la méthode newInstance de la classe Class pour créer un objet. Cette méthode newInstance appelle un constructeur sans paramètre pour. créez un objet, tel que : Student student2 = (Student)Class.forName("Root path.Student").newInstance(); Ou : Student stu = Student.class.newInstance();

Utilisez le Méthode newInstance de la classe Constructor : Cette méthode et tout comme la méthode newInstance de la classe Class, il existe également une méthode newInstance dans la classe java.lang.relect.Constructor pour créer des objets. Nous pouvons appeler le constructeur paramétré et privé via cette méthode newInstance. Par exemple : Constructor constructor = Student.class.getInstance(); Student stu = constructor.newInstance(); Ces deux méthodes newInstance sont ce que tout le monde appelle réflexion. En fait, la méthode newInstance de Class appelle en interne la méthode newInstance de. Constructeur. C’est aussi la raison pour laquelle de nombreux frameworks comme Spring, Hibernate, Struts, etc. utilisent ce dernier.

Utilisez la méthode Clone : chaque fois que nous appelons la méthode clone d'un objet, la JVM créera un nouvel objet et y copiera tout le contenu de l'objet précédent. La création d'un objet à l'aide de la méthode clone n'appellera pas. n'importe quel constructeur. Pour utiliser la méthode clone, il faut d'abord implémenter l'interface Cloneable et implémenter la méthode clone qu'elle définit. Par exemple : Student stu2 = stu.clone(); Il s'agit également d'une application du mode prototype.

Utiliser la désérialisation : lorsque nous sérialisons et désérialisons un objet, la JVM crée un objet séparé pour nous. Lors de la désérialisation, la JVM crée l'objet et n'appelle aucun constructeur. Afin de désérialiser un objet, nous devons faire en sorte que notre classe implémente l'interface Serialisable. Par exemple : ObjectInputStream in = new ObjectInputStream (new FileInputStream("data.obj")); Student stu3 = (Student)in.readObject();

Comme le montre l'exemple ci-dessus, en plus de en utilisant le mot-clé new Toutes les autres méthodes sont converties en Ensurevirtual (méthode directe de création d'un objet) et sont converties en deux appels par new, new et Ensurespecial (appel du constructeur).

Aussi : y a-t-il une différence entre les deux méthodes newInstance ?

☆ La classe Class est située dans le package lang de Java, et la classe constructeur fait partie du mécanisme de réflexion Java.

 ☆ La newInstance de la classe Class ne peut déclencher que le constructeur sans paramètre pour créer un objet, tandis que la newInstance de la classe constructeur peut déclencher le constructeur avec des paramètres ou n'importe quel paramètre pour créer un objet.

 ☆ La newInstance de la classe Class nécessite que son constructeur soit public ou visible par la méthode appelante, tandis que la newInstance de la classe constructeur peut appeler le constructeur privé dans un environnement spécifique pour créer un objet.

 ☆ La newInstance de la classe Class lève une exception du constructeur de classe, et la newInstance de la classe constructeur enveloppe une exception InvocationTargetException.

La classe Class appelle essentiellement la méthode newInstance sans paramètre dans la classe constructeur du package de réflexion, capture l'InvocationTargetException et lève l'exception du constructeur lui-même.

[Recommandations associées]

1. Une brève introduction à plusieurs objets Java

2.Exemples détaillés de copie d'objet Java

3.

Explication détaillée d'exemples de copie d'objets Java

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn