夏至迎熙
●假设某硬盘由5个盘片构成(共有8个记录面),盘面有效记录区域的外直径为30cm,内直径为10cm,记录位密度为250位/mm,磁道密度为16道/mm,每磁道分16个扇区,每扇区512字节,则该硬盘的格式化容量约为(2)MB。● (3)是指按内容访问的存储器。(3)A.虚拟存储器B.相联存储器C. 高速缓存(Cache) D. 随机访问存储器 阅读下列说明,回答问题1和问题2,将解答填入答题纸的对应栏内。【说明】假设某大型商业企业由商品配送中心和连锁超市组成,其中商品配送中心包括采购、财务、配送等部门。为实现高效管理,设计了商品配送中心信息管理系统,其主要功能描述如下:1. 系统接收由连锁超市提出的供货请求,并将其记录到供货请求记录文件。2. 在接到供货请求后,从商品库存记录文件中进行商品库存信息查询。如果库存满足供货请求,则给配送处理发送配送通知;否则,向采购部门发出缺货通知。3. 配送处理接到配送通知后,查询供货请求记录文件,更新商品库存记录文件,并向配送部门发送配送单,在配送货品的同时记录配送信息至商品配送记录文件。4. 采购部门接到缺货通知后,与供货商洽谈,进行商品采购处理,合格商品入库,并记录采购清单至采购清单记录文件、向配送处理发出配送通知,同时通知财务部门给供货商支付货款。该系统采用结构化方法进行开发,得到待修改的数据流图(如图1-1所示)。【问题1】(8分)使用【说明】中的词语,给出图 1-1 中外部实体 E1 至 E4 的名称和数据存储 D1 至D4的名称。【问题2】(7分)图 1-1 中存在四处错误数据流,请指出各自的起点和终点;若将上述四条错误数据流删除,为保证数据流图的正确性,应补充三条数据流,请给出所补充数据流的起点和终点。(起点和终点请采用数据流图1-1中的符号或名称) 数据库系统工程师2009年上半年软考真题,详情请参见参考资料 。
Kiwi琪薇
(1)组合has-a的作用。[java] view plain copy print?public class TV { Show show; public String toString(){ return "showgirl"; } } class Show{ } 提一下toString方法,当你需要String而你是一个对象的时候,编译器会调用对象的toString方法。TV里有Show,现在的show没有初始化,为null,不能调用show的方法。组合的作用强大,以面向对象看,假如你在造一个Car类,那么你可以用组合轻易的将Glass,Light,Engine等等的Car这些部件组合起来。(2)继承is-a[java] view plain copy print?package ; public class Father { public int i; void get(){ ("father"); } } package son; import .*; public class Son extends Father{ Father f = new Father(); int j = ; Son son = new Son(); (); } public void get(){ (); ("son"); } } 这里有个包访问权限的问题,假如没有加public的时候,默认是包内成员访问,不同包访问,即Son中的Father成员访问get方法是不可见的。而public的话是可见的,所以i访问得到。private部分是不能继承,属于父类私有,而public的部分,将继承,需要修改的方法,可以进行重写。要添加的属性可以单独添加。而且继承的方法,如果原本的father的public方法重写之后没将public加上,会有Cannot reduce the visibility of the inherited method from Father,也就是不能减少父类中继承方法的可见性。super指的是父类,即Father。还有一点是,其实java中所有的类都隐式地继承了Object类。Object是父类,其他类是子类老外喜欢讲为基类。子类也叫导出类或者派生类。(3)代理设计模式里面有个比较难懂的——代理模式,作者讲的很有趣,代理是组合和继承的中庸之道。[java] view plain copy print?package son; class Father{ public void get(){ ("father"); } } public class Son extends Father{ public static void main(String[] args) { Father f = new Father(); (); } } class FatherProxy{ private Father f = new Father(); public void get(){ (); } } 像直接把Father当做成员,那么father的方法就暴露给这个类了,那我们可以使用FatherProxy这样的代理类,我自己定义好get方法是怎么拿的,我自己知道是调用father的get方法,但是使用我这个代理的人不知道,我只告诉他你要用就用代理的get的方法就可以了。封装性就体现出来了。上面只是随便敲的一个简单例子。(4)重写和重载[java] view plain copy print?class Father{ public void get(String s){ ("father"); } public void get(boolean b){ ("boolean"); } } public class Son extends Father{ @Override public void get(String s){ ("father"); } // @Override //会有错误提示 因为父类没有该方法,不是重写 public void get(int i ){ ("sonint"); } public static void main(String[] args) { Son s = new Son(); ("d"); (false); (1); } } 重写是重新覆盖父类的方法,如果没有重写或者重载,那么子类调用一个子类没有的方法时,其实是调用父类。重载是同样的方法名,但参数名称不同,为了防止你错误的进行重载可以加上@Override标签,那样会提示你并没有重写方法。(5)protectedJava编程思想(三) —— 访问权限的控制在前面一篇提前写了,因为之前没讲继承的东西。可以简单将protected看成父类给儿子继承的遗产,其他非继承类不能访问。(6)final关键字加上final关键字的基本类型,表示这个变量初始化后不会改变。类似c的define,你希望一个变量在这个程序里就是这个值不需要改变。就可以用final。
优质工程师考试问答知识库