Java之内部类与异常类
来源:互联网 发布:淘宝怎么买m9大型折刀 编辑:程序博客网 时间:2024/06/08 18:30
内部类:java支持在一个类中定义一个类,成为内部类,包含内部类的类称为内部类的外嵌类。
内部类和外嵌类的关系:
1.外嵌类的成员变量在内部类中任然有效,内部类中的方法也可以调用外嵌类的方法。
2.内部类的类体中不可以有类变量和类方法。外嵌类的类体中可以用内部类声明对象,作为外嵌类的成员。
3.内部类仅供他的外嵌类使用,其他类不可以用某个类的内部类声明对象。
注意:
1.有内部类的类的字节码文件的格式是 “外嵌类名$内部类名.class”.
2.内部类可以被修饰为static内部类,此时static内部类就是外嵌类中的一种静态数据类型,这样就可以在程序中使用static内部类来创建对象了。
匿名类:
和子类有关的匿名类:匿名类就是一个子类。
假设Bank是类,那么下列代码就是用Bank的一个子类(匿名类)创建对象。
new Bank(){
匿名类的类体
};
注意:
1.使用匿名类时,必然是在某个类中直接用匿名类创建对象,因此匿名类一定是内部类。
2.匿名类的类体中不可以声明static成员变量和static方法。
3.由于匿名类是一个子类,但没有类名,所以在创建对象时直接使用父类的构造方法。
和接口有关的匿名类:
interface SpeakHello{void speak();}class HelloMachine{public void turnOn(SpeakHello hello) //接口参数{hello.speak();}}public class E{public static void main(String args[]){HelloMachine machine = new HelloMachine();machine.turnOn(new SpeakHello(){ //和接口SpeakHello有关的匿名类public void speak(){System.out.println("hello,you are welcome");}});machine.turnOn(new SpeakHello(){ public void speak(){System.out.println("你好,欢迎光临");}});}}代码编译后生成SpeakHello.class, HelloMachine.class, E.class, E$1.class, E$2.class(两个内部类)。
异常类:
try-catch语句:将可能出现异常的操作放在try部分,一旦try部分抛出异常对象,那么try将立刻结束执行,转向执行catch部分,例子如下:import java.lang.Integer;class E{public static void main(String args[]){int n=0, m=0, t=1000;try{m = Integer.parseInt("8888");n = Integer.parseInt("ab56"); //发生异常,退出try,转向catcht = 7777; //t没有机会被赋值}catch(NumberFormatException e){System.out.println("发生异常"+e.getMessage());}System.out.println("n="+n+","+"m="+m+","+"t="+t);try{System.out.println("故意抛出IO异常!");throw new java.io.IOException("我是故意的");//System.out.println("这个输出语句肯定没有机会执行,必须注释,否则编译出错");}catch(java.io.IOException e){System.out.println("发生异常:"+e.getMessage());}}}
自定义异常类:点击打开链接
断言:
1 0
- Java之内部类与异常类
- Java学习笔记之内部类和异常类、匿名类
- 【JAVA基础】之内部类与匿名内部类
- Java--自我心得之内部类,匿名类,异常类,String类
- Java基础之内部类、匿名类和异常处理知识点总结
- Java基础之内部类、匿名类和异常处理知识点总结
- 黑马程序员-java基础之内部类,异常,包
- 黑马程序员 ——Java基础之内部类、异常、包
- Java内部类与异常类
- java初入内部类与异常类
- Java类高级特性之内部类继承
- Java基础之内部类
- Java之内部类
- java 之内部类
- JAVA之内部类
- Java反射之内部类
- java基础之内部类
- Java基础之内部类
- 欢迎使用CSDN-markdown编辑器
- 02-线性结构1 两个有序链表序列的合并
- Android开发者必知的开发资源
- Servlet API 中文版
- MS SQL表分区(文件组)
- Java之内部类与异常类
- 將数字金额转换为中文大写
- 排序算法
- 上传图片413 Request Entity Too Large
- 对OutputStream类的flush()方法的误解
- Java中Timer和TimerTask的使用
- gcc制作静态库和动态库总结
- 你知道JVM性能怎么调优吗?
- The requested resource (/xy_ssh_1/arcAction!arcShow) is not available.