时光飞逝,很多事情还没来得及我去思考与总结,不知觉中就已经匆匆走过了大三的上学期,在这2011的下半年中,令我最感收获的是:确定了自己学习java的路线。在蓝杰的第一阶段的学习也由此展开,由刚开始的激情到懈怠再到重整旗鼓,一路走来,对第一阶段的学习也即将结束,下面是我对这段时间所学到的java的基础知识进行的整理和总结,也算是对自己学习成果进行梳理一下吧。
第一章 Java基础入门
JDK的配置
安装路径:选择到bin目录
Path的变量值中添加安装路径,注意要添加分号
数据类型
1. 基本数据类型
byte 字节 8bit ~128-127
char 字符 16bit
short 短整型 16bit
int 整型 32bit
long 长整型 64bit
float 单精度 32bit
double 双精度 64bit
boolean 布尔类型 true和false
2. 引用类型
只要使用class,interface,abstract class定义的类都属于该类型,数组
String使用equals方法和==分别比较的是什么?
a、 String作为基本数据类型来使用:
只要String的两个变量的数据相同,则两种方法比较的结果相同。
b、 String作为对象来使用:
如果使用“==”则比较的是两个对象的引用,如果使用equals方法,
则比较的是两个对象所封装的字符串内容。
3. String的使用
Length()
toString()
substring()
indexOf(“”)
charAt()
endsWith()
equals()
ValueOf()
第二章 类和对象
1. 对象
一切皆对象
特征和行为
2. 类
类是对象的集合
属性和方法
3. 类的格式
Public class 类名{
Private 数据类型 属性名;
Public 构造函数名(参数类型 参数名,…){
}
Public 返回值类型 方法名(参数类型 参数名,…){
}
}
4. 实例化对象和调用方法的格式
类名 对象名 = new 构造函数(参数值,..);
对象名.方法名(参数值,…);
5. 构造函数
没有返回值类型;方法名必须要和类名相同。
与普通方法的区别:
1. 没有返回值类型,必须要有
2. 方法名必须和类型相同,可以任意定义
3. 实例化对象,执行对象的某一个行为
4. 调用一次就实例化一个新的对象,只要对象不变执行的将是同一个方法。
构造函数的用途:
1. 可以给属性赋值
2. 创建对象(实例化对象)
6. 方法重载
1. 参数个数,参数类型,参数顺序要不同
2. 方法名要相同。
调用根据参数个数,参数类型,参数顺序来决定的。
7. This关键字
This关键字是表示当前的对象。
参数名和属性名相同的时候使用this区分
调用自己本身的方法
8. 值传递和引用传递
值传递适用于基本数据类型
值传递是将变量b的值拷贝一份存入到参数score中,这样在栈内存中就存在了两块内存空间,分别存储着b和score,此时对其中的任何一个进行修改,都不会影响到另外一个。
引用传递适用于引用类型
引用传递是将对象名stu3中存储的内存首地址,拷贝一份存入到stu2对象名中,这样两个对象名就指向了同一个对象,那么其中一个对象名将对象的属性修改后,那么另一个也跟着改变了。(一个人有两个名字。)
第三章 Swing组件
图形界面分为三类:
1.容器
JFrame 窗体类 顶级容器
JPanel 面板类
2.独立的组件
JLabel 标签类
JTextField 输入框类
JPasswordField 密码输入框类
JComboBox 下拉列表框类
JCheckBox 复选框类
JRadioButton 单选按钮类
JButton 按钮类
3.布局
FlowLayout 流式布局类
GridLayout 网格布局类
BorderLayout 边框布局类
学会一种方法
第四章 类的继承
1. 为什么要使用继承
a) 代码重用
b) 程序扩展
2. 继承格式
a) 关键字 extends
b) Public class 子类名 extends 父类名或者抽象类 implements 接口名,…{
重写接口中所有的抽象方法
}
3. 继承到了什么
公有的属性和方法
在不同包下,在相同包下分别继承了什么?
a、 在不同包下,公有的属性和方法被子类继承到了;
b、 在同一包下,公有的和受保护的属性和方法被子类继承。
4. 方法重写
条件:
1. 继承
2. 方法名和参数必须完全相同
3. 访问修饰符可以大于或者等于父类的访问修饰符。
4. 返回值类型必须要完全相同
*对象必须是子类,才会优先调用子类重写的方法。
5. 自动转型
必须存在继承关系
格式一:
父类名 对象名 = new 子类构造函数();
Student stu = new UNStudent();
Stu.stdy();
格式二:
访问修饰符 返回值类型 方法名(父类名 父类对象名=子类对象名){
//调用方法
}
可以选择下面任意一种方式
父类名 父类对象名 = new 子类构造方法(参数值,...);
方法名(父类对象名);
或
子类名 子类对象名 = new 子类构造方法(参数值,...);
方法名(子类对象名);
缺点:使用了自动转型,就无法调用子类自己定义的方法;只能调用父类中已经定义过的方法。
和java的编译机制有关。
6. 接口
a) 定义接口的格式
定义接口的关键字:interface
格式:
Public interface 接口名extends 接口名,…(){
*注意接口中只能定义常量和抽象方法
//定义常量的格式
Public static final 数据类型 常量名 = 值;
//声明抽象方法的格式
Public 返回值数据类型 方法名 (参数类型 参数名,….);
}
接口和抽象类不能用来实例化对象。
接口的默认访问修饰符是public的。
接口虽然只能定义常量和抽象方法,但是接口也是一种类。
b) 接口的实现
关键字:implements
Public class 类名 implements 接口名 {
//重写接口的所有抽象方法
}
类实现一个接口后,是不是可以理解为类继承了接口?
也是继承关系,接口中的常量是可以被类继承到得。
c) 接口的用途
1.java的继承是单继承,所以接口是扩展类的继承体现的一种。
2.事件机制中要使用到接口。
3.接口编程、团队合作,主要是利用接口的规则。
7. 抽象类
抽象类是类和接口的集合。
关键字:abstract class
格式:
public abstract class 抽象类名 extends 类或抽象类 implements 接口,... {
//定义属性,方法,构造函数
//定义常量,抽象的方法(但是在定义抽象方法的时候和接口的方式不同)
格式:
访问修饰符 abstract 返回值类型 方法名(数据类型 参数名,...);
}
如果类继承了抽象类,那么就必须要重写抽象类的抽象方法。
抽象类中可能会定义抽象方法,所以抽象类不能用来实例化对象。
类继承抽象类的格式:
public class 类名 extends 抽象类名 {
//必须要重写抽象类的抽象方法。
}
类和接口有什么区别?
1、 类可以实例化对象,接口不可以;
2、 类只能单继承,而接口可以继承多个接口;
3、 接口中只能定义常量和抽象方法;
第五章 画图板
事件机制及其执行流程
1. 事件源
当你发生一个事件或者动作后,要触发其他的事情(执行其他的代码)时,这时候,接受你得事件和动作的组件对象就是一个事件源。
事件源要设置一个监听器方法,问题是给事件源添加什么类型的监听器方法呢?
事件源.addActionListener(处理对象);
2. 监听器
java的监听器(事件类型)都是接口,位于java.awt.event包和javax.swing.event包下,都是以Listener结尾的接口。
3. 处理者
定义一个类去实现ActionListener接口。每当在事件源上发生一个动作事件的时候,事件源的监听器方法就能捕获到事件,然后将事件交给事件处理对象进行处理,事件处理对象就会自动的去调用相应的事件方法,执行方法中的代码。
第六章 关键字
52个关键字,50个关键字,2个保留字
下面根据具体功能对关键字进行分类:
a、 基本数据类型:
byte 字节型
short 短整型
char 字符型
int 整型
long 长整型
float 浮点型
double 双精度型
boolean 布尔类型(true,false)
b、 访问控制符:
public 公共的
private 私有的
protected 受保护的
c、类、方法和变量修饰符:
abstract 声明抽象
class 类
extends 继承
implements 实现接口
interface 定义接口
new 创建新对象
static 静态
native 本地
final 终极的,不可改变的
transient 短暂
volatile 易失
synchronized 线程,同步
d、程序控制语句:if,else 条件判断
for,do,while 循环
switch,case 开关,选择判断
break 跳出循环
continue 继续
default 默认
return 返回
instanceof 实例
e、错误处理: catch 处理异常
finally 有无异常都执行
throw 抛出异常对象
throws 声明一个异常可能被抛出
try 捕获异常
f、包相关: import 引入
package 打包
g、变量引用: super 引用父类
this 本类
void 无返回值
h、保留字 const,goto
第七章 数组
定义格式:
数据类型 数组名[] = new 数据类型[长度];
数据类型 数组名 [][] = new 数据类型 [行数][列数];
使用数组:数组下标,length(数组唯一的属性)
优点和缺点:
a) 速度较快
b) 长度固定,及不方便插入和删除等操作
自定义队列
利用类封装方法来使数组可以随使用时变化长度,以此来解决数组
长度固定的缺点。
未完待续……………………