A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 胡元江 中级黑马   /  2013-2-23 14:49  /  1343 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

第一部分:基础知识, 函数,变量等等
第二部分:面向对象
1:封装

对一类事物抽象所得到的一个概念。
对象
一个实实在在存在的个体。
构造函数
不能有返回值
方法名和类名相同
可以有多个

默认生成无参无方法体无返回值的构造函数
自己一旦定义构造函数,默认构造函数不在生成。
生成一个类对象,只能调用其中一个构造函数
static
凡是static修饰的成员都是静态成员
静态属于类本身
非静态可以访问静态的
静态不能访问非静态的
通过类名只能访问一个类中的非私有静态成员
私有静态成员也不可以通过对象名访问
this
非静态方法默认含有一个this指针
this代表正在调用本方法的对象
(一个类生成很多对象,普通方法只有一个,哪个对象调用,this就代表哪个对象)
final
修饰类
该类不能被继承
修饰方法
该方法可以被继承,但是不能被重写
修饰属性
表示该属性只能被赋值一次,赋值有2种方式,并且只能选择其中一种
1:定义的同时显示的初始化
2:在我们的构造函数中初始化
函数重载
同名不同参
返回值不可以作为是否构成函数重载的依据

2:继承
定义:
子类继承父类的成员
注意的问题:
非私有成员才可以被子类继承
重写:重写的方法和被重写的方法,必须同名,同参,同返回值
重写的方法的访问权限不能小于被重写的方法
3:多态
定义:同一代码可以随上下文的不同而执行不同的操作,俗称多态

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

注意事项:
1:通过父类的引用不能访问子类特有的方法,只能访问子类从父类继承过来的
2:只有在父类的引用本身指向的就是一个子类对象时,我们才可以把父类的引用强制转化为子类的引用
例如:A aa=new B();
B bb=new B();
aa==bb; //这句不能省,否则下句 不成立
bb=(B)aa;

相关知识:
抽象类
一个抽象类通常都含有抽象方法
只重写了抽象类部分抽象方法的类,也必须被标记为abstract
不可以定义抽象类对象,但是抽象类可以实现多态(把实现抽象类的子类对象的引用发送给父类的抽象类的引用)
接口
接口中的方法 都是public abstract
不可以定义接口对象,但接口却可以实现多态
重写接口方法时,public不能省
举例:
线城的创建
事件的处理
容器的组织方式
serializable接口

第三部分: 高级部分
1: 异常
定义
运行时的错误
分类
无法处理的错误
可以处理的异常
必须处理的异常
是Exception子类 但不是RuntimeException的子类

可处理可不处理的异常
是RuntimeException的子类
注意问题
finally{。。。。} 一定会执行
先捕获子类异常,在捕获父类异常,顺序不可颠倒
重写方法抛出异常的范围不能大于被重写方法抛出异常的访问
假设F方法 抛出了A异常,则F方法有2种方式处理A异常
1:throws A
2: try{.......} catch(){......}
2:线程
定义
一个程序运行时的不同执行路径
创建线程的方式
继承了Thread 类
实现了Runnable接口 (常用)
线程的同步
多个线程操作同一资源,并且要求这些操作中的若干个操作不能被中断,这时就需要考虑线程同步的问题
线程同步是通过synchronized来实现
synchronized 可以修饰2种:
代码块
方法(默认锁定的是this)
实例:
买票
线程的通信
有时多个线程只有彼此相互协作才可以完成某个功能,这时就需要线程的通信
实现方式:
wai 和 notify() / notifyAll()
暂停 叫醒
(wai 当前调用this这个东西的 暂停)
事例:
生产和消费
3: 包
不同包之间如何相互访问?

包的生成与运行:
package 语句必须是第一条语句
类名是 包名和类名的组合
只有在整个包的最上层目录才可以运行
同包:
参见图
不同包的相互访问
参见图
jar包的生成与jar包的使用
普通jar包的生成
jar _cvf 要生成的jar包的名字.jar *
可运行jar包的生成:
jar cvfm 要生成的jar包的名字.jar 1.txt *
4: GUI
容器和组建的关系:
容器是组建,但组建不一定是容器
常见的布局管理器:
BorderLayout --- Frame
FlowLayout --- Panel
GridLayout
事件模型:
必须要明白那些操作是编译器自动完成的,哪些操作是程序员手动完成的
程序员只需要做2件事:
告诉事件原 可以产生哪些事件
设计好可以处理这些事件的事件监听器
内部类:
在一个类内部定义的类 叫内部类
内部类的方法可以访问外部类的所有成员
外不类的方法不可以访问内部类的任何成员

一定要明白产生内部类的原因:
如果一个类A要使用B类的所有成员,并且A类不需要被除B以外的其他类访问,则我们可以把A定义成B的内部类

因此几乎不存在直接生成内部类对象的问题
因此几乎不存在外部类需要访问内部类成员的问题
匿名类:
匿名类是内部类的一种极端表现形式
匿名类可以访问外部类的所有成员和包裹本匿名类中法中的final类型的局部变量
5: IO
定义:
如果一个类是用来完成程序和设备之间的数据传输,则这个类有一个特殊的称为,叫做流
流和类的个关系:
流一定是类 但类不一定是流

分类:
输入流 输出流
字节流 字符流
原始流 包裹流

1 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马