通往黑马 —— Java学习笔记(2)
来源:互联网 发布:鬼故事粤语软件 编辑:程序博客网 时间:2024/06/08 07:12
1.Object类
所有类的超类。
equals()方法——检测两个对象是否相同
toString()方法——返回对象的字符串表示(宜复写)
getClass()方法——得到该对象所属类的名称
2.内部类
1)方便访问外部类的成员变量,包括私有成员变量。
2)内部类函数访问外部类成员变量——外部类名.this.变量名;
3)内部类可以被private修饰,则不能被其他外部类访问。
4)非私有的内部类,可以被其他外部类访问 eg. Outer.Inner a = new Outer().Inner()
静态内部类——static修饰
访问静态内部类非静态成员new Outer.Inner().function()
访问静态内部类静态成员 Outer.Inner.function()
非静态内部类不能有静态成员。
局部内部类(在方法里的内部类):
1)不可以被成员修饰符修饰
2)可以访问外部类成员,但不能访问所在局部的变量,除非该变量被final修饰。
匿名内部类——其实就是为了简写,直接省去类定义,生成并使用一个没有名称的对象。
1)匿名的内部类必须有继承或者是实现。
2)格式:new 父类(接口名)(){定义子类内容}
3)创建的匿名对象可以只用一次,也可以导入一个对象变量多次使用,但多次使用涉及到多态,只能使用父类或接口中定义的内容。
3.异常(Exception)
1)定义:程序运行时出现的不正常情况,在可以处理的范围内。(不可处理则是Error)
Throwable : Error;Exception.
异常的分类:Runtime异常——程序错误导致的异常(不用声明,也无需处理,想抛出就抛出即可,好东西啊!)
其他异常——程序无问题,其他原因导致的异常,
2)异常的声明——throws关键字
如果程序本身没有问题,那数据本身就不会发生问题,只有数据变化过程中才会产生问题,也就是说——非Runtime异常只会发生在方法中(构造器和一般方法)。
当一个方法可能产生异常时,需要将这些异常声明在方法定义中。
自定义异常:
自定义一个继承Exception的类,利用代码实现在希望跳出异常的地方,运用throw关键字手动抛出自定义异常的对象。
格式:
class AaException extends Exception{}class Test{ ...... void function() throws AaException { ...... if(判断语句) throw AaException ...... }}throws在函数上,抛出异常类,多个异常类用逗号隔开。throw在函数内,抛出异常对象。
3)声明了异常后,有两种解决办法:
(1)、可在调用时直接进行手动处理,也就是try-catch流程。
(2)、也可以继续抛出异常,也就是在调用这个方法的上一级方法继续声明抛出。(这种向上抛出如果不断进行,最后会到达main函数,main函数继续抛出就抛给了虚拟机,让虚拟机自动处理)
异常的手动处理:
格式:
try{ 需要被检测的代码,发现异常则进入catch;}catch(异常类 变量){ 处理异常的代码(提供各种异常信息);}finally { 一定执行的语句,通常用于关闭资源;(如果catch里执行了System.exit(0),则finally不被执行。)}catch块和finally块至少存在其一;
catch块可以有多块;
多个catch块的时候,父类的catch放在下面。
4)覆盖时的异常特点
子类覆盖父类时,所覆盖的方法如果有异常,则子类的异常最好为父类的异常的子集和子异常。
除非子类方法直接进行处理,不进行抛出。
- 通往黑马 —— Java学习笔记(2)
- 通往黑马 —— Java学习笔记(1)
- 通往黑马 —— Java学习笔记(3)
- 通往黑马 —— Java学习笔记(0)
- 通往黑马 —— Java学习笔记(4)
- 黑马程序员——java高新技术2学习笔记整理
- 黑马程序员 java学习笔记——多线程2
- 黑马程序员 java学习笔记——集合框架2
- 黑马程序员 java学习笔记——IO流2
- 黑马程序员——Java学习笔记(二)
- 黑马程序员——Java学习笔记(三)
- 黑马程序员——Java学习笔记(四) .
- 黑马程序员——Java学习笔记(五)
- 黑马程序员——Java学习笔记(六)
- 黑马程序员——Java学习笔记(七)
- 黑马程序员——Java学习笔记(一)
- 黑马程序员——Java基础学习笔记(一)
- 黑马程序员——Java基础学习笔记(二)
- 获取最耗时的存储过程
- 韦东山虚拟摄像头驱动在ubuntu12.04上的修改与测试
- UITableView 性能优化
- Java中的继承与组合
- TCP为什么需要3次握手与4次挥手
- 通往黑马 —— Java学习笔记(2)
- 27个iOS开发中的小技巧
- C++对txt文件的操作
- git使用手册
- Oracle定义varchar2()类型存储汉字的长度问题
- python 爬取今日哈工大内容
- BoneCP连接池与Spring的@Transactional配置
- 嵌入式Linux系统中的.lds链接脚本基础
- iOS中block简介-作用域