JAVA学习笔记-07
局部内部类不能定义静态成员。
内部类定义在局部时:
1不可以被成员修饰符修饰
2.可以直接访问玩不类中的成员,因为还持有外部类中的引用
但是不可以访问它所在的局部中的变量,只能访问被final修饰的局部变量
匿名内部类:
1.匿名内部类其实就是内部类的简写格式
2.定义匿名内部类的前提:内部类必须时继承一个类或者实现接口
3.匿名内部类的格式: new 父类或者接口(){定义子类的内容}
4.其实匿名内部类就是一个匿名子类对象,而且这个对象有点胖
异常:就是程序在运行时出现的不正常情况
异常的由来:JAVA对不正常情况进行描述后的对象体现
对于问题的划分:一种是严重的问题。一种是非严重的问题
对于严重的问题JAVA通过error类进行描述。对于非严重的,JAVA通过exception类进行描述
对于Error一般不编写针对性的代码对其进行处理。
对于Exception可以使用针对性的处理方式进行处理
异常的处理:
tr {需要被检测的代码}
catch(异常类 变量){处理异常的代码:(处理方式)}
finally{一定会执行语句}
对捕获到的异常对象进行常见方法操作:
String getMessage (): 获取异常的信息
printStackTrace():异常名称,异常信息,异常出现的位置。JVM默认的异常处理机制就是在调用printStackTrace()方法,打印异常在堆栈中的跟踪信息。
throws:在功能上通过throws的关键字声明了该功能有可能出现问题
对多异常的处理:
1.声明异常时,建议声明更为具体的异常。这样处理异常更具体
2.对方声明几个异常,就应有几个catch块。不要定义多余的catch块。如果多个多个catch快中的异常出现继承关系,父类异常catch块放在最下面
3.
建立在进行catch处理时,catch中一定要定义具体处理方式。不要简单的定义一句e.printStackTrace();
自定义异常:就是JAVA项目中特有的异常,对这些异常进行自定义的异常封装。
当在函数内部出现throw抛出异常对象,那么就必须要个对象的处理动作。要么在内部try catch处理,要么在函数上声明让调用者处理。一般情况下函数内出现异常,函数上需要声明。
自定义异常信息:
因为父类已经把异常信息的操作都完成了,所有子类只要在构造时,将异常信息传递给父类通过super语句,那么久可以直接通过getMassage获取信息
throw与 thorws的区别
1.throws使用在函数上, throw使用在函数内
2.throws后面跟的异常类,可以跟多个。用逗号隔开。throw跟的是异常对象。
异常在子类覆盖中的体现;
1.子类在覆盖父类时,如果父类的方法抛出异常,那么子类的覆盖方法只能抛出父类的异常或者该异常的子类
2.如果父类方法抛出多个异常,那么子类在覆盖该方法时,只能抛出父类异常的子集
3.如果父类或者接口的方法中没有异常抛出,那么子类在覆盖父类方法时,也不可以抛出异常。如果子类方法发生了异常。久必须要进行try处理。绝对不能抛。
finally只有一种情况不会执行,也就是执行System.exit();finally不会执行
自定义异常:定义类继承exception或者RuntimeException
1.为了让该自定义类具有可抛性
2.该类具备操作异常的共性方法
JAVA学习笔记-07的更多相关文章
- Java学习笔记 07 接口、继承与多态
一.类的继承 继承的好处 >>使整个程序架构具有一定的弹性,在程序中复用一些已经定义完善的类不仅可以减少软件开发周期,也可以提高软件的可维护性和可扩展性 继承的基本思想 >>基 ...
- 学习笔记 07 --- JUC集合
学习笔记 07 --- JUC集合 在讲JUC集合之前我们先总结一下Java的集合框架,主要包含Collection集合和Map类.Collection集合又能够划分为LIst和Set. 1. Lis ...
- 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁
什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...
- 0035 Java学习笔记-注解
什么是注解 注解可以看作类的第6大要素(成员变量.构造器.方法.代码块.内部类) 注解有点像修饰符,可以修饰一些程序要素:类.接口.变量.方法.局部变量等等 注解要和对应的配套工具(APT:Annot ...
- Java学习笔记(04)
Java学习笔记(04) 如有不对或不足的地方,请给出建议,谢谢! 一.对象 面向对象的核心:找合适的对象做合适的事情 面向对象的编程思想:尽可能的用计算机语言来描述现实生活中的事物 面向对象:侧重于 ...
- 0032 Java学习笔记-类加载机制-初步
JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...
- 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用
垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...
- 0028 Java学习笔记-面向对象-Lambda表达式
匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...
- 0025 Java学习笔记-面向对象-final修饰符、不可变类
final关键字可以用于何处 修饰类:该类不可被继承 修饰变量:该变量一经初始化就不能被重新赋值,即使该值跟初始化的值相同或者指向同一个对象,也不可以 类变量: 实例变量: 形参: 注意可以修饰形参 ...
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
随机推荐
- Appium自动化(一)-window环境搭建详细教程
一.软件环境所需要运用的工具 1.JAVA1.8.1以上环境 2.AndroidSDK 3.Appium Desktop(appium servers) 4.Appium Client 5.Appiu ...
- knock:端口敲门服务
knock:端口敲门服务 端口敲门服务,即:knockd服务.该服务通过动态的添加iptables规则来隐藏系统开启的服务,使用自定义的一系列序列号来"敲门",使系统开启需要访问的 ...
- Echarts —自定义label标签的样式(formatter,rich,添加图标等操作)
最近公司项目中在使用 Echarts 绘制图表时,由于默认的 label 标签不能满足设计稿需求,所以研究了对 label标签进行格式化的方案,了解到可以使用 formatter 内容格式器对标签内容 ...
- Activity 和 Fragment 中的视图绑定
开启视图绑定 找到 build.gradle 文件,因为有两个 build.gradle,我们要操作的是第二个: 在这个位置加上这一句话,然后点击右上角的 Sync Now 按钮更新项目: andro ...
- CentOS 搭建 samba 服务器并通过 Windows 访问
第一步 下载安装 samba.samba-client sudo yum -y install samba samba-client 终端提示安装完成 第二步 创建共享文件夹,这个文件夹到时候可以通过 ...
- JZOJ 6664. 【2020.05.28省选模拟】最优化
\(\text{Solution}\) 原题:\(\text{Honorable Mention}\) 一个费用流做法,\(S\) 向 \(2i-1\) 连流量为 \(1\),费用为 \(0\) 的边 ...
- ESXi 安装 Truenas Core 解决企业共享存储免费方案
服务器配置 创建虚拟机内存最少8+,建议选择32,CPU没啥用,我给了2,硬盘我选择了50G+8T,因为一个虚拟机无法使用两个存储池,所以全部使用非SSD硬盘,自带网卡删除,单独给一个直通网卡,建议上 ...
- RISC-V核及工具链整理
RISC-V开源核分为开源核(无外设).SOC.FPGA.多核等多种框架. 开源核 SOC框架 平头哥无剑100 包括EDA仿真框架及FPGA框架 https://github.com/T-head- ...
- Windows 隐藏 远程桌面(连接栏)
当我们在使用远程桌面控制的时候,远程桌面工具栏遮挡视线很烦人.这时候就很有必要隐藏了! 1.全屏时显示连接栏 勾选去掉 这样子远程桌面上方的连接栏就消失了. 那么我们怎么打开呢?所以就要写下来记住了. ...
- 2021昆明B
容斥 + 矩形面积并 + 状压dp B-Blocks_第46届ICPC亚洲区域赛(昆明)(正式赛) (nowcoder.com) 题意 给出一个矩形A \((0,0),(W,H)\), 给出 \(n\ ...