1. ユーザーが直接データを入力できないように属性をカプセル化する ユーザーが「object.property」メソッドを使用して属性に値を代入できないようにする必要があります。
2. クラスの属性をプライベート化し、この属性の値を取得 (getXxx) および設定 (setXxx) するためのパブリック メソッドを提供します
カプセル化を反映し、
1 に一致する権限修飾子が必要です。Java によって指定された 4 つの権限 (小さいものから大きいものへ並べられています) : private、Default、protected、public
2. 次の 4 つのアクセス許可を使用して、クラスとその内部構造を変更できます: 属性、メソッド、コンストラクター、内部クラス
3. 特定のはい、4 種類のアクセス許可を使用して内部構造を変更できます。クラスの: 属性、メソッド、コンストラクター、内部クラス
クラスを変更する場合に使用できるのは、default、public
例:
package KindMethod3; public class privateTest { // 用private修饰,定义为私有变量,外不不能随意更改 private int age; //年龄 private String name; //名字 // 同时,我们给这两个属性创建两个可以更改他们的接口 public void setAge(int age){ this.age=age; } public int getAge(){ return age; } public void setName(String name){ this.name=name; } public String getName(){ return name; } public void disPlay(){ System.out.println("我的名字叫"+name+"今年"+age+"岁"); } }
package KindMethod3; public class privateTest1 { public static void main(String[] args) { privateTest sc = new privateTest(); // 这个时候就不能直接给类中属性直接赋值了,就会报错 // sc.age=18; // sc.name="小芳" // 我们需要通过set方法给属性赋值,get取值 sc.setAge(18); sc.setName("小芳"); sc.disPlay(); } }
コードをチェックして実行結果を確認してください:
public class Order { private int text1; int text2; public int text3; private void methodPrivate(){ text1 = 1; text2 = 2; text3 = 3; } void methodDefault(){ text1 = 1; text2 = 2; text3 = 3; } public void methodPublic(){ text1 = 1; text2 = 2; text3 = 3; } }
public class OrderTest { public static void main(String[] args) { Order order = new Order(); order.text2 = 1; order.text3 = 2; //出了Order类之后,私有的结构就不可以调用了 // order.text1 = 3;//The field Order.text1 is not visible order.methodDefault(); order.methodPublic(); //出了Order类之后,私有的结构就不可以调用了 // order.methodPrivate();//The method methodPrivate() from the type Order is not visible } }
以上がJavaカプセル化とパーミッション修飾子の適用例の分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。