Java封装

Java封装

为什么要封装?

数据如果不封装会暴露实例变量,导致泄露资料,或被人恶意修改。
暴露的意思是可通过圆点运算符来存取,例如:

dog.size = 80;  

别人可以把值修改为任意值,不安全。

保护数据的方法:数据隐藏

使用publicprivate这两个存取修饰符。
封装的基本原则:

  1. 将实例变量标记为私有(private);
  2. 提供公有(public)的方法来控制存取动作。
//GoodDog.java  封装
public class GoodDog {
    private int size; //不能通过点运算符修改

    public int getSize() {
        return size;
    }

    public void setSize(int s) {
        size = s;
    }

    void bark() {
        if (size > 60) {
            System.out.println("Woof!Woof!");
        } else if (size > 14) {
            System.out.println("Ruff!Ruff!");
        } else {
            System.out.println("Yip!Yip!");
        }
    }

}

public class GoodDogTest {

    public static void main(String[] args) {
        GoodDog one = new GoodDog();
        one.setSize(70);

        GoodDog two = new GoodDog();
        two.setSize(8);

        System.out.println("Dog one: " + one.getSize());
        System.out.println("Dog two: " + two.getSize());

        one.bark();
        two.bark();
    }

}