javase学习大纲

来源:互联网 发布:java zip文件加密 编辑:程序博客网 时间:2024/05/17 03:45

Javase复习大纲

第一部分:基础知识

第二部分:面向对象

1.封装

类:对一类事物抽象所得到的概念;

对象:一个具体的事物;

构造函数:

不能有返回值;

方法名与类名相同 ;

可以有多个 ;

默认生成无参方法体无返回值的构造函数;

自己一旦定义,编译器就不会自动生成默认的构造函数;

生成一个类对象时能且只能调用其中的一个构造函数;

static:

凡是static修饰的成员都是静态成员;

静态成员都是属于类;

非静态的可以访问静态的;

而静态的不能访问静态的;

通过类名只能访问里面的非私有(private)成员里面的static静态成员;

私有静态成员也不可以通过对象名访问;

 

this:

非静态方法默认都含有一个this指针;

this代表正在调用该方法的对象;

 

final:

修饰类:表示该类不能被继承;

修饰方法:该方法可以被继承但是不能被重写;

修饰属性:表示该属性能且只能被赋一次值,赋值的方法有两种

1.定义的同时显示初始化;

2.构造函数中初始化;

重载函数

同名不同参数;

返回值不能作为是否为构成重载函数的依据;

2.继承

定义:子类继承了父类的成员;

注意的问题:

私有成员不可以被继承(非私有成员才可以被子类继承);

重写:

重写方法必须和被重写方法具有相同的方法名称,参数列表,返回值名称;

重写方法的访问权限不能小于被重写方法;

3.多态

定义:

一个父类的引用可以指向父类对象,也可以指向子类对象,它可以根据当前时 刻的指向的不同,自动调用不同对象的方法;

同一代码可以随上下文的不同而执行不同的操作,俗称多态;

注意事项:

通过父类的引用只能访问子类从父类继承过来的成员;

只有在父类在父类的引用指向的就是一个子类对象时,我们才可以把父类引用   强制转化为子类引用;

相关知识:

抽象类:

一个抽象类一般都含有抽象方法;

只重写了抽象类部分抽象方法的类也必须定义为abstract;

不可以定义抽象类对象,但是抽象类可以实现多态;

接口:

接口中方法都是public abstract;

不可以定义接口对象,但接口可以实现多态;

重写接口方法时,public不能省略,举例:

线程的创建

事件的处理

容器的组织方式

Serializable接口

第三部分:高级部分

1.异常

定义:运行时的错误

分类:

无法处理的错误;

可以处理的异常:

必须处理的异常:是Exception的子类但是不是RuntimeException的子类

可处理可不处理的异常:是RuntimeException的子类

注意问题:

finally(...)一定会执行

先捕获子类异常,然后再捕获父类异常,顺序不可颠倒;

重写方法抛出异常的范围不能大于被重写方法抛出异常的范围;

假设f()方法抛出了A异常,有两种方法处理异常:

1.throws A

2.try{}catch{}

2.线程

定义:一个程序运行时的不同执行路径;

创建线程的方式:

1.继承了(extends)Thread类;

2.实现了Runnable接口;

线程的同步:

多个线程操作同一资源并且要求这些操作中的若干个操作不能被中断,这时就 需要考虑线程同步的问题;

线程同步是通过synchronized来实现;

synchronized可以修饰两种:

代码块:默认锁定this

示例:卖票

线程的通信:

有时多个线程只有彼此相互协作才能完成某个功能,这就需要线程通信;

实现方法:

wait和notify() / notifyAll()

示例:生产和消费

3.包

包的生成与运行:

package语句必须是第一条语句

类名是包名和类名的组合;

只有在整个包的最上层才可以运行;

同包的相互访问:

不同包的相互访问:

Jar包的生成和使用:

普通jar包的生成:jar -cvf 要生成的jar包的名字.Jar *;

可运行jar包的生成:jar cvfm 要生成jar包的名字.Jar  1.txt;

4.GUI

容器和组建的关系:容器是组建,但组建不一定是容器;

常见的布局管理器:

BroderLayout--Frame

FlowLayout--Pannel

GridLayout--

事件模型:

必须明白哪些操作是编译器自动完成,哪些是程序员手动处理完成的;

程序员只需要做两件事:

告诉事件源可以产生哪些事件;

设计好这些可以处理事件的事件监听器;

内部类:

在一个类内部定义的类叫做内部类;

内部类的方法可以访问外部类的所有成员;

外部类的方法不可以直接访问内部类的任何成员;

一定要明白产生内部类的原因:

如果一个类A要使用B类的所有成员,并且A类不需要被除B以外

的其他类访问,则可以把A定义为B的内部类;

因此几乎不存在直接生成内部类对象的问题;

因此几乎不存在外部类需要访问内部类的问题;

匿名类:

匿名类是内部类的一种极端表现形式;

匿名类可以访问外部类中的所有成员和包裹本方法中的final类型的局部;

变量;

5.IO  

定义:

如果一个类是用来完成程序和设备之间的数据传输,则这个类有一个特殊的称

谓叫做流;

流和类的关系:流一定是类,但类不一定是流;

分类:

输入流 输出流

字符流 字节流

原始流 包裹流

常用流的介绍:

四大基本抽象流:

InputStream   OutputStream

Reader Writer

字符流和字节流的区别:

字节流可以处理所有格式的文件;

字符流只能处理文本格式的文件;

文件流:

FileInputStream   FileOutputStream

FileReader FileWriter

缓冲流:

BufferedInputStream  BufferedOutputStream

BufferedReader    BufferedWriter

转换流:

OutputStreamReader   OutputStreamWriter

例子:如何将键盘上的字符组成字符串赋给String对象;

  编程实现把用户从键盘输入的字符保存到一个String对象中;

数据流:

DataInputStream   DataOutputStream

数据流可以把基本类型数据的二进制直接读入或写出;

例子:编程实现将long类型数据写入byte数组

  然后再从byte中读取该数据;

Print流:

PrintStream   FileWriter

Print流可以把基本类型数据转化为字符串输出;

例子:编程实现把键盘输入的数据写入A文件,如果输入有误,则把出         错信息写入B文件;

Object流:

ObjectInputStream     ObjectOutputStream

Object流可以把一个对象直接写入或读出

6.容器

定义:

如果一个类是专门用来存放其他类对象的,则这个类有另外一个特殊的词叫

做容器;

容器和类的关系:容器一定是类,但类不一定是容器;

Collection接口:

Set接口:

无序,不允许重复;

实现类:

TreeSet    HashSet

List接口:

有序,允许重复;

ArrayList      LinkedList

Map接口;

定义:既保存数据本身,也保存主键的一种接口;

实现类:

HashMap        TreeMap

hashCode()和equals():重写hashCode和equals方法;

Collection类:

该类提供了对Collection接口实现类的排序,倒置,查找等功能;

Comparable接口:

通过该接口的方法可以制定出对象之间比较的标准;

凡是需要进行对象的比较排序的场合均可以考虑实现该接口;

Iterator接口:

利用该接口提供的方法我们可以遍历所有容器中的元素;

 

 

0 0