接口要实现implements,父类要继承extends
做题技巧:如果在接口下的代码可以不写public
接口后面有个代码,在下面代码中一定有implements对他实现,接口下面是抽象方法也就是函数的实现,具体的实现再类中,
就是在这里实现,一般方法就是对接口的实现
下面对应真题实现
有一个接口实现patient这个,空出来的就是对应的抽象方法,实现这和方法就要去类里面找到一般方法代码
**第一行没有打括号的就是属性,第二行判断方法,方法名根类名一致的话就是构造方法,并且构造方法没有返回 **
这个类对patient实现,所以第三行就是一般方法,所以这题的答案就是string getName()
入口类相当于main函数,这里边一般都是new出对象的,正好入口类没有new出来的。比如如上例题Patient patient=找到实现这个接口的类,那就是圈起来的
但是要注意,构造方法位置,要填一个string类型的名字,所以这个答案是new ConcretePatient(“”)
做题技巧前面是f=后面肯定也是一个f开的因为这是命名规范。还有就是f=谁这肯定是要new的 new谁取决于上文
根据基本语法,new完是要根据点一个方法来调用。看下f类里跟谁相关就点谁,如下图Facade里只有一个dispose方法
class类下面一般填属性方法,属性名的话一般是接口名,比如如上例题。(2)BrakBhavior
图二 发现接口只有一个方法BrakeBehavior被用了,出现这种情况就需要自己点访问了,所以第三空是wheel.stop()
ShortWheelCar继承car,拥有父类car所有属性和行为
第四空上面是一个构造函数,因为有继承关系猜测出,他肯定是想拥有父类的car中的方法的,由代码中看出他没有自己new所以肯定是传过来了,所以这空就是wheel=behavior,为什么是behavior是因为构造的
总结:接口都要被类实现 一般是类的后面都会带接口的代码
在类中,一般有构造方法,属性一般方法。一般构造方法在前
属性看跟谁关联,一般填接口 不要填实现,接口也就是父子图的父类的
空心的箭头都是实现,所以一般用不到空心箭头里的
上图第二问,一般空出来就是让填属性的代码,属性一般是类型所以直接填接口的方法
抽象的方法可以不实现,也可以实现,抽象方法要点的直接点对象 比如上面例题汽车
如上题解释,类下面的代码实现。对observer进行方法的调用,已知他只有一个方法,所以后面肯定是,obs.(updata)
图二圈起来的就是调用的方法
如果遇到最后一题需要点的可以代码中找找有没有点过了 点过了直接排除。但是如果点中有Attach一般点这个,要不要加this取决于,点操作是不是当前类内部实现的
做题技巧一般代码中带有extends的就是抽象类
22年上半年题
第一问思路:返回结果是一个类型Memento 也没有参数传进去这种一般就是需要new一个,new Memento(state)为什么又state因为Memento这个类里构造方法,正好Originator也有个属性state
第二问找关键字
方法下面对应实现。实现里又add 所以需要现在方法实现才能用void add()。实现里还有个(state)他从哪里来的。查看上文发现在Memento里 所以这空是void add(Memento state)
根据第三空add后面传了Memento 第五空所以也需要Memento相关,发现它里面没有,但是发现有个savetomemento它会返回个memento,也就是它调用了originator属性,她就可以得到mementos
2016年题
属性的方法可由构造方法得出
先看5。根据上下文看到下面有tsetDuch(addrAdapter)需要addrAdapter实现正好少了这个写的时候需要根据最上面的主类,也就是圈起来的 等号后面需要把构造方法(下图圈起来的)也传进去也就是=号后的
(addr)空号里填自己的类里的
试题四
动态规划法自顶向下是递归,自低向上是for循环嵌套
命令模式
访问者
第三问选那个接受是因为这是个访问者模式肯定要接受