《java编程思想》P160-P180(第八章部分+第九章部分)
1.什么是多态?
多态的定义:指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)
现实中,关于多态的例子不胜枚举。比方说按下 F1 键这个动作,如果当前在 Flash 界面下弹出的就是 AS 3 的帮助文档;如果当前在 Word 下弹出的就是 Word 帮助;在 Windows 下弹出的就是 Windows 帮助和支持。同一个事件发生在不同的对象上会产生不同的结果。
2. 接口中的方法默认是public的(即使没有进行声明),当要实现一个接口时,在接口中定义的方法必须是public的.
3.接口为什么能够解耦?
因为方法的多态,所以接口的调用者只需要调用接口,具体的业务交给接口的实现者去实现即使用接口,可以避免接口调用方直接参与业务逻辑实现,所以能避免接口调用与业务逻辑实现紧密关联,即解耦
4.使用接口的核心原因:1.能向上转型为多个基类 2.防止客户端程序员创建该对象
5.内部类中,如果要生成外部类对象的引用,可以使用外部类的名字后面紧跟圆点和this.
6.用某个外部类对象去创建它的某个内部里对象时,可以用外部类对象的引用后面跟上.new语法.
public class test {
class A{
public A()
{
print();
}
void print()
{
System.out.println("A");
}
}
public class B extends A{
public B()
{
print();
}
void print()
{
System.out.println("B");
}
}
public static void main(String[] args) {
test t = new test();
A a = t.new B();
}
}
7.在拥有外部类对象之前是不可能创建内部类对象的.这是因为内部类对象会暗暗连接到创建它的外部类对象上.但是如果使用嵌套类(静态内部类),那么就不需要对外部对象的引用.
8.如果定义一个匿名内部类,并且希望它使用一个其外部定义的对象,那么编译器会要求其参数引用是final的.
9.匿名内部类没有构造函数(因为它没有名字),但是可以用构造代码块(类里用大括号括起的代码,与静态块就差个static)来为它进行初始化. (感觉什么用,穿进来的参数还是得写成final)
10.找到不把参数设成final就可以传进内部类的办法(因为要设final是因为匿名内部类里用了,但只要把这件事交给构造器干就没事了)
public class test {
class A{
int a;
public A(int c)
{
a=c;
}
}
public static void main(String[] args) {
test t = new test();
A a = t.getA(666);
}
private A getA(int c) {
c=777;
return new A(c)
{
{
System.out.println(a);
}
};
}
}
《java编程思想》P160-P180(第八章部分+第九章部分)的更多相关文章
- 《Java编程思想》笔记 第八章 多态
1.向上转型 把子类引用当作父类引用.(子类对象赋值给父类引用) 2.绑定 确定方法属于哪个类. 3.前期绑定 程序执行前绑定. 4.后期绑定也叫动态绑定 程序运行时绑定. 5.多态 多个不同的对象对 ...
- 《Java编程思想第四版》第 16 章 设计范式-提到观察者模式
在由Gamma,Helm 和 Johnson 编著的<Design Patterns>一书中被定义成一个“里程碑”.那本书列出了解决这个问题的 23 种不同的方法 16.1.2 范式分类 ...
- java编程思想第四版第十四章 类型信息习题
fda dfa 第三题u package net.mindview.typeinfo.test4; import java.util.ArrayList; import java.util.Array ...
- java编程思想第四版第十四章 类型信息总结
1. Class 对象: 所有的类都是在对其第一次使用的时候,动态加载到JVM中的.当程序创建第一个对类的静态成员的引用时,就会加载这个类.这说明构造器也是类的静态方法.即使在构造器之前并没有stat ...
- Java编程思想 (1~10)
[注:此博客旨在从<Java编程思想>这本书的目录结构上来检验自己的Java基础知识,只为笔记之用] 第一章 对象导论 1.万物皆对象2.程序就是对象的集合3.每个对象都是由其它对象所构成 ...
- JAVA编程思想读书笔记(二)--容器
接上篇JAVA编程思想读书笔记(一) 第八章.对象的容纳 No1: java提供了四种类型的集合类:Vector(矢量).BitSet(位集).Stack(堆栈).Hashtable(散列表) No2 ...
- 《Java编程思想》阅读笔记一
Java编程思想 这是一个通过对<Java编程思想>(Think in java)第四版进行阅读同时对java内容查漏补缺的系列.一些基础的知识不会被罗列出来,这里只会列出一些程序员经常会 ...
- 《Java编程思想》读书笔记(三)
前言:三年之前就买了<Java编程思想>这本书,但是到现在为止都还没有好好看过这本书,这次希望能够坚持通读完整本书并整理好自己的读书笔记,上一篇文章是记录的第十一章到第十六章的内容,这一次 ...
- 《Java编程思想》读书笔记(四)
前言:三年之前就买了<Java编程思想>这本书,但是到现在为止都还没有好好看过这本书,这次希望能够坚持通读完整本书并整理好自己的读书笔记,上一篇文章是记录的第十七章到第十八章的内容,这一次 ...
- JAVA编程思想(第四版)学习笔记----4.8 switch(知识点已更新)
switch语句和if-else语句不同,switch语句可以有多个可能的执行路径.在第四版java编程思想介绍switch语句的语法格式时写到: switch (integral-selector) ...
随机推荐
- Django之模型层(2)
Django之模型层(2) 一.创建模型 实例:我们来假定下面这些概念,字段和关系. 作者模型:一个作者由姓名和年龄. 作者详细模型:把作者的详情放到详情表,包含生日,手机号,家庭住址等信息.作者详情 ...
- b161: NOIP2007 4.Hanoi双塔问题
zerojudge 汉诺塔?图片问度娘 b161: NOIP2007 4.Hanoi双塔问题 题目: 给定A.B.C三根足够长的细柱,在A柱上放有2n个中间有孔的圆盘,共有n个不同的尺寸,每个尺寸都 ...
- 作为IT面试官,我如何考核计算机专业毕业生?作为培训班老师,我又如何提升他们?
我最近几年一直在做技术面试官,除了面试有一定工作经验的社会人员外,有时还会面试在校实习生和刚毕业的大学生.同时,我也在学校里做过兼职讲师,上些政府补贴课程(这些课程有补贴,学生不用出钱),所以我会在不 ...
- 开源导入导出通用库Magicodes.ExporterAndImporter发布
导入导出通用库 Magicodes.ExporterAndImporter为心莱团队封装的导入导出通用库,并且仍在跟随项目不断地打磨. GitHub地址: https://github.com/xin ...
- 章节十六、9-Listeners监听器
一.IInokedMethodListener 1.实现一个类来监听testcase的运行情况. package listenerspackage; import org.testng.IInvoke ...
- HTML-css样式引用方式
1.使用行内样式表 语法:在标签内部写入一个style属性. 优点:没有样式表文件,在某些时候可以提高效率: 优先级高. 缺点:多个页面难以共享样式,不利于代码复用: HTML和CSS代码混杂,不利于 ...
- js/jquery去掉空格,回车,换行
Jquery:$("#accuracy").val($("#accuracy").val().replace(/\ +/g,""));//去 ...
- DW网页代码笔记
DW网页代码笔记 1.样式. class 插入类样式 标签技术(html)解决页面的内容样式技术(css)解决页面的外观脚本技术 解决页面动态交互问题<form> ...
- 关于大脑与CPU的简单思考
今天午休突发奇想的思考了大脑与cpu的差异,发现出了大脑是生物信号驱动的单核cpu而已(并行任务是时间片的调度,要额外的堆栈记忆或者物理如纸张的存储). 大脑永远是线性的逐行执行指令,执行期间无法判断 ...
- JAVA多线程线程同步问题
线程同步 在多线程的编程环境下,可能看着没有问题的代码在运行几千上万或者更多次后,出现了一些看着很奇怪的问题,出现这样的问题的原因就是可能会有两个或者更多个线程进入了同一块业务处理代码中导致了判断失效 ...