黑马程序员 -- Java基础学习(3)
2014-12-12 17:49
225 查看
------- android培训、java培训、期待与您交流! ----------
多态
• 动物 y = new 猫(); DuoTaiDemo.java DuoTaiDemo2.java ▸ 体现 • 父类引用指向子类对象 • 父类引用接收自己的子类对象 ▸ 前提 • 类与类之间有关系,继承或实现 • 要有重写 • 好处:提高程序扩展性 • 弊端:只能使用父类的引用访问父类中的成员 ▸ 对象转型 DuotaiDemo3.java • 类型提升/向上转型:Animal a = new Cat(); • 向下转型:强制将父类引用转成子类类型:Cat c = (Cat)a; • 不能将父类对象转成子类类型 只有父类引用指向子类对象时才可以转换 自始至终都是子类对象在变化 • 类型转换异常 ClassCastException • instanceof 判断类型 ▸ 使用注意事项 DuotaiDemo3.java ▸ 多态中(非静态)成员函数的特点 • 存储在非静态区 • 编译时:查找引用变量所属类中是否有调用的方法,如果有编译通过,没有则失败 • 运行时:查找对象所属的类中是否有调用的方法 • 成员函数在多态调用时:编译看左边,运行看右边 • 成员变量的特点:无论编译或运行都参考引用型变量所属的类(左边) • 静态成员函数的特点:编译和运行都参考左边 因为一进内存就已经绑定到所属的类 • 电脑运行示例:主板 DuoTaiDemo5.java ▸ 数据库的操作 DBOperate.java • 1.连接数据库 JDBC Hibernate 2.操作数据库 crud: create read alter delete 3.关闭数据库连接 • DAO: data access object
Object类
• 类层次结构的根类 ▸ equals() ObjectDemo.java • 默认:比较地址值 • 如果自定义类中也有比较相同的功能,可以重写equals方法 public boolean equals (Object obj) { if (!(obj instanceof Demo)) { return false; } Demo d = (Demo)obj; ... • toString() 描述类时一般要重写该方法
内部类
InnerClassDemo.java InnerClassDemo2.java • 将一个类定义在另一个类里面 ▸ 访问规则 • 可以直接访问外部类中的成员,包括私有 内部类持有外部类的引用,格式:外部类名.this this.x 内部类的x Outer.this.x 外部类的x • 外部类要访问内部类必须建立内部类对象 ▸ 访问格式 • 非私有的内部类可以在外部其他类中直接建立该内部类对象 外部类名.内部类名 变量名 = 外部类对象.内部类对象; Outer.Inne in = new Outer().new Inner(); ▸ 内部类可以被成员修饰符修饰 • static:只能直接访问外部类的static成员 • 从其他类访问静态内部类的非静态成员 new Outer.Inner().function(); • 从其他类访问静态内部类的静态成员 Outer.Inner.function(); • 当内部类定义了静态成员,该内部类也必须是静态的 • 当外部类的静态方法访问内部类时,该内部类也必须是静态的 • 内部类可以私有 • 当描述食物时,事物的内部还有事物,内部事物在使用外部事物的内容,则用内部类描述 可以用private封装,提供访问方法(例子:身体和心脏) ▸ 内部类定义在局部位置 4000 • 不能被成员修饰符修饰 • 可以直接访问外部类中的成员,因为还持有外部类中的引用 但是不可以访问所在局部中的变量,只能访问final修饰的 ▸ 匿名内部类:内部类的简写格式 InnerClassDemo3.java • 定义前提:必需继承一个类或实现一个接口 • 格式:new 父类或者接口() {定义子类的内容} new AbsDemo() { void show() { *** } }.show(); • 实质就是一个匿名子类对象(带内容的对象) • 如果要起名,只能建立父类引用,没法访问子类特有的成员 • 定义的方法最好不要超过3个 • 练习 InnerClassTest.java
相关文章推荐
- 黑马程序员Java基础加强9-16学习日记
- 黑马程序员-------学习日记Java基础 第一天
- 黑马程序员--Java基础学习--String类剖析
- 黑马程序员第一节java基础学习
- 黑马程序员--Java基础加强(高新技术)学习第二天
- 黑马程序员——java语言基础——总结一下学习过的类
- 黑马程序员Java基础加强17-24学习日记
- 黑马程序员_毕向东_Java基础视频教程第十八天-IO流---学习笔记
- 黑马程序员--Java基础学习第十三天
- 黑马程序员Java基础加强41-48学习日记
- 黑马程序员-------学习日记Java基础 第五天
- 黑马程序员-------学习日记Java基础 第三天
- 黑马程序员--Java基础学习第十四天
- 黑马程序员Java培训、Android培训-Java 学习过程记录_语言基础3
- 黑马程序员Java基础加强49-56学习日记
- 黑马程序员_java基础学习2
- 黑马程序员-------学习日记Java基础 第四天
- 黑马程序员--Java基础加强(高新技术)学习第三天
- 黑马程序员--Java基础加强(高新技术)学习第一天
- 黑马程序员--Java基础学习第十一天