public class Person { private String name; private String streetAddress; private String cityStateZip; public Person() { name = "John Doe"; streetAddress = "55 Main Street"; cityStateZip = "Anywhere, MA 00001"; } public Person(String n, String s, String c) { name = n; streetAddress = s; cityStateZip = c; } public String getName() { return this.name; } public void setName() { this.name = name; } public String getStreetAddress() { return this.streetAddress; } public void setStreetAddress() { this.streetAddress = streetAddress; } public String getCityStateZip() { return this.cityStateZip; } public void setCityStateZip() { this.cityStateZip = cityStateZip; } public String toString() { String str = name + "\n" + streetAddress + "\n" + cityStateZip + "\n"; return str; } } In the code above I have written a class that will create a person object and will be used to create other classes that will implement this person class. While I was writing this superclass I thought, what is the difference between setter methods and constructors? Are setter methods simply helpful because you can easily just do .set(methodName) or? Would someone be willing to explain the difference between my constructor and my setter method?
3 Réponses :
Les constructeurs construisent un nouvel objet, où des setters sont créés pour mettre à jour cet objet.
Disons donc que votre nom est Ding Dong et que vous vivez, et que vous créez un objet personne avec votre nom et votre adresse suivante. p >
1234 15th Street Area 51, Nevada 12345
et vous déplacez quelques blocs dans la rue vers:
12345 15th Street Area 51, Nevada 12345
Eh bien, vous n'avez pas besoin de créer une nouvelle personne
objet parce que vous avez déménagé, il vous suffit de mettre à jour l'adresse. C'est là que vous utiliserez la méthode setter.
Conclusion: Les setters sont là pour mettre à jour votre enregistrement et les constructeurs sont là pour créer un nouvel objet Person.
J'espère que cela vous aidera !!!!
Setter définit les valeurs des attributs Objects créés précédemment. Le constructeur dans votre cas crée l'objet avec un ensemble de valeurs prédéfinies.
Pizza Marinara= new Pizza(); public void setCheese (boolean cheese ) { //sets the values explictly this.cheese = cheese ; } public void setMayonnaise (boolean mayonnaise) { this.mayonnaise= mayonnaise; //sets the value explictly }
Appel du constructeur ex:
Pizza Margherita = new Pizza(true, false) //sets value of attributes, i.e you want extra cheese or mayonnaise?
Appel Ex setter:
Class Pizza Attributes: boolean Extra Cheese , boolean Extra mayonnaise
Nous devrions utiliser l'approche constructeur lorsque nous avons besoin de créer un objet avec des valeurs d'attributs plutôt que d'appeler explicitement des setters pour chaque valeur et les définir.
Bien que les deux aient des avantages différents et soient bien adaptés à l'écosystème Java. Si vous voulez avoir un constructeur de classe immuable, utilisez autrement des setters.
Si vous voulez avoir un constructeur de classe immuable, utilisez autrement des setters.
Avec Les Setters ()
, ou mutateurs, permettent à l'appelant de mettre à jour la valeur d'une variable d'instance particulière.
Plus:
Le constructeur n'a pas besoin d'avoir le type Spécificateur d'accès , return
, tandis que les setters doivent avoir spécificateur d'accès strong >.
@ user7294900, veuillez corriger ma réponse là où elle doit être, j'aimerais en savoir plus.
Bien expliqué