OOP 第二章作业总结】的更多相关文章

实现策略 这里结合一下我画的第三次作业的时序图(可能有画的不好的地方)来叙述一下我的实现逻辑.最开始主线程负责创建必要的线程(输入.调度线程)与请求队列类实例:输入线程负责与人进行交互,将获取到的请求放入请求队列:调度线程则每次从请求队列中取出一个请求,将其分发给三个电梯,若需要拆分,则新建一个次级调度线程,将第二部分的请求的分发任务交给它来实现:电梯线程只需要负责模拟自己电梯的运行即可. 本次作业共享数据的同步互斥主要采用的是 synchronized 方法,再配以 wait notifyAl…
/*第二章 作业*/ create table S ( sno char(2) NOT NULL UNIQUE, sname char(3), city char(2) ); alter table S add constraint s_k primary key(sno); create table P ( pno char(2) NOT NULL, pname char(3), color char(1), weight int ); alter table P add constraint…
程序设计结构分析 类图分析 第一次作业 由于第一次作业完成的功能比较简单,而且出于对面向对象设计理念不熟悉(其实现在也不是很熟悉,逃),整个程序设计的非常简单.通过类图(见下)可以看出,程序只有两个类:PolyCal 包含 main 方法,充当表达式类的功能,并且完成对输入的解析:Poly 充当项类,管理一个项内的因子,并向 PolyCal 提供服务. 第二次作业 这次作业虽然较上一次而言,划分出了很多类,但其实与第三次作业助教提示的设计架构仍有较大的差距,面向过程的意味仍然非常明显.PolyC…
OO第二次博客作业 (1)作业分析 三次作业在处理多线程的协同配合时都是使用将同步放在自己写的"线程安全类"(经测试有些许漏洞_,但是不影响结果就是了): 我个人倾向于把wait()和notify()等操作放在安全类里面,这样可以实现逻辑上的抽象,不会使得电梯的工作逻辑比较乱,一开始使用了Java自带的线程安全类,但是在终止输入.电梯.调度器时遇到了问题,所以最后还是自己乖乖写了一个自己的类,把request包装了一下,仅仅在里面加入了我自己关于中断的逻辑: 第一次和第二次都是把电梯线…
第二单元的电梯真是愉♂快呢,多线程编程作为java编程OOP中的重要组成部分,通过这一个单元的学习,我也是有了很多全新的认识 那么下面就先例行一下公事 三次作业分析 第五次作业 设计分析 实现的电梯是很简单的,没有复杂的逻辑,主要目的应该也是帮助同学们入手多线程编程,加上课上对设计模式有所点拨,所以整体的设计应该是不难的,编码量也不大,只要处理好锁的关系和wait与notify的时机,不要出现死锁,基本是不会有什么问题的 下面给出我的设计,也就是中规中矩的生产者-消费者模式 这里我封装了自己的一…
1. 继承: ●继承是面向对象的三大特征之一,是JAVA实现代码重用的重要手段之一: ●继承是代码重用的一种方式,将子类共有的属性和行为放到父类中: ●JAVA只支持单继承,即每一个类只有一个父类,继承表达的是:子类与父类是is-a关系: ●在JAVA中,所有的JAVA类都直接或间接的继承了java.lang..Object类.Object类是所有JAVA类的祖先: ●在定义一个类时如果没有使用extends关键字,那么这个类直接继承Object类: ●继承可以解决代码复用,让我们的编程更加靠近…
一. 封装: 属性通过private访问修饰符将其设置为私有的,只有当前类中可以访问,同时提供通过public访问修饰符的公共方法可以给任何类中访问. 通常针对属性提供公共的setter方法进行赋值,提供公共的getter方法进行取值,若需要的情况下可以在方法中添加一些逻辑判断代码保证数据的安全性. 代码参见: com.oop.ch02.Dept com.oop.ch02.Emp 1.八种基本数据类型对应的有八种引用数据类型(包装数据类型), * byte short int long loat…
第3题题目是: 完成小组的"四则运算"项目的需求文档(使用Markdown写文档),尝试同组成员在各自PC上修改同一文档后,如何使用Git命令完成GitHub上的文档的更新,而不产生冲突.并验证GitHub上的文档确实是最新的文档. 啥也不说了,上一段文档吧. -------------------------------我是分割线------------------------------- 小学生四则运算项目需求文档 编辑:万世想:纪梓潼:范鹏宸 时间:2016年9月18日 一.项…
1 方法重写必须满足以下要求: 1 重写方法与被重写的方法必须方法名相同,参数列表相同. 2 重写方法与被重写的方法返回值类型必须相同或是其子类 3 重写方法不能缩小被重写方法的访问权限 2 重载和重写有什么区别和联系 重载涉及同一个类中的同名方法,要求方法名相同,参数列表不同,与访问类型访问修饰符无关 重写涉及的是子类和父类之间的同名方法,要求方法名相同.参数列表相同,返回值类型相同(或是其子类).访问修饰符不能严于父类 3 抽象类的实现相关问题详解: Calendar c = new Cal…
1.(1)if...else 用法 #include <iostream> #include <cstring> using namespace std; int main() { char X; cout<<"Menu:A(dd) D(elete) S(ort) Q(uit),Select one:"<<endl; while(cin>>X){ if(X=='A') cout<<"Data has be…