A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

一大波技术分来袭的态势啊,只是我只想快速学完,飘过。。。
回复 使用道具 举报
没分 求分  求币
回复 使用道具 举报
我看到了一堆分数在向我招手,而我却。。。
回复 使用道具 举报
感觉棒棒的
回复 使用道具 举报
顶一下,
回复 使用道具 举报
还有活动吗
回复 使用道具 举报
ZZBY 中级黑马 2015-9-13 23:27:11
67#
没赶上活动
回复 使用道具 举报
只能是毕向东的?

点评

可以是其他老师视频,但是黑马考试的试题很多都来自毕向东老师的视频,具体还要看你学的情况。  发表于 2015-9-21 20:00
回复 使用道具 举报
福利满满的
回复 使用道具 举报
好东西。。。。。。。。
回复 使用道具 举报
笔记内容:今天讲解的主要是多态
            笔记来源:毕向东Java基础视频第08天
            正文:
               毕老师  day-8
1 多态:可以理解为事物存在的多种体现形态
人:男人,女人
动物:猫, 狗

猫 x=new 猫();
动物 x=new 猫();
动物 x=new 狗();
动物 x=new 鸡();
这种事物存在多种形态吧
多态在对象上面的体现  也在方法上面体现
1 多态的体现
父类的引用指向了 自己的子类对象
父类的引用也可以接受自己的子类对象
2 多态的前提
必须是类与类之间有关系,要么继承,要么实现
存在覆盖
3 多态的好处
大大提高了程序的扩展性。
4  多态的弊端
只能使用父类的引用访问父类中的成员
父类告诉你应该做什么(父类中的成员),你做不就可以了吗
5  多态的应用
类型提升,向上转型
如果想要调用猫的特有方法时,如何操作
强制将父类的引用,转换成为子类类型,向下转型
6 多态的出现代码中的特点(多态使用的注意事项)
成员函数的特点:(非静态,因为有重写特性)  
编译时期,new出来的还不存在,引用型变量所属的类中是否有调用的方法。如果没有编译失败
运行时期,对象所属的类是否有调用方法
Fu f=new Zi();
编译看f
运行看Zi
简单总结:编译看左边,运行看右边
多态中成员变量中的特点,

在多态中,静态成员函数的特点,无论编译或者运行都是参考左边 static
Fu f=new Zi();
父类,子类同名变量,多态时,调用的是左边的
静态方法不需要对象,只要是父类的引用,就去引用型变量,不属于对象


Fu.method4()  f.method1()
静态绑定  动态绑定
静态只是参考引用所属  Fu f (进到内存就绑定好了,对象会变的)
静态的话,就不会被覆盖了




Animal a=new Animal();//向上提升
a.eat();
Cat c=(Cat)a;
c.catchMouse();

多态里面至始至终都是子类对象在做着变化

instanceof   判断所属类型,之后使用所属类型的特有方法
1 子类是有限的

10.3 :多态的主板实例

结合图来写
先有规则,大家都照着做,就和谐了
接口:实现了功能的扩展   复写就可以了
多态:提高了程序扩展性
PCI p=new NetCard();
接口:降低了耦合性,提高了扩展性,implements 这个规则就可以了
接口的引用,提高程序的扩展性,多态

接口和多态的综合使用
10.4 多态的扩展实例
需求:数据库操作
1 连接数据库   JDBC Hibernate
2 操作数据库
c create r read u update d delete
3 关闭数据库连接

考虑过程序的扩展性吗?
为了降低耦合性,通过接口完成
两者之间先不要动手,定义一个规则,按照这个规则,我就可以实现你
DAO  data access object


使用一个接口

10.4 Object类   所有对象的直接或者间接父类
类层次结构的根类  上帝类
该类中定义的肯定是所有对象都具备的功能。
java对象认为:所有对象都具备比较性

没有必要重新定义,只要沿袭父类的功能,建立自己特有比较内容即可,这就是覆盖
(object)父类默认是比较两个对象的地址相等否,可以比较,但是意义不大
想要建立自身特有内容
1 复写
2 但是父类的参数是object所以,需要做判断和转换动作
才可以进行有意义的比较

这些class 文件都有名称,构造函数,一般方法 Class 来描述这些class文件


equals() 方法  toString()方法  hashCode()方法  getClass() 方法  getMethods() 方法  反编译,运行文件给我,反编译,知道怎么写的   getName() 方法
getClass().getName()+@+Integer.toHexString(d1.hashCode());
有共性就可以描述
所有的对象都有自己的内存地址(哈希值)
new Demo(4);
进去内存的时候,类文件被封装成为对象了
类里面又很多东西
对象里面定义很多功能,来获取其中某些东西


Person
getName();
父类默认的没有什么太大的意义,一般在子类都被复写了
如果object被抽象了,那么写子类要复写抽象,不方便



基本数据类型不是对象,是一种特殊的存在
一个变量存一个值  数组存多个值

栈(掌握)
A 存储局部变量:定义在方法声明上和方法中的变量    定义在方法中,以及方法上面的参数
B 堆 存储new出来的数组或者对象                                    new
C 方法区:代码区
D 本地方法区 :与系统有关
E 寄存器 : 给CPU使用
运行.class 加载到内存里面
有进栈的(局部变量),有进堆的(new出来的)
new int[3]; 连续的三块空间,动态初始化

首先,主方法相当于子弹,进入栈底部  先进后出





数组最大的好处:每一个元素都有一个索引,可以通过索引去获取元素,对于数据操作方式的改变,这个效率是非常高的
内存图解:
越界与空指针

java中到底是传值还是传址
[I@  (十六进制的值)  这个是真正传递的值
总结:
java中有木有真正意义上的的引用传递?
int[] arr={};  引用=变量
谈谈你对值传递和引用传递的理解
java中没有真正意义的引用传递
基本类型的变量作为参数传递过来的是变量的值
引用类型的变量作为参数传递过来的是地址值  
我们对引用类型的变量的操作实际是根据    内存地址值  对     内存中对象     的操作
回复 使用道具 举报
懂得分享  有福利
回复 使用道具 举报
终于等到这个福利了,还好没错过你
回复 使用道具 举报
不是很火呢
回复 使用道具 举报
huixue626 来自手机 中级黑马 2015-10-16 01:48:17
75#
现在还有福利吗?
回复 使用道具 举报
huixue626 来自手机 中级黑马 2015-10-17 00:33:41
76#
这里有福利
回复 使用道具 举报
一大波金币来袭~~~
回复 使用道具 举报
666666666666666666
回复 使用道具 举报
这个活动还有没有啊,我刚发过去,希望快点来技术分哟
回复 使用道具 举报
我也觉得做笔记有很多好处
回复 使用道具 举报
1234
您需要登录后才可以回帖 登录 | 加入黑马