6. 高级类
2015-09-28 23:19
323 查看
一.内部类:(成员内部类、静态内部类、局部内部类、匿名内部类)
1. 成员内部类:
实现方法:①MemberInner.Inner inner1 = mi.new Inner();
inner1.innerFun();
②MemberInner.Inner inner2 = new MemberInner().new Inner();
inner2.innerFun();
若内部类有属性和外部类同名,如何访问到外部属性?
答案:若属性是实例属性,外部类名.this.属性名;
若属性是静态属性,外部类名.属性名;
public class MemberInner {
private int a = 10;
private static int b = 20;
public class Inner{
private int a = 30;
private int b = 40;
public void innerFun() {
System.out.println("MemberInnerDemo---Inner [a="
+ MemberInner.this.a
+ ", b=" + MemberInner.b + "]");
System.out.println("MemberInnerDemo---Inner [a="
+ a
+ ", b=" + b + "]");
}
}
}
public static void main(String[] args) {
MemberInner.Inner inner2 = new MemberInner().new Inner();
inner2.innerFun();
}
执行结果为:
MemberInnerDemo [a=10, b=20]
MemberInnerDemo---Inner [a=30, b=40]
2. 静态内部类:
只能访问外部类中的静态属性如何实例化静态内部类?StaticInner.Inner inner1 = new StaticInner.Inner();
3. 局部内部类:
内部类定义在方法中局部内部类只能访问方法中的final局部变量
4. 匿名内部类:
经常是实现接口的时候用匿名内部类(没有类名)局部内部类只能在方法内部使用
局部内部类中要想访问方法中的变量,这个变量必须是常量。
匿名异步类:
二、异常:
1. 错误
虚拟机错误网络错误
程序逻辑
常见异常:(运行时异常)RunTimeException的子类,不用try-catch-finally
①算数运算异常 除0
②空指针异常
int [] array = null;
System.out.println(array.length);
③数组下标越界异常
int [] array = new int[10];
System.out.println(array[20]);
④类型转换异常
⑤输入不匹配异常
输入的时候输入字母
执行流程:
throw是直接杀死进程,程序员没有机会去处理
在程序中抛出异常:
写throw new (IO等等的异常),然后在出现错误的地方按照提示
选择增加throws的声明。
可选项依次是包含关系,下边的包含上边的。
声明的时候,选的是要全部包含的项
总结:程序出错时,会生成一个(或多个)异常类对象),用throw 抛生成的异常类对象
throws指出了方法可能抛出的多个异常类对象
三、String 和StringBuffer:
String存的是字符串常量,修改值,有内存申请StringBuffer:申请内存,默认16,值可以修改
具体方法看手册
一个try块可以和多个catch块配合以处理多个异常(可以是分支或嵌套)
函数重载
equals是比较的值
String的方法:
String变量,改变内容的时候回重新开辟内存,效率低,因此提出了StringBuffer
注意:Java中的字符串没有\0结尾
四、集合类 :
ArrayList<E> 泛型(模板类):add remove containsLinkList<E>
Map<Key, Value>:哈希表
范型:
集合:
哈希表:
放入的顺序和插入的顺序无关
不能有重复的值
key值关键
作业:
1. Map例子
2. 生成四位随机码
相关文章推荐
- atlassian JIRA 插件开发(八) — MVC实现
- CentOS 6系统启动引导过程
- Hdoj 4081 Qin Shi Huang's National Road System(次小生成树)
- spring mvc 接收 put参数
- Xcode自动注释插件:VVDocumenter-Xcode
- 编译过程的五个阶段
- 程序员必备软件-小工具
- java去除重复的字符串和移除不想要的字符串
- 理解LSTM网络
- struts2上传文件的小例子
- Java对象池技术的原理及其实现
- JavaScript高级程序设计之数据类型
- 回溯 dp FatMouse and Cheese
- Python磁盘监控、日志分析监控脚本
- 如何改变Xcode字体大小?
- 2015年终总结
- java设计模式第16弹--访问者模式
- 表达式求值
- 传智博客2015年最新版iOS基础视频_最适合初学者入门
- [Android] java.lang.IllegalArgumentException: Illegal character in query at index 57