Maison  >  Article  >  Java  >  java orienté objet - encapsulation

java orienté objet - encapsulation

王林
王林avant
2019-11-28 14:12:502179parcourir

java orienté objet - encapsulation

Vue d'ensemble

Le langage de programmation orienté objet est une simulation du monde objectif. Dans le monde objectif, les variables membres sont cachées à l'intérieur de l'objet. . Il ne peut pas être directement manipulé ou modifié. L'encapsulation peut être considérée comme une barrière de protection qui empêche le code et les données d'une classe d'être librement accessibles par d'autres classes. Pour accéder aux données de cette classe, vous devez utiliser la méthode spécifiée.

Une encapsulation appropriée peut rendre le code plus facile à comprendre et à maintenir, et également améliorer la sécurité du code.

Principe

Masquer les attributs. Si vous avez besoin d'accéder à un attribut, fournissez des méthodes publiques pour y accéder.

Étapes d'encapsulation

Utilisez le mot-clé privé pour modifier les variables membres.

Pour les variables membres auxquelles il faut accéder, une paire correspondante de méthodes getXxx et de méthodes setXxx est fournie.

Recommandation vidéo d'apprentissage Java : Tutoriel Java en ligne

Opération encapsulée – mot clé privé

La signification de privé :

Private est un modificateur d'autorisation, qui représente l'autorisation minimale. Il peut modifier les variables membres et les méthodes membres modifiées par private ne sont accessibles que dans cette classe.

Format d'utilisation de private

private 数据类型 变量名 ;

Utiliser private pour modifier les variables membres, le code est le suivant :

java orienté objet - encapsulation

Fournissez la méthode getXxx / la méthode setXxx, vous pouvez accéder aux variables membres, le code est le suivant :

java orienté objet - encapsulation

Optimisation de l'encapsulation 1 - ce mot-clé

Nous avons constaté que le nom du paramètre formel dans la méthode setXxx ne répond pas aux exigences de connaissance de la signification en voyant le nom. Donc, si la modification est cohérente avec le nom de la variable membre, sera-t-il connu par son nom ? Le code est le suivant :

java orienté objet - encapsulation

Après modification et tests, nous avons trouvé un nouveau problème, l'affectation des variables membres a échoué. En d’autres termes, après avoir modifié le nom de la variable paramètre formel de setXxx(), la méthode n’attribue pas de valeur à la variable membre ! En effet, le nom de la variable du paramètre formel a le même nom que le nom de la variable membre, ce qui entraîne le masquage du nom de la variable membre dans la méthode, ce qui fait que l'affectation échoue. Par conséquent, nous ne pouvons utiliser que le mot-clé this pour résoudre ce problème de nom en double.

La signification de ceci

this représente la référence (valeur d'adresse) de l'objet actuel de la classe, c'est-à-dire la référence de l'objet lui-même.

Rappelez-vous : sur quel objet la méthode est appelée, ceci dans la méthode représente cet objet. Autrement dit, celui qui appelle, cela représente.

ce format :

this.成员变量名;
rrree

Astuce : Lorsqu'il n'y a qu'un seul nom de variable dans la méthode, celui-ci est également modifié par défaut et peut être omis.

Optimisation d'encapsulation 2 - Constructeur

Lorsqu'un objet est créé, le constructeur est utilisé pour initialiser l'objet et attribuer des valeurs initiales aux variables membres de la valeur de l'objet.

Astuce : Que vous personnalisiez le constructeur ou non, toutes les classes ont des constructeurs, car Java fournit automatiquement un constructeur sans paramètre. Une fois que vous avez défini un constructeur, Java le fournit automatiquement. échouer.

Format de définition de la méthode constructeur :

java orienté objet - encapsulation

Dans la manière d'écrire la méthode constructeur, le nom de la méthode et son emplacement Les noms de classe sont les mêmes. Il n'a pas de valeur de retour, donc aucun type de retour n'est nécessaire, pas même void. Après avoir utilisé la méthode constructeur, le code est le suivant :

java orienté objet - encapsulation

Remarque :

Si vous ne fournissez pas de méthode constructeur, le système ne donnera aucune méthode de construction de paramètre.

Si vous fournissez un constructeur, le système ne fournira plus de constructeur sans paramètre.

Les méthodes du constructeur peuvent être surchargées et les paramètres peuvent être définis ou non.

标准代码——JavaBean

JavaBean 是 Java语言编写类的一种标准规范。符合 JavaBean 的类,要求类必须是具体的和公共的,并且具有无 参数的构造方法,提供用来操作成员变量的 set 和 get 方法。

java orienté objet - encapsulation

编写符合 JavaBean 规范的类,以学生类为例,标准代码如下:

java orienté objet - encapsulation

测试类,代码如下:

public class TestStudent {
	public static void main(String[] args) {
		//无参构造使用
		Student s= new Student();  
		s.setName(" 柳 岩 "); 
		s.setAge(18);
		System.out.println(s.getName()+"‐‐‐"+s.getAge());
		//带参构造使用
		Student s2= new Student(" 赵 丽 颖 ",18);  
		System.out.println(s2.getName()+"‐‐‐"+s2.getAge());
	}
}

推荐相关文章教程: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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer