Chinaunix首页 | 论坛 | 博客
  • 博客访问: 893216
  • 博文数量: 282
  • 博客积分: 10843
  • 博客等级: 上将
  • 技术积分: 2435
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-01 15:23
文章分类

全部博文(282)

文章存档

2013年(1)

2012年(18)

2011年(14)

2010年(30)

2009年(48)

2008年(55)

2007年(55)

2006年(61)

分类: Java

2007-01-31 21:08:40

每个对象都有接口
  分类是面向对象思想的基础,这也是我们说面向对象是一种思想的理由之一,因为我们在现实生活中也是这么做的(将各种人、事、物分类)。传统的程序设计语言中也有分类的做法,各种数据类型就是结果,只是这里的做法还太简单。面向对象更进了一步,我们可以设计自己的类型(type,侯捷大大翻译成了型别,似乎和我们的习惯不太一样,他是为了区分type和class),分类的结果就是各种类型(type)在程序中表现为类(class),而对象就象用数据类型(如int)定义的变量(如同int x;的写法一样)。
 
被隐藏的实现细节
  面向对象的设计方法不但参照现实世界中的方法将问题域分类,并且将分类的结果映射到程序中,而且学习了现实世界中“看人下菜碟”的做法——使不同的代码有不同的“待遇”——为代码设置了访问权限。实际上,分类只是开始,分类的目的就是要区分对待。
   “访问权限”在现实中的例子有很多,比如unix/linux中的用户有权限,论坛中的用户有不同的权限,它的意义在于:一、隐藏实现细节,保护脆弱的代码又能使客户端程序员专注自己的工作;二、使类创建者(class creators)方便的修改类设计。
 权限 本类中   同包中 不同包中的子类   不同包中的非子类
 public  可以  可以  可以  可以
 protected  可以  可以  可以  
 friendly  可以  可以    
 private  可以      
    访问权限通常意味着对访问者和被访问者两方面的限定。这里,对被访问者的限定通过在其前加入public、protected、private等访问关键字(access specifiers)来实现;对访问者的则是依照其与被访问者之间的“距离”来划分其权限的(表中竖着看):距离被访问者最近的人(在与被访问者同一类中时)可以访问所有资源,再远一点(与被访问者同一包中的某处)可以访问除private以外的资源,依此类推。当然,也可以翻转90度来说:private的资源只能被本类中的访问者访问。
阅读(1406) | 评论(0) | 转发(0) |
0

上一篇:第一章 对象导论之一

下一篇:笑话一则

给主人留下些什么吧!~~