文档详情

章面向对象方法学引论.ppt

发布:2017-11-16约3.43万字共113页下载文档
文本预览下载声明
* 回答以下问题: 问1:行为者希望系统提供什么功能 能够处理入库/出库事务,产生定货报表 问2:行为者要创建、读取、更新或删除(CRUD)什么信息 事务,定货报表 问3:系统给行为者通知什么信息 定货报表 问4:系统需要从行为者那得到什么信息 入库/出库事务 得到用例为:处理事务,产生报表 * * * * * * 表示对象状态的数据和实现操作的代码与局部数据,都被封装在黑盒子里面,不能从外面直接访问或修改这些数据和代码。 接口是对象可以接受的消息,外部只能通过向对象发送消息来使用它。 打包指将方法与成员变量同放于一个对象中。这样,对数据的存取,只需通过调用该对象本身的方法即可。 另外一个例子: Employee雇员类就封装了属性(姓名和雇佣日期)和行为(完成工作任务与计算休假时间)。 * 面向对象程序的其它部分(对象以外的部分)都不能直接作用于一个对象的数据,对象间的通信只能通过明确的消息来进行。 该图是将外表和具体实现相分离的一个例子。 儿童用药做成球状,吃起来象泡泡糖,你根本就不知道它的主要成分是鳕鱼肝油。 方法隐藏的例子: 来看看用来统计每个雇员病假情况的人力资源应用软件。 对于开发人员来说,计算病假的公式是可见的,是每月0.5天。 假如计算公式变成了每月0.6天,这对统计报告程序是没有影响的。 * 表示对象状态的数据和实现操作的代码与局部数据,都被封装在黑盒子里面,不能从外面直接访问或修改这些数据和代码。 接口是对象可以接受的消息,外部只能通过向对象发送消息来使用它。 * Accessor 和mutator方法常常以下述形式成对出现: getSomething()用来读隐藏数据 setSomething() 用来修改隐藏数据 * An object declaration creates a reference type in a direct access memory area called the stack Date myDate; An object declaration does not actually create the object The reference initially contains the literal null Objects are created by using the new operator myDate = new Date(); Objects are allocated within an indirectly accessed memory area called the heap All objects are accessed via their object references * 表中的“?”表示对应的访问是允许的。 “*”表示子类中访问保护变量有特殊权限的限制。 public:任何包、任何类 protected:类和它的子类 package:即 “friendly”, 定义包中的任何类,是缺省值 private:类 Java可见性规则 Package本身永远可见 public类或接口对那些引用了它所在的包的类都可见 类或接口没有被声明为public,那么它只对它声明的包内的类来说是可见的 然而它可以被在另一个包中的类继承 这是Java默认的访问级别 仅当类、成员和构造器都是可见的,类的成员 (成员变量或方法)或构造器才可见 编译器强制执行可见性规则 * 根据前面的可见性规则来判断 例1:ReachMe 类和myStaticInt 变量都是public,所以myStaticInt 对于引用程序来说是可见的 如果变量myStaticInt没有被声明为public ,那又会发生什么呢? 当你编译引用程序TryAccess.java时,编译器会报如下错误: TryAccess.java:5: myStaticInt is not public in packageA.ReachMe; cannot be accessed from outside package int anInt = ReachMe.myStaticInt; ^ 1 error 例2: 编译器报以下错误: TryAccess.java:1: packageA.ReachMe is not public in packageA; cannot be accessed from outside package import packageA.ReachMe;
显示全部
相似文档