Pourquoi auriez-vous besoin d'utiliser plus d'un constructeur?
Je suis à l'apprentissage de Java à partir de maintenant et ont simplement été appris ce que les constructeurs sont. Je ne comprends pas pourquoi vous avez besoin de plus d'un constructeur si vous avez besoin d'initialiser toutes les variables.
- "besoin de plus d'un constructeur si vous avez besoin d'initialiser toutes les variables" ce que vous entendez par là? Les variables peuvent être initialisées dans un constructeur.
- Je voulais dire que je ne comprends pas pourquoi vous auriez besoin d'utiliser plus d'un constructeur parce que vous pouvez initialiser toutes les variables dans un constructeur et je ne sais pas quoi d'autre, vous pouvez utiliser un constructeur en plus de l'initialisation des variables. Désolé pour la confusion.
- Il est généralement principalement pour des raisons de commodité, ou éventuellement de l'efficacité dans certains cas. Jetez un oeil à certaines des classes du JDK qui ont plusieurs constructeurs -- String et ArrayList pour un groupe, par exemple -- et il peut devenir plus claire.
Vous devez vous connecter pour publier un commentaire.
Une classe peut avoir plusieurs constructeurs, aussi longtemps que leur signature (les paramètres qu'ils prennent) ne sont pas les mêmes. Vous pouvez définir autant de constructeurs que vous en avez besoin. Quand une classe Java contient plusieurs constructeurs, nous disons que le constructeur est en surcharge (disponible en plusieurs versions). C'est ce que constructeur de surcharge qui signifie qu'une classe Java contient plusieurs constructeurs.
Cela dit, il est entièrement dépendant de votre mise en œuvre de savoir si ou non vous voulez créer plus d'un constructeur dans votre classe, mais d'avoir plus qu'un constructeur peut faciliter votre vie, dans de nombreux cas. Supposons en dessous de la classe ne possède pas de constructeur par défaut:
Donc, tout en créant un objet de cette classe de l'utilisateur ne serait pas en mesure de le faire jusqu'à ce qu'il a l'âge et le nom des paramètres pratique qui limite le vrai de la fonctionnalité des objets Java en tant qu'Objets de l'état devrait être en mesure d'être modifié et complété à tout moment une fois initialisée.
Pour le dire simplement, l'utilisation de plusieurs constructeurs pour des raisons de commodité (1er exemple) ou pour permettre complètement différentes méthodes d'initialisation ou de différents types de sources (2ème exemple.
Vous pourriez avoir besoin de plusieurs constructeurs pour mettre en œuvre votre classe tout simplement de permettre à l'omission de certains paramètres qui sont déjà en place:
Un autre exemple est lorsque les différents constructeurs de suivre des procédures différentes pour initialiser les variables.
Par exemple, vous pourriez avoir une table de données qui affiche simplement un tableau de texte. Le constructeur pourrait obtenir les données de base de données OU un fichier:
Par constructeur a but précis. Parfois, nous avons besoin de plus d'un constructeur (spécial dans l'Entité de domaine de cas, lors de l'utilisation d'un ORM)
Par exemple:
Constructeur vide (sans arguments) pour la réflexion,
Constructeur a des argument(s) pour créer une nouvelle instance (
A a = new A('foo', 'bar');
).Ces sommes la surcharge de méthode(s).
Réalité exemple:
Classe
Post
a même 3 constructeurs nomméPost(){...}
Source: https://github.com/spring-io/sagan/blob/master/sagan-common/src/main/java/sagan/blog/Post.java
Donc, rappelons que le but du constructeur pour initialiser (donnez-leur des valeurs).
Alors, pensez à ce modèle:
La Voiture de l'objet que vous créez doit les valeurs pour le modèle et l'année. Ce serait formidable si vous pouviez juste de créer un mannequin de voiture avec juste les valeurs par défaut pour chaque champ, ou prendre une corde qui ressemble à ceci:
"Ford 2016 or "Ford" and "2016"
et de créer un objet Voiture.Donc, il suffit de créer deux plus de constructeurs avec des signatures différentes que d'accomplir cette tâche.
Aussi, imaginons que nous ayons une autre Chaîne champ appelé propriétaire. Le propriétaire d'une voiture ne peut pas le savoir à la création de cet objet, mais votre programme peut être en mesure de fonctionner sans elle. Donc, nous pouvons utiliser le même constructeur ci-dessus et la Voiture de l'objet propriétaire de ce champ sera mis à null.
C'est l'objectif de plusieurs constructeurs. Pour donner le programmeur de la flexibilité sur le fait de dire ce un objet peut être créé à partir de et qui les variables doivent être initialisées dans la première place.
Vous pouvez également trouver cela utile: