À propos des setters et des getters Java. <Différence par rapport à l'orientation de l'objet>

Interprétation personnelle orientée objet

Pensez à une classe comme un concept de choses dans le monde réel et considérez l'instanciation comme la matérialisation de cette image. Et je pense que l'encapsulation est un moyen de confirmer l'existence de la substance. Plus précisément, le code est le suivant.

//Classe du concept d'humain
public class Human {
    //Les humains ont trois attributs: l'âge, le sexe et le pouvoir
	private int age = 0;
	private String gender = new String();
	private double power = 0.0;

    //Les trois attributs ci-dessus doivent être définis pour la matérialisation des êtres humains.
    //Ce ne sont pas les humains qui ne possèdent pas ces attributs.
	public Human(int age, String gender, double power) {
		this.age = age;
		this.gender = gender;
		this.power = power;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public String getGender() {
		return gender;
	}

	public void setGender(String gender) {
		this.gender = gender;
	}

	public double getPower() {
		return power;
	}

	public void setPower(double power) {
		this.power = power;
	}
}

Si vous instanciez cette classe, une personne naîtra.

Orienté objet et setter

L'existence de setter permet de changer une partie de la personne née. La question se pose ici. L'existence d'êtres humains devrait changer la valeur de l'attribut par rapport à un événement. Mais pourquoi est-il possible de changer une valeur d'attribut? Cela ressemble à un langage procédural. Par exemple, lorsque ʻagechange, cela peut également affecter la puissance. Dans ce cas, vous devez préparer une méthode comme ʻupAge (). Supposons également que vous ayez ajouté le "Tissu" de l'objet "Tissu" à l'attribut, en supposant que vous êtes habillé en être humain. Ensuite, lorsque vous enfilez vos vêtements, vous passez l '«objet Tissu» en tant que poseur. Cependant, cela n'est pas considéré comme orienté objet. Les vêtements ne doivent être que des accessoires à «Humain». Les vêtements eux-mêmes ne sont pas des éléments de l'objet. Dans de tels cas, vous devez hériter de la classe et créer une classe humaine moderne. Dans de nombreux cas, le setter est un style d'écriture incompatible pour l'orientation de l'objet. Au moins, je pense qu'il vaut mieux ne pas entrer dans la super classe.

Importance de l'existence du setter

Cependant, le passeur a également une signification. C'est une méthode d'écriture obligatoire dans JavaBeans. Grâce à cela, il est possible d'écrire avec une lisibilité élevée lors de l'appel de l'élément de requête avec l'expression EL etc. dans le fichier jsp. De plus, c'est une méthode d'écriture recommandée même pour les API que je ne connais pas.

Nous avons également entendu dire qu'il était nécessaire dans le processus de transition du langage C.

Résumé

C'est mon avis depuis six mois après avoir étudié Java. Je ne pense pas que ce soit toujours correct, mais je pense personnellement que cela a du sens. Je serais reconnaissant si quelqu'un pouvait me corriger. c'est tout.

Recommended Posts

À propos des setters et des getters Java. <Différence par rapport à l'orientation de l'objet>
Getter et Setter (Java)
Encapsulation Java et getters et setters
A propos de l'orientation des objets
[Java] Différence entre "variable finale" et "objet immuable"
[Java] Différence entre == et égal
[Java] À propos de String et StringBuilder
java Generics T et? Différence
À propos du package Java et de l'importation
À propos de Ruby, modèle objet
À propos des méthodes Java statiques et non statiques
[Java] Différence entre Hashmap et HashTable
[Java débutant] À propos de l'abstraction et de l'interface
[JAVA] Différence entre abstrait et interface
[Java] Différence entre fermable et fermable automatiquement
Ceci et cela à propos de Base64 (Java)
[Java] Différence entre StringBuffer et StringBuilder
[Java] Différence entre longueur, longueur () et taille ()
Différence entre final et immuable en Java
[À propos de JDBC qui connecte Java et SQL]
À propos de la différence entre irb et pry
[Java] Différence entre la plage Intstream et la plageClosed
Différence entre int et Integer en Java
[Java] Comprendre la différence entre List et Set
[Rails / Active Record] À propos de la différence entre créer et créer!
En savoir plus sur l'image du docker et le FROM du Dockerfile
À propos des types de données Java (en particulier des types primitifs) et des littéraux
Différence entre next () et nextLine () dans Java Scanner
Java à partir du débutant, déclaration de classe / génération d'objet
Générer OffsetDateTime à partir de Clock et LocalDateTime en Java
[Java] Remarque sur la différence entre le jugement d'équivalence et le jugement d'égalité lors de la comparaison de classes String