注:本文本作者是以.rtf格式排版的,估此版对齐的不是很好。下载后可以考到记事本中,后缀为.rtf
第一部分: 基础知识
第二部分: 面向对象 1.封装 类
对一类事物抽象所得到的概念 对象
一个具体的事物 构造函数
不能有返回值
方法名于类名相同 可以有多个
默认生成无参无方法体无返回值构造函数
自己一旦定义,编译器将不再生成默认的构造函数 生成一个类对象时能且只能调用其中的一个构造函数
static
凡是static修饰的成员都是静态成员 静态成员都是属于类的
非静态的可以访问静态的,静态的不可以访问非静态的
通过类名只能访问一个类中的非私有静态成员 私有的静态成员也不可以通过对象名访问
this
非静态方法默认都含有一个this指针 this代表正在调用本方法的对象 final 修饰类
该类不能被继承 修饰方法
该方法可以被继承但不可以被重写 修饰属性
表示该属性能且只能被赋一次值,赋值方式有两种,并且只能其中的一种来赋值
1.定义的同时显示的初始化 2.在构造函数中初始化 函数的重载 同名不同参
返回值不能作为是否构成函数重载的依据
2.继承 定义
子类继承了 父类的成员
注意的问题:
非私有成员才可以被子类继承 重写:
重写方法必须和被重写方法具有相同的方法名称、参数列表、返回值类型 重写方法的访问权限不能小于被重写方法
3.多态 定义:
同一代码可以随上下文的不同而执行不同的操作,俗称多态 即:
一个父类的引用既可以指向父类对象也可以指向子类对象 它可以根据当前时刻指向的不同,自动调用不同对象的方法
注意事项
通过父类的引用只能访问子类从父类继承过来的成员
只有在父类的引用本省指向的就是一个子类对象时,我们才可以把父类的引用强制转化成子类的引用
相关知识 抽象类
一个抽象类通常都含有抽象方法
只重写了抽象类部分抽象类部分方法的也必须的被标记为abstract 不可以定义抽象类对象,但是抽象类可以实现多态
接口
接口中的方法都是 public abstract
亦可以定义接口对象,但接口却可以实现多态 重写接口方法时public不能省 举例:
线程的创建 事件的处理
容器的组织方式 serializable接口 第三部分: 高级部分 1.异常 定义
运行时的错误
分类
无法处理的错误 可以处理的异常 必须处理的异常
是Exception子类但不是RuntimeException的子类
可处理可不处理的异常
是RuntimeException的子类 注意问题:
finaly{....}一定会执行
先捕获子类异常,在捕获父类异常,顺序不可颠倒
重写方法抛出异常的范围不能大于被重写方法抛出异常的范围 假设f方法抛出了A异常,则f方法有两种方式处理A异常 1.throws A
2.try {....} catch(){.....}
2.线程 定义:
一个程序运行时的不同执行路径
创建线程的方式: 继承Thread类
实现Runnable接口
线程的同步
多个线程操作同一个资源并且要求这些操作中的若干个操作不能被中断这时就需要考虑线程的同步问题
线程同步是通过 synchronized来实现的 synchronized可以修饰两种: 代码块
方法(默认锁定的是this) 示例:
买票 线程的通信
有时多个线程只有彼此相互协作可以完成某个功能,这是就需要线程的通信
实现方式:
wait 和 notify()/notifyAll() 示例:
生产和消费 3.包
包的生产与运行:
package 语句必须是第一条语句 类名是包名和类名的组合
只有在整个包的最上层目录才可以运行 同包:
参见图
不同包的相互访问 参见图
jar包的生成与jar包的使用 普通jar包的生成
jar -cvf 要生成的jar包的名字.jar * 可运行jar包的生成:
jar cvfm 要生成的jar包的名字.jar 1.txt * 4.GUI
容器和组件的关系:
容器是组件,但组件不一定是组件 常见的布局管理器:
BorderLayout --Frame FlowLayout --Pannel GridLayout 事件模型:
必须要明白哪些操作时编译器自动完成的,哪些操作是程序员手动处理的 程序员只需要做两件事:
告诉事件源可以产生拿些事件
设计好可以处理这些事件的监听器 内部类:
在一个类内部定义的一个类叫内部类
内部类的方法可以访问外部类的所有成员
外部类的方法不可以直接访问内部类的任何方法
一定要明白产生内部类的原因:
如果一个类A要使用B类的所有成员,并且A类不需要被除B以外的其他类访问
则我们可以把A定义成B的内部类
因此几乎不存在直接生成内部类对象的问题 因此不存在外部类直接访问内部类成员的问题 匿名类:
匿名类是内部类的一种极端表现形式
匿名类可以访问外部类的所有成员和包裹本匿名类方法中的final类型的局部变量 5.IO
定义:
如果一个类是用来程序和设备之间的数据传输,则这个类有一个特殊的称谓叫流
流和类的关系:
流一定是类但类不一定是流
分类:
输入流 输出流 字节流 字符流 原始流 包裹流
常用流的介绍
四大基本抽象流
InputStream OutputStream Reader Writer
字节流和字符流的区别:
字节流可以处理所有格式的文件 字符流只能处理文本格式的文件 文件流
FileInputStream FileOutStream FileReader FileWriter
缓冲流
BufferedInputStream BufferedOutputStream BufferedReader BufferedWriter 缓冲流可以提高数据传输的速度
转换流
OutputStream InputStream 例子:
编程实现把用户从键盘输入的字符保存到一个String对象中 数据流
DataInputStream DataOutStream
数据流可以把基本类型数据的二进制直接读入或写出 例子:
编程实现将long类型数据写入byte数组 然后再从byte数组中把该数据读出 Print流
PrintStream PrintWriter
print流可以把基本类型数据格式化后的字符串输出 例子:
编程实现把键盘输入的数据写入A文件,如果输入有误则把错误信息写入B文件
Object流
ObjectInputStream ObjectOutputStream Object流可以把一个对象直接写入或读出 6.容器 定义:
如果一个类是专门用来存放其它类对象的则这个类有另外一个特殊的词叫做容器
容器和类的关系:
容器一定是类,但类不一定是容器 Collection 接口 Set接口
无序,不允许重复 现实类:
TreeSet HashSet List接口
有序,允许重复 实现类:
ArrayList LinkedList Map接口 定义:
既保存数据本身,也保存数据的主键的一种接口 实现类:
HashMap TreeMap hashCode() 和equals()方法 参见PPT Collection类
该类提供了对Collection接口实现类的排序,倒置,查找等功能 Comparble 接口
通过该接口的方法可以制定出对象之间的标准
凡是进行对象的比较排序的场合均可以实现该接口 Iterator 接口
利用该接口提供的方法可以遍历所有容器中的元素
The End
2012年3月29日0:15:52