A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhqw_heima 中级黑马   /  2015-3-17 08:53  /  1374 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

所谓封装,就是把不愿让别人访问的属性都隐藏起来,只提供对外访问该属性的方法。那么问题来了,既然不想让外界访问,为什么还有提供公共访问方法呢

6 个回复

倒序浏览
兄弟啊,你是来学逻辑的吧
回复 使用道具 举报
不提供公共访问方法,那你封装就没有意义了,就好比一台电脑,你看不到电脑里面的结构,并且你不需要知道电脑内部的结构是怎样的,是怎么运作的,而只需要通过外部的键盘,各种接口和电脑图形化的界面对电脑进行操作,而这些键盘、接口和图形化就好比公共方法,如果你连这些都不提供,那电脑就没什么用处了。封装也只是隐藏了细节,而通过对象去调用方法,这是一大优点好处啊

评分

参与人数 1技术分 +1 收起 理由
万合天宜 + 1

查看全部评分

回复 使用道具 举报
殷俊 发表于 2015-3-17 10:29
不提供公共访问方法,那你封装就没有意义了,就好比一台电脑,你看不到电脑里面的结构,并且你不需要知道电 ...

灰常感谢,说的很只管明了,3Q~
回复 使用道具 举报
比如一部手机,它的系统是怎么运行的你知道吗,你只需要会使用它就行了,比如你拨一个号码,它就会调用自己内部的功能来实现这项操作,你按134xxxxxx就等于调用方法,而它是怎么运作拨通对方手机就属于隐藏的属性细节
回复 使用道具 举报
本帖最后由 李伟松 于 2015-3-17 12:50 编辑

就像把自家的门锁了就不进家了吗?所以家还是要进的,但是钥匙是你自己拿的!你好像对封装还理解不太清::)封装的好处:便于重复使用,安全性高。
  1. class Demo{
  2.     private int age;//把属性私有对外提供公共的访问方法,可控性提高了

  3.     public void setAge(int age){
  4.         if(age>0 && age<=200){
  5.             this.age = age;
  6.         }else {
  7.             System.out.println("请回火星");
  8.         }
  9.     }

  10.     public int getAge(){
  11.         return age;
  12.     }
  13.     /*
  14.     设置是setXxx要传参数
  15.     获取是getXxx要返回值类型,返回值类型和属性一致
  16.     */
  17. }
  18. class DemoTest{
  19.     public static void main(String[] args) {
  20.         Demo d = new Demo();
  21.         d.setAge(-20);
  22.         System.out.println(d.getAge());
  23.     }
  24. }
复制代码



回复 使用道具 举报
个人理解是,有时候一些程序怕他人随意乱改。所以要弄这个,增强安全性
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马