面向对象特征之一:封装和隐藏

来源:互联网 发布:法治知识网络大赛登录 编辑:程序博客网 时间:2024/05/19 00:52

    使用者对类内部定义的属性(对象的成员变量)的直接操作会导致数据的错误、混乱或安全性问题。

    Java中通过将数据声明为私有的(private),再提供公共的(public)方法:getXxx()和setXxx()实现对该属性的操作,以实现下述目的:

  • 隐藏一个类中不需要对外提供的实现细节;
  • 使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑,限制对属性的不合理操作;
  • 便于修改,增强代码的可维护性;

public class Animal{private int legs;//将属性legs定义为private,只能被Animal类内部访问public void setLegs(int i){  //在这里定义方法 eat() 和 move() if (i != 0 && i != 2 && i != 4){     System.out.println("Wrong number of legs!");     return;}legs=i;}public int getLegs(){return legs;}  }public class Zoo{public static void main(String args[]){Animal xb=new Animal();xb.setLegs(4);  //xb.setLegs(-1000);                xb.legs=-1000;  //非法System.out.println(xb.getLegs());    }  }