当前位置:网站首页>内部类、异常简单介绍(第十天)
内部类、异常简单介绍(第十天)
2022-08-02 00:19:00 【不习惯有你】
内部类:(当做类中的一个普通成员变量,只不过此成员变量是class的类型)
一个java文件中可以包含多个class,但是只能有一个public class
如果一个类定义在另外一个类的内部,此时可以称之为内部类
使用:
创建内部类的时候跟之前的方法不一样,需要在内部类的前面添加外部类来进行修饰
语法:
外部类 外部类对象 = new 外部类();
外部类.内部类 内部类对象 = 外部类对象.new 内部类();
innerClassDemo.InnerClass inner = new innerClassDemo().new InnerClass();
特点:
1.内部类可以方便的访问外部类的私有属性
2.外部类不能访问内部类的私有属性,但是如果创建了内部类的对象,此时可以在外部类中访问私有属性
3.内部类中不能定义静态属性
4.当内部类和外部类具有相同的私有属性的时候,在内部类中访问的时候,可以直接访问内部 类的属性,如果需要访问外部类的属性,那么需要添加 外部类名.this.属性
分类:
匿名内部类:当定义了一个类,实现了某个接口的 时候,在使用过程中只需使用一次,没有其他用途,其实考虑到代码编写的简洁,可以考虑不创建具体的类,而采用new interface({添加未实现的方法} )就叫做匿名内部类
静态内部类:在内部类中可以定义静态内部类,使用static关键字进行修饰,使用规则
外部类.内部类 类的引用名称 = new 外部类.内部类();
方法内部类:在外部类的方法中也可以定义类,此时叫做方法内部类,使用的时候只能在方法中创建对象,因为此class的作用域就是当前方法
当前方法在传递参数的时候需要注意
异常:
在程序运行过程中,出现的不正常情况叫做异常
注意:相同的代码在运行的时候,根据输入的参数或者操作的不同,有可能会发生异常,有有可能不会发生异常,应该在写代码的过程中尽可能保证代码的正确性,不要到处都是bug
程序在运行过程中如果出现了问题,导致后面的代码无法正常执行,而使用异常机制之后,可以对异常情况进行处理,同时后续代码会继续执行,不会中断整个程序
在异常的处理过程中,不要只是简单的输出错误,要尽可能的讲详细的异常信息输出
e.printStackTrace():打印异常的堆栈信息,可以从异常信息的最后一行追踪,寻找自己编写的 java类
异常处理的方式:
1.捕获异常: try{ 代码逻辑 }catch(Exception e){ 异常处理逻辑 }
try{ 代码逻辑 }catch(具体的异常Exception e){ 异常处理逻辑 }catch(具体的异常Exception e)
可以针对每一种具体的异常做相应的更丰富的处理
注意:当使用多重的catch的时候,一定要注意相关异常的顺序,将子类放在最前面的catch,父类放在后面的catch
执行过程中可能存在的情况:
1.正常执行,只执行try中的代码
2.遇到异常情况,会处理try中异常代码之前的逻辑,后面的逻辑不会执行,最后会执行catch中
边栏推荐
- ICML 2022 || 局部增强图神经网络GNN,在 GCN 和 GAT基础上 平均提高了 3.4% 和 1.6%
- Looking back at 5 recessionary times in history: How might this time be different?
- Microsoft PC Manager V2.1 beta version officially released
- CVPR 2022 | SharpContour:一种基于轮廓变形 实现高效准确实例分割的边缘细化方法
- Routing strategy
- What does the errorPage attribute of the JSP page directive do?
- Business test how to avoid missing?
- flv.js解析与使用
- 请教一下本网站左下角的动漫人物是怎么做的?
- Knowing the inorder traversal of the array and the preorder traversal of the array, return the postorder history array
猜你喜欢
随机推荐
Trie详解
Stapler:1 靶机渗透测试-Vulnhub(STAPLER: 1)
哪里有期货开户的正规途径?
go笔记——map
Day11 Shell scripting basics
【CodeTON Round 2 (Div. 1 + Div. 2, Rated, Prizes!)(A~D)】
管理基础知识11
辨析内存函数memset、memcmp、memmove以及memcpy
ECMAScript 2022 正式发布,有你了解过的吗?
What is the function of the JSP out.println() method?
nodeJs--mime模块
严格模式,use strict
第 45 届ICPC亚洲区域赛(上海)G-Fibonacci
[HCIP] BGP Small Experiment (Federation, Optimization)
Industrial control network intrusion detection based on automatic optimization of hyperparameters
ImportError cannot import name ‘Mapping‘ from ‘collections‘
html+css+php+mysql实现注册+登录+修改密码(附完整代码)
渗透测试与攻防对抗——渗透测试基础
面试:简单介绍你参与的一个项目
21.数据增强