郝斌老师java课程的总结,纯手打分享,方便复习回顾
类:对一类事物抽象所得到的一个概念
对象:一个具体的事物
构造函数:
特点:不能有返回值 方法名与类名相同 可以有多个
注意:默认生成无参、无方法体、无返回值的构造函数
自己一旦定义,编译器将不再生成默认的构造函数
生成一个类对象时能且只能调用其中一个构造函数
static:
凡是static修饰的成员都是静态成员
静态成员都是属于类的
非静态可以访问静态,静态不可以访问非静态
通过类名只能访问一个类中的非私有静态成员
私有静态成员也不可以通过对象名访问
this:
非静态方法默认都含有一个this指针
this代表正在调用本方法的对象
final:
修饰类:该类不能被继承
修饰方法:该方法可以被继承但不能被重写
修饰属性:表示该属性能且只能赋值一次,并只能选两种中一种赋值(定
义的同时显式的初始化、构造函数中初始化)
函数重载:同名不同参,返回值不能作为是否构成重载的依据
定义:子类继承了父类成员
注意:
非私有成员才可以被子类继承
重写:重写方法必须和被重写方法具有相同的方法名、参数列表、返回
值类型
重写方法的访问权限不能小于被重写方法(多态)
定义:同一代码可以随上下文的不同而执行不同的操作,即一个父类的引用
既可以指向父类对象,也可以指向子类对象;它可以根据当前时刻指
向的不同,自动调用不同对象的方法
注意:
通过父类的引用只能访问子类从父类继承的成员
只有父类的引用本身指向一个子类对象时,才可以将其强制转化为子类
的引用
相关知识:
抽象类:
一个抽象类通常都含有抽象方法
只重写抽象类部分抽象方法的类也必须标记为abstract
不可以定义抽象类对象,但抽象类可以实现多态
接口:
接口中方法都是public abstract
不可以定义接口对象,但接口可以实现多态
重写接口方法时,public不能省
应用:
线程创建、GUI事件处理、容器的组织方式、serializable接口
定义:运行时产生的错误
分类:
Error无法处理的异常
Execption可以处理的异常(必须处理:除RuntimeExecption以外的异
常;非必要处理:RuntimeExecption异常)
注意:
finally{...}一定会执行
先捕获子类异常,再捕获父类异常,顺序不可颠倒
重写方法抛出异常的范围不能大于被重写方法(多态)
假设f方法抛出A异常,则f有两种方式处理该异常
定义:一个程序运行时的不同执行路径
创建线程的方式:
继承Thread类
实现Runnable接口
线程的同步:
多个线程操作同一个资源,并要求这些操作中的若干个操作不能被中断
实现:synchronized修饰代码块、方法(默认锁定this)
例子:买票
线程的通信:
有时多个线程需要彼此协作才可以完成某个功能
实现:wait()、notify()、notifyAll()
例子:生产和消费
包的产生和运行:
package语句必须是第一条语句
类名是包名和类名的组合
只有在整个包的最上层目录才可以运行
同包、不同包的相互访问:ppt
jar包的生成与使用:普通、可运行jar包的生成
容器和组件的关系:容器是组件,组件不一定是容器
常见布局管理器:
BorderLayout、FlowLayout、GridLayout
事件模型:
程序员只需做两件事:告诉事件源可以产生哪些事件、设计处理事件的
事件监听器
内部类:
在类内部定义的类
内部类的方法可以访问外部类的所有成员
外部类的方法不可以直接访问内部类任何成员
内部类产生的原因:类A需要使用类B的所有成员,并不需要被B外其
他类访问,则可以定义A为B的内部类;故几乎不存在直接生成内
部类对象、外部类访问内部类成员等问题
匿名类:
匿名类是内部类的一种极端表现形式
匿名类可以访问外部类的所有成员和包裹本匿名类方法中的final类型
的局部变量
定义:若一个类用来完成程序和设备之间的数据传输,该类称为流
流和类的关系:流一定是类,类不一定是流
常用流介绍:
四大基本抽象流:InputStream OutputStream Reader Writer
字节流和字符流:字节流可以处理任意格式文件
字符流只能处理文本格式文件
文件流:FileInputStream FileOutputStream FileReader FileWriter
缓冲流:BufferedInputStream BufferedOutputStream
BufferedReader BufferedWriter
转化流:InputStreamReader OutputStreamWriter
例子:将键盘输入字符保存到String对象中
数据流:DataInputStream DataOutputStream
数据流可以把基本类型数据的二进制直接读入、写出
例子:将long类型数据写入byte数组,再从数组中读出
Print流:PrintStream PrintWriter
Print流可以把基本数据类型数据格式化后的字符串输出
例子:将键盘输入数据写入A文件,有错则将出错信息写入B文件
Object流:ObjectInputStream ObjectOutputStream
Object流可以把一个对象直接读入、写出
定义:专门用来存放其他类对象的类
容器和类的关系:容器是类,类不一定是容器
Collection接口:
Set接口:
无序、不能重复
实现类:TreeSet、HashSet
List接口:
有序、可重复
实现类:ArrayList、LinkedList
Map接口:
既保存数据本身,也保存数据主键
实现类:HashMap、TreeMap
HashCode()和equals()方法
Collections类:提供对Collection接口实现类的排序、倒置、查找等
功能
Comparable接口:
通过该接口制定对象之间比较的接口
需要进行对象比较排序的场合考虑实现该接口
Iterator接口:
利用接口提供的方法遍历所有容器中的对象