黑马程序员之java核心部分面向对象4
来源:互联网 发布:苹果安装不了软件 编辑:程序博客网 时间:2024/05/16 06:00
------- <a target="blank">android培训</a>、<a target="blank">java培训</a>、期待与您交流! ----------
一 多态
1 定义:指的是某一类事物存在的多种形态。
对象的多态性。
多态的体现:父类的引用指向了自己的子类对象。 父类的引用也可以接收自己的子类对象。
多态的前提:必须是类与类之间要有关系。要么继承,要么实现。通常还有个前提:就是存在覆盖。
多态的好处:多态的出现大大的提高了程序的扩展性。
弊端:提高了扩展性,但是只能使用父类的引用访问父类中的对象。
2 多态中的成员函数的特点:
在编译时期,参阅引用型变量所属的类中是否有调用的方法,如果有,编译通过,如果没有,编译失败。
在运行时期,参阅对象所属的类中是否有调用的方法。
简单总结:成员函数在多态调用时,编译看左边,运行看右边。
3 多态中的成员变量的特点:无论编译和运行,都参考左边(引用型变量所属的类)
4 在多态中,静态成员函数的特点: 无论编译还是运行,都参考左边。
5 object:是所有对象的直接或者间接父类,传说中的上帝。所有继承体系的根。该类中定义的肯定是所有对象都具备的功能。、
6 内部类的访问规则:
1)内部类可以直接访问外部类中的成员,包括私有。
2) 外部类要访问内部类,必须建立内部类对象。之所以可以直接访问外部类中的,是因为内部类中持有了一个外部类的引用
访问格式:
1)当内部类定义在外部类成员位置上时,而且非私有,可以在外部其他类中,可以直接建立内部类对象。 外部类名.内部类名 变量名=外部类对象 内部类对象
2)当内部类在成员位置上,就可以被成员修饰符所修饰。比如私有private,将内部类在外部类中进行封装。还有一个static:内部类就具备static特性。当内部
类被static修饰后,只能访问外部类中的static成员。出现了访问局限。
7 匿名内部类
1)匿名内部类其实就是内部类的简写格式。
2)定义匿名内部类的前提:内部类必须是继承一个类或者实现接口。
二 异常
1,异常:是对问题的描述,将问题进行对象的封装。
2,异常体系:
Throwable
Error
Exception
RuntimeException
3,异常体系的特点:
异常体系的所有类以及建立的对象都具备可抛性。也就是说可以被throw和throws关键字所操作。只有异常体系具备这个特点。
4,throw和throws的用法?
throw定义在函数内,用于抛出异常。
throws定义在函数上,用于抛出异常类,可以抛出多个用逗号隔开。
当函数内容throw抛出异常对象,并未进行try处理,必须要在函数上声明,否则编译失败。
注意:RuntimeException除外。也就是说,函数内如果抛出的RuntimeException异常,函数上可以不用声明。
如果函数声明了异常,调用者需要进行处理。处理可以throws可以try。
5,异常有两种:
(1)编译时被检测的异常,该异常在编译时没有处理,没有抛也没有捕捉,该异常被标识,代表着可以被处理。
(2)运行时异常,在编译时不需要处理,编译器不检查。该异常的发生,建议不处理,让程序停止。需要对代码进行修正。
6,处理异常有三种格式:
(1)try catch (2)try finally (3)try catch finally
注意:finally中定义的通常是关闭资源代码。因为资源必须释放。finally只有一种情况不会执行,当执行到System.exit(0);时,finally不会执行。
7,自定义异常:定义类继承Exception
原因:(1)为了让该自定义类具备可抛性。(2)让该类具备操作异常的共性方法。
注意:当要定义自定义异常的信息时,可以使用父类已经定义好的功能。将异常信息传递给父类的构造函数。
好处:按照java面向对象的思想,将程序中出现的特有问题进行封装。
8,异常的处理原则:
(1)处理方式有两种,try或者throws。
(2)调用到抛出异常的功能时,抛出几个就处理几个。一个try对应多个catch。
(3)多个catch,父类的catch放在最下边。
(4)catch内,需要定义针对性的处理方式,不要简单定义printStackTrace输出语句。也不要不写。
9,异常的注意事项:
在子父类覆盖时:
(1)子类抛出的异常必须是父类的异常的子类或者子集。(2)如果父类或者接口没有异常抛出时,子类覆盖出现异常,只能try不能抛。
记住:return、throw、continue下边不可以有任何语句,否则编译失败。
三,包
1,包的特点:
(1)对类文件进行分类管理。
(2)给类提供多层命名空间。
(3)写在程序文件的第一行。
(4)类名的全程是:包名.类名。
(5)包也是一种封装形式。
记住:包与包之间进行访问,被访问的包中的类以及类中的成员,需要public修饰。
不同包中的子类还可以直接访问父类中被protected权限修饰的成员。
包与包之间可以使用的权限只有两种:public和protected。
权限从大到小:public>protected>默认权限>private。
------- <a target="blank">android培训</a>、<a target="blank">java培训</a>、期待与您交流! ----------
- 黑马程序员之java核心部分面向对象4
- 黑马程序员之java核心部分面向对象1
- 黑马程序员之java核心部分面向对象2
- 黑马程序员之java核心部分面向对象3
- 黑马程序员@java核心之面向对象
- 黑马程序员-------java面向对象部分
- 黑马程序员_OC面向对象之核心语法
- 黑马程序员——JAVA核心:面向对象
- 黑马程序员----JAVA基础之面向对象
- 黑马程序员-java学习之面向对象
- 黑马程序员-JAVA面向对象之继承
- 黑马程序员----java之面向对象(上)
- 黑马程序员----java之面向对象(下)
- 黑马程序员----java基础之面向对象
- 黑马程序员----Java基础之面向对象
- 黑马程序员----JAVA 之 面向对象
- 黑马程序员--JAVA基础之面向对象
- 黑马程序员-----java之面向对象
- 关注的计算机视觉研究组和个人主页列表
- 【java系列】交集、并集、差集
- Nyoj 22 素数求和问题
- Android实现XML解析的几种技术
- HDU 2588 GCD(欧拉函数)
- 黑马程序员之java核心部分面向对象4
- Linux 0.11中write实现
- Objective-c内存管理学习总结
- HZAU_Parser
- Java中调用外部的exe文件源代码
- (要正式学Linux,发现大一学的c底子太薄,看专业书籍重学。)重写简单的整数中取某一位的算法。
- 内存泄露之Cursor篇
- 如何判断是手机或电脑访问web
- for循环时候可以+2循环