quel est l'avantage de la création de constructeur en java?
J'ai remarqué une chose qu'un constructeur et une méthode simple d'une classe de faire le même travail. quelle est la raison exacte pour créer une construction d'une classe? Si je créer MyClass(){}
constructeur et MyClassMethod(){}
méthode qu'il va faire le même travail que j'écris la partie du corps de ceux de la méthode et du constructeur. Alors, quelle est la nécessité de construire? A-t-elle tout usage spécial ?
Il existe de nombreuses utilisations de l'constructeur autre que logement exécutable fonctionnalité !
javaworld.com/jw-10-2000/jw-1013-constructors.html
javaworld.com/jw-10-2000/jw-1013-constructors.html
OriginalL'auteur SHAH MD MONIRUL ISLAM | 2013-07-18
Vous devez vous connecter pour publier un commentaire.
Un constructeur et une méthode sont deux choses différentes. Le fait que vous pouvez écrire la même ou de code similaire à l'intérieur d'eux n'est pas pertinent.
Lorsqu'un nouvel objet est créé un constructeur est appelé. Si vous ne spécifiez pas un le compilateur va créer une valeur par défaut pour vous. C'est l'endroit où initializaton de l'objet et champs prend de la place et de la mémoire est allouée pour l'objet. C'est un concept que tous les langages orientés objet ont. Un nouvel objet doit être initialisé en quelque sorte. La mémoire doit être alloué. En Java, vous n'avez pas à gérer la mémoire de soi-même (au moins, pas directement en tout cas) donc c'est le but du constructeur. A noter que depuis un constructeur est toujours exécuté, ce comportement est forcée dès que vous appelez par exemple
Person p = new Person();
.Maintenant depuis un constructeur est toujours appelé, vous avez une option ici: ne vous laissez la valeur par défaut du constructeur d'exécuter ou de faire de vous créer un vous-même? Peut-être il y a des champs qui doivent être initialisés dans une autre manière que leurs valeurs par défaut. Ou peut-être vous avez besoin de ne pas autoriser la création d'un objet sans fournir certaines valeurs. Si vous définissez un constructeur vous-même, le compilateur ne crée pas de valeur par défaut pour vous. Donc, si j'ai
public Person(String firstName, String lastName) {}
puis j'ai créé une règle spécifique qui est de nouveau appliquée par le système: un nouvel objet de la classe Personne ne peut pas être créé si vous lui donnez un nom et prénom:À l'aide d'une méthode vous ne pouvez pas respecter cela. Le programmeur à l'aide de votre classe pourrait appeler votre méthode ou pas. Le constructeur est une partie de la cycle de vie de l'objet. Les méthodes de définir les comportement de l'objet
OriginalL'auteur c.s.
Certains points :
1) les Constructeurs sont la seule façon de définir
final
variables d'instance .2) Une classe avec
private
constructeur ne peut pas être sous-classé.3) Si votre classe est une sous-classe et de la classe de base ne possède pas de constructeur par défaut , alors vous avez besoin d'un constructeur dans votre classe pour appeler le super constructeur de la classe.
OriginalL'auteur NINCOMPOOP
L'un des avantages de l'utilisation d'un constructeur sur une méthode est que vous pouvez être assuré que le constructeur a été appelée et le travail dans le constructeur a été réalisée.
La langue indique que pour construire un objet d'un constructeur doit être appelé. Donc, si vous utilisez une méthode personnalisée pour établir l'état initial de l'objet, vous aurez besoin d'appeler le constructeur par défaut de la première. Pourquoi faire deux appels de méthode lorsque vous pouvez effectuer le travail dans un appel du constructeur et être assuré que l'objet a été correctement initialisé?
OriginalL'auteur Kevin Bowersox
Si vous créez un nouvel Objet de
MyClass
il va automatiquement appeler le constructeur permet d'initialiser tous les membres en son sein, et être sûr que ces objets membres sont tous initialisés.Généralement:
Un constructeur est toujours appelé une fois lorsque vous créez un nouvel Objet de cette classe, et vous cant appel manuellement.
Et ne faire "vrai" travail dans un constructeur, car il va ralentir la création d'objets de cette classe uniquement initialiser votre classe/membres-t-il.
Vous pouvez également utiliser différents constructeurs, en fonction de vos besoins, mais si vous créez un constructeur, il n'y a plus de constructeur par défaut!
Exemple:
OriginalL'auteur Benjamin Schwalb
Essentiellement un constructeur est juste une méthode spéciale qui, implicitement, retourne un objet du type contenant. Il est généralement préférable d'utiliser des constructeurs pour créer des objets - c'est ce que les gens attendent de voir.
Cependant, il est utile de l'idiome appelé le
factory method
(plus d'info à ce lien), qui est essentiellement à l'aide d'une méthode statique pour construire un objet, les principaux avantages d'êtrestatic constructor
mais la méthode de fabrique.Ma compréhension est qu'il a été considéré comme un constructeur statique si elle est revenue au type de contenant de classe, et une méthode de fabrique, si non (par exemple, il appartient à une classe factory). Cependant un peu googler suggère que la méthode de fabrique est le nom commun dans les deux cas, la mise à jour de ma réponse. Merci!
OriginalL'auteur robjohncox
Vous pouvez définir
final
les champs sans initialiseur dans un constructeur. Cela aide à construireimmutable
instances:Donc au bout d'un constructeur comme cela, vous pouvez compter sur le fait que l'instance est initialisé complètement (et dans ce cas, les valeurs sont immuable/constante).
OriginalL'auteur Beryllium
Constructeur n'est pas comme de simples méthodes. Il est appelé à chaque fois que l'objet de cette classe est créée. Vous n'avez pas besoin de l'appeler explicitement.
Il y a des choses que nous devons faire immédiatement lorsque l'objet est créé, par exemple, lorsque vous créez une interface graphique genre de chose que vous voulez définir un grand nombre de propriétés dans le temps de la création, comme la taille de la fenêtre etc.
Un autre avantage du constructeur est de la sécurité de la classe. Vous ne pouvez pas créer un objet, sauf si vous connaissez le droit de périmètres de constructeur.
Plus de détails:http://docs.oracle.com/javase/tutorial/java/javaOO/constructors.html
OriginalL'auteur zaingz
Certains points :
OriginalL'auteur rashedcs