En tant que connaissance préalable, le contenu du lien ci-dessus est requis.
--ʻEncapsulation` consiste à définir les attributs d'un objet et les opérations associées ensemble dans la même classe.
ne sont accessibles que via la
méthode accesseur`.Classe d'essai
package Nom du package;
nom de la classe principale de la classe publique{
public static void main(String[] args) {
//Génération d'instance
Nom de la classe Nom de la variable=nouveau nom de classe();
//Mettre une valeur dans setter
Nom de variable.définir le nom de la variable d'instance(Argument réel);
//Obtenez la valeur saisie par getter
System.out.println(Nom de variable.getインスタンスNom de variable());
}
}
Classe d'encapsulation
package Nom du package;
nom de classe de classe{
//Définition des variables d'instance
nom de type privé nom de variable;
//Constructeur (exécuté lors de l'instanciation)
nom de la classe(){
Processus d'initialisation, etc.
}
// setter
nom de la variable d'instance void set(Nom du type Nom de l'argument){
this.Nom de variable=Nom de l'argument;
}
// getter
Nom du type obtenir le nom de la variable d'instance(){
retourne le nom de la variable;
}
}
[Fichier (F)] -> [Nouveau (N)] -> [Projet Java]
.
Test1.java
package Test1;
public class Test1 {
public static void main(String[] args) {
//Génération d'instance
TestCapsule tc = new TestCapsule();
//Mettre une valeur dans setter
tc.setHello("Bonjour");
//Obtenez la valeur saisie par getter
System.out.println(tc.getHello());
}
}
TestCapsule.java
package Test1;
public class TestCapsule {
//Définition des variables d'instance
private String hello;
//Constructeur (exécuté lors de l'instanciation)
public TestCapsule() {
this.hello = "Hello";
}
// setter
public void setHello(String hello) {
this.hello = hello;
}
// getter
public String getHello() {
return hello;
}
}
S-JIS
comme code de caractère, enregistrez le nom du fichier sous Test1.java
, TestCapsule.java
et exécutez-le. ↓ ↓
―― Un test avec un maximum de 100 points réussit 60 points ou plus.
Test1.java
//Un système qui gère les noms des candidats et les scores des candidats
package Test1;
public class Test1 {
public static void main(String[] args) {
//Génération d'instance
TestCapsule tc1 = new TestCapsule("A",50);
TestCapsule tc2 = new TestCapsule("B",60);
//Changements de variable inattendus
tc1.score = 10000;
tc2.score = -100;
//Affichage réussite / échec
tc1.Result();
tc2.Result();
}
}
TestCapsule.java
package Test1;
public class TestCapsule {
//Définition des variables d'instance
String name;
int score;
//Constructeur (exécuté lors de l'instanciation)
public TestCapsule(String name, int score) {
this.name = name;
//Contre-mesures contre l'entrée de points illégaux
if(0 <= score && score <= 100) {
//0 ou plus et 100 ou moins
this.score = score;
}else {
//Moins de 0 ou plus de 101
this.score = 0;
}
}
//Méthode de jugement réussite / échec
void Result() {
if(60 <= score) {
//Passer
System.out.println(name+"Est"+score+"Passé en termes de points.");
}else {
//échec
System.out.println(name+"Est"+score+"Il échoue en termes de points.");
}
}
}
--Dans l'exemple ci-dessus, puisque le test est un score parfait de 100 points, ni «10000 points» ni «-100 points» n'existent.
--ʻEncapsulation a pour rôle
d'empêcher la manipulation non autorisée des données en créant une situation où la fonction est transmise une fois sans manipuler directement les données.
--Si vous ʻencapsulez``TestCapsule.java` dans l'exemple ci-dessus, ce sera comme suit.
Test1.java
//Un système qui gère les noms des candidats et les scores des candidats
package Test1;
public class Test1 {
public static void main(String[] args) {
//Génération d'instance
TestCapsule tc1 = new TestCapsule("A",50);
TestCapsule tc2 = new TestCapsule("B",60);
//Changements de variable inattendus
tc1.setScore(10000);
tc2.setScore(-100);
//Affichage réussite / échec
tc1.Result();
tc2.Result();
}
}
TestCapsule.java
package Test1;
public class TestCapsule {
//Définition des variables d'instance
private String name;
private int score;
// setter
public void setName(String name) {
this.name = name;
}
// getter
public String getName() {
return name;
}
// setter
public void setScore(int score) {
//Contre-mesures contre l'entrée de points illégaux
if(0 <= score && score <= 100) {
//0 ou plus et 100 ou moins
this.score = score;
}
}
// getter
public int getScore() {
return score;
}
//Constructeur (exécuté lors de l'instanciation)
public TestCapsule(String name, int score) {
this.name = name;
//Contre-mesures contre l'entrée de points illégaux
if(0 <= score && score <= 100) {
//0 ou plus et 100 ou moins
this.score = score;
}else {
//Moins de 0 ou plus de 101
this.score = 0;
}
}
//Méthode de jugement réussite / échec
void Result() {
if(60 <= score) {
//Passer
System.out.println(name+"Est"+score+"Passé en termes de points.");
}else {
//échec
System.out.println(name+"Est"+score+"Il échoue en termes de points.");
}
}
}
--Copiez l'instruction ci-dessus, écrasez-la avec le Test1.java
et le TestCapsule.java
enregistrés précédemment, enregistrez-le et exécutez-le. ↓ ↓
Recommended Posts