标签:_id mos interface compiler super 没有 运算 多重 活性
1.后绑定(动态绑定)
2.继承与接口实现的多态性
3.排序(选择排序法和插入排序法)
4.搜索(线性搜索和二分搜索)
问题1解决方案: 没看到这里的时候,一直认为引用变量是什么类型的,就只能调用相关的方法。所以在每次写类的时候,都一直尽力于完善有关的方法。动态绑定的执行效率低于早期绑定,但是动态绑定所体现的灵活性是不能比的。
- 引用变量的类型和该引用变量指向的对象必须是兼容的,但不必完全相同,两者的关系可以是很灵活的。
问题2的解决方案:java实现运行时多态性的基础是动态方法的调度,它是一种在运行时而不是在编译期调用重载方法的机制。多态的存在,可以对原有代码的替换、可行的扩充,可以进行灵活多样的操作,极大的提高了使用效率,同时通过蓝墨云上视频内容的讲解,对于数据库内的类型进行修改或是替换到亮一个数据库里,我们总不能把所有数据进行调用,再进行添加吧,所以为了解决这种问题的发生,我们可以在两者之间进行一个多态的应用,就可以极大的缩短解决事件和解决中产生的问题。
- 多态性是指一个引用变量在不同时刻可以指向不同类型的对象。通过这种方式调用的方法在不同时刻将于不同方法实现代码的绑定。被绑定的方法代码取决于被引用的对象的类型。
问题3的解决方案:排序的问题是用多态性解决的问题之一。本书介绍了两种相对简答的排序方法,我在网上又查出了冒泡排序、希尔排序、快速排序、堆排序等不同类型的排序方式(足可见出数据结构原理有多强大,有多烧脑了)
- 相同点:相同的排序效果、同等的效率、类似的双层循环、都执行大约n*n次的操作
- 不同点:排序方法有所不同,选择排序法可以是两个数的替换所达到有一定的顺序,插入排序法是进行一个个类似顺时针的循环进行的排序。选择排序法所执行的交换操作的次数相对较少,选择法优于插入法。
问题4的解决方案:线性搜索是以一个端点开始进行“逐一的”、“有顺序的”搜索。二分搜索的方式类似高中数学学过的“二分法”,不断的取中点,一半一半的进行筛选。相比线性搜索,二分搜索的效率更高,但二分搜索有一个弊病,就是数组中的元素必须是有一定的顺序的(升序或者降序)对于两种搜索方式的选择,数据的搜索量较大的优选二分搜索,搜索的效率不是重要问题的情况下,我们可以选择线性搜索。
- 被搜索的一组元素称为搜索池
- 对于二分搜索如果是偶数个的元素,我们在第一次选择的时候,通过代码
mid = (min + max) / 2
就可以看出,除不开的情况下会选择中间两个数较前一个,作为中间数,进行二分的
pay()
始终是处于划红线,我又想过在各个子类里面分别实现接口,虽然pay()
没有被划红线,但是声明引用变量,并指向子类的时候,又开始划红线了。想了想是自己没有在StaffMember类里面没有实现接口,但是如果实现接口的话,这就不算是一种多态吧,两种很混乱的通过接口实现的多态性,算是自己在尝试道路上的荆棘吧,在StaffMemberen类实现接口就行,最后在产片代码中进行声明接口的引用变量,这样就可以在StaffMemberen内进行调用不同的对象,以及不同类型下的pay()
方法,实现接口内内的方法payday()
了。
问题2解决方案:对于此编程项目,着实费了不少功夫,递减的顺序在一开始就想到了把放在前面的内容放到后面就好了,但是想了想就改一个符号是不太可能吧,所以,自己就不断在下面改来改去的,但是始终达不到所要求的目的,通过问同学如何解决的,原来自己最原先的想法是正确的。感觉题目骗人,不带出这种重新编写的,仅仅修改一个符号就可以了。
- 错题1:Inheritance through an extended (derived) class supports which of the following concepts?(继承通过扩展(派生)类来支持下列概念中的哪一个?)
- A.interfaces
- B.modulary
- C.information hiding
- D.code reuse(代码复用)
- E.correctness
- 错题2:Which of the following is true regarding Java classes?(对于Java类,下面哪个选项是正确的?)
- A.All classes must have 1 parent but may have any number of children (derived or extended) classes(所有的类都必须有一个父类,但是可能有任意数量的子类(派生的或扩展的)类。)
- B.All classes must have 1 child (derived or extended) class but may have any number of parent classes
- C.All classes must have 1 parent class and may have a single child (derived or extended) class
- D.All classes can have any number (0 or more) of parent classes and any number of children (derived or extended) classes
- E.All classes can have either 0 or 1 parent class and any number of children (derived or extended) classes
- 错题3:A variable declared to be of one class can later reference an extended class of that class. This variable is known as(声明为一个类的变量稍后可以引用该类的扩展类。这个变量被称为。)
- A.protected
- B.derivable
- C.cloneable
- D.polymorphic(多态)
- E.none of the above, a variable declared to be of one class can never reference any other type of class, even an extended class
- 错题4:In order to determine the type that a polymorphic variable refers to, the decision is made(为了确定多态变量所指的类型,做出了决策。)
- A.by the programmer at the time the program is written
- B.by the compiler at compile time
- C.by the operating system when the program is loaded into memory
- D.by the Java run-time environment at run time(通过运行时的Java运行环境。)
- E.by the user at run time
- 错题5:Using the reserved word, super, one can(使用保留字super,可以)
- A.access a parent class‘constructor(s)
- B.access a parent class‘methods and instance data
- C.access a child class‘constructor(s)
- D.access a child class‘methods and instance data
- E.none of the above
- 错题6:If you instantiate an Abstract class, the class or object you wind up with(如果您实例化一个抽象类、类或对象会得到)
- A.is also an Abstract class
- B.is a normal class
- C.is an Interface
- D.is a reference to an Object
- E.can‘t exist you cannot instantiate an Abstract class(不能存在不能实例化一个抽象类)
错误解析:您只能实例化具体的类而不是抽象类。但是您可以扩展抽象类和接口。
- 抽象类其实是可以实例化的,但是他的实例化方式不是通过new方式来创建对象,而是通过父类的引用来指向子类的实例来间接地实现父类的实例化(因为子类要实例化前,一定会先实例化他的父类。这样创建了继承抽象类的子类的对象,也就把其父类(抽象类)给实例化了).但是:接口是不能被实例化的(接口压根就没有构造函数)。
- 错题7:A derived class has access to all of the methods of the parent class, but only the protected or public instance data of the parent class.(派生类可以访问父类的所有方法,但只访问父类的受保护或公共实例数据。)
- A.true
- B.false
- 错题8:If class AParentClass has a protected instance data x, and AChildClass is a derived class of AParentClass, then AChildClass can access x but can not redefine x to be a different type.(如果类AParentClass有一个受保护的实例数据x,而AChildClass是一个派生类的AParentClass,那么AChildClass可以访问x,但不能重新定义x为另一种类型。)
- A.true
- B.false
学习第十章的时候,通过老师给的书上例题代码,可以省去不少时间去理解多态性有关的知识点,但是,本周发布了一个感觉很好做的(实则并不是的)一个小组项目-四则运算的编写,但是细细思考了一下,突然发现,本周好忙啊~~关于多态性的问题还没有深入思考的同时还要编写项目的UML类图。好在还有一个五一小假可以忙里偷闲!
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 136/136 | 1/1 | 15/15 | |
第二周 | 570/706 | 1/2 | 20/35 | |
第三周 | 613/1319 | 1/3 | 23/58 | |
第四周 | 1249/2568 | 1/5 | 30/88 | |
第五周 | 904/3472 | 1/6 | 30/118 | |
第六周 | 540/4012 | 1/7 | 30/118 | |
第七周 | 826/4838 | 1/7 | 30/178 | |
第八周 | 925/5763 | 2/9 | 45/223 |
标签:_id mos interface compiler super 没有 运算 多重 活性
原文地址:https://www.cnblogs.com/sanjinge/p/8976523.html