黑马程序员---Java基础总结--多态
来源:互联网 发布:sqlserver 维护计划 编辑:程序博客网 时间:2024/06/02 05:37
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
多态:可以理解为事物存在的多种体现形态。
多态的体现:父类的引用指向了自己的子类对象。可以挺高程序的扩展性。多态的前提:必须是类与类之间有关系,要么继承,要么实现。子类覆盖父类的函数才可以被实现。
在多态成员函数的特点:在编译时期,参阅引用型变量所属的类中是否有调用的方法,如果有,编译通过,如果没有,编译失败。在运行时期,参阅对象所属的类中是否有调用方法。简单总结是:成员函数在多态调用时候,编译看左边,运行看右边。在多态中,成员变量的特点是:无论编译和运行都参考左边。
Object:是所有对象的直接后者间接父亲。所有对象都具备Object类中的功能。
内部类的访问规则:内部类可以直接访问外部类中的成员,包括私有。外部类要访问内部类,必须建立内部类对象。当内部类定义在外部类的成员位置上,而且非私有,可以外部其他类中直接建立内部类对象。格式:外部类名.内部类名 变量名=外部类对象.内部类对象例如:Outer.Inner in=new Outer().new Inner();当内部类在成员位置上,可以被成员修饰符修饰。比如 private 将内部类的在外部类中进行封装。 static 内部类就具备static特性。当内部类中定义了静态成员,该内部类必须是static的。
内部类定义在局部时,不可以被成员修饰符修饰,可以直接访问外部类中的成员,因为还有持有外部类中的引用。但是不可以访问它所在的局部变量,只能访问被final修饰的局部变量。
匿名内部定义的前提:内部类必须是继承一个类或者实现接口。
异常就是程序在运行时出现不正常的情况。异常的由来:问题也是现实生活中一个具体事物,也可以通过java的类的形式进行描述,并封装成对象。java对严重的问题用error类进行描述。对于非严重的java通过Exception类进行描述。
异常和错误会向上抽取形成 Throwable类。(error类和Exception类的父类)。
异常处理格式:try{需要被检测的代码} catch(异常类 变量){处理异常的代码:(处理方式)} finally{一定会运行的语句} 可以使用String getMessage()、toString、printStackTrace获取异常。其中printStackTrace(打印异常堆栈的跟踪信息)是java虚拟机中默认的获取异常方式。
throws关键字声明了该功能有可能会出现问题。对调用进行处理,如果不处理编译失败。
多异常处理时,应该声明具体的异常,这样处理可以更具体,声明几个异常,就对应几个catch块,不要定义多余的catch块。如果多个catch块中的异常出现继承关系,父类异常catch块放在最下面。
自定义异常,必须继承Exception。异常类和异常对象都需要被抛出,它们都具有可抛性。Throwable体系是具有可抛性的。所以它们才可以被throws和throw操作。
throws使用在函数上,后面跟的是异常类,可以跟多个,用逗号隔开。throw使用在函数内,后面跟的是异常对象。
Exception中有一个特殊的的子类异常RuntimeException 运行时异常。如果在函数内容抛出该异常,函数可以不用声明,编译一样通过。如果在函数上声明了该异常。调用者可以不用进行处理,编译一样通过。该异常发生时,希望程序停止,因为在运用时,出现了无法继续运算的情况。所以不需要让调用者处理。
自定义异常时,若果该异常发生,无法再继续进行运算,那么就让自定义异常类继承RuntimeException。
异常分为两种:一是编译时被检测的异常。一种是编译时不被检测的异常。(运行时异常,RuntimeException以及其子类)
子类再覆盖父类时,如果父类的方法抛出异常,那么子类的覆盖方法,只能抛出父类的异常或者该异常的子类。如果父类方法抛出多个异常,那么子类再覆盖方法时,只能抛出父类异常的子集。如果父类或者接口的方法中没有异常抛出,那么子类再覆盖方法时,也不可以抛出异常。只能做try处理。
异常的好处:将问题封装成对象。将正常流程代码和问题处理代码相分离,方便于阅读。
异常的处理原则:
1、处理方式有两种:try或者throws
2、调用到的抛出异常的功能时,抛出几个,就处理几个。一个try对应多个catch.
3、多个catch,父类的catch放到最下面。
4、catch内,需要定义针对性的处理方式。不要简单的定义printStackTrace输出语句,也不要不写。
当捕获的异常,本功能处理不了时,可以继续在catch中抛出。
try
{
throw new Aexception()
}
catch(Aexception e)
{
throw e;
}
如果该异常处理不了,但并不属于该功能出现的异常。可以将异常转换后,在抛出和该功能相关的异常。
或者异常可以处理,当需要将异常长生的和本功能的相关问题提供出去,当调用者知道,并处理。也可以将捕获的异常处理后,转换新的异常。
try
{
throw new AException();
}
catch (AException e)
{
throw new BException();
}
包 :对类文件进行分类管理。给类提供多层命名空间。写在程序文件的第一行。类名的全称是:包名.类名。包也是一种封装形式。包名的字母都小写。
包在编译时,javac -d 存放目录 (d:\java\) 文件名.java 在运行: java 包名.文件名
包与包之间的访问,被访问的包中的类以及类中的成员,需要public修饰。不同包中的子类还可以直接访问父类中的被protected权限修饰的成员。
protected :保护对象。在继承中为了保护父类中方法安全。
public protected default private
同一个类中 OK OK OK OK
同一个包中 OK ok ok
子类中 ok ok
不同包中 ok
import 导入的包中的类。
jar包 java的压缩包。
---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
0 0
- 黑马程序员:Java基础总结----多态
- 黑马程序员---Java基础总结--多态
- 黑马程序员-java基础总结
- 黑马程序员:java基础总结
- 黑马程序员-----Java基础总结
- 黑马程序员--Java基础总结
- 黑马程序员--Java基础总结
- 黑马程序员-JAVA基础总结
- 黑马程序员 java基础 基础细节总结
- 黑马程序员:Java基础总结----java注解
- 黑马程序员java自学总结--java基础
- 黑马程序员--Java基础加强总结
- 黑马程序员 java基础总结_1
- 黑马程序员 java基础总结_2
- 黑马程序员 java基础总结_3
- 黑马程序员----java基础班阶段性总结
- 黑马程序员java基础篇----集合总结
- 黑马程序员-Java基础之多线程总结
- 矩形类的构造函数
- uva 11368 - Nested Dolls(sort+greedy+binary_search)
- plsql客户端查数据时候会中文是乱码,解决办法
- STM32F4时钟设置分析
- 看看键盘第二排字母连起来是一句啥话
- 黑马程序员---Java基础总结--多态
- uva 11368 Nested Dolls
- Android回顾之网络接口
- NYOJ-54-小明的存钱计划
- 关于前台开源JS控件管理问题求指导
- 手把手教您开发JAVA微信SDK-发送消息
- Android* 操作系统上的应用程序远程调试
- maven Nexus的一些注意事项
- OpenCV学习笔记(11)-K均值