Java学习小结Part2_2011.6.7
9.Java中的类有三种,第一种是普通类(class)
public class A { 方法;}
?
这个类中的方法必须要有方法体——就是每个方法后面都要有大括号;
第二种是接口类(interface)
public interface B{ public 共同属性; public 返回值类型 方法名;}
?这个类中的方法要靠别的类来实现,例如类A实现接口B 代码如下:
public class A implements B{ public 返回值类型 B中方法名{ 方法; }}
?类A必须实现B接口中所有的抽象方法;
第三种是介于普通类和抽象类之间的抽象类(abstract),可以由抽象方法,也可以有具体方法
public abstract class C{ public abstract 返回值类型 方法名(); //抽象方法 public 返回值类型 方法名(){ //具体方法 方法; }}
?10.前面说的继承,子类继承父类的所有方法,但是现实中有这样的情况:大学生是学生子类,都有学习这个方法,但是大学生的学习方法和学生的学习方法又是不一样的,这个时候就要用方法的重写来重写这个方法:
??? 重写的要求是:子类的方法名和传入参数必须与父类相同。
??? 方法的重载和前面说的构造器的重载是类似的,要求方法名相同,传入参数必须不同。
11.?自动转型与强制转型
???? 1).一个对象可以自动由父类转型为子类:
public class Student{} //学生类public class UNStudent extends Students{} //大学生类//新建学生类:Student stu = new UNStudent();
?这句话的意思就是:学生甲是个大学生;
??? 2).强制转型
?
(这一块儿不太懂……请多指教)
12.多态:
??? 我觉得多态就是根据传入参数的不同,实现不同方法(和前面的构造器重载差不多)
13.常用界面开发组件:
???? 常用的界面开发组件在java.awt和javax.swing这两个包里面,通过查阅JDK文档可以知道每个函数都是干什么的
14.事件监听机制的理解
???? 程序如何获得我们点击鼠标或者敲击键盘这样的操作呢?这就需要监听器。监听器的运行机制:
???? 1)? 找到监听的事件源对象
???? 2)根据需要监听的事件实现对应的监听器接口
???? 3)? 创建监听器对象
??? ?4)将监听器对象绑定在事件源对象上
15.常用的监听器有Actionlinster(事件监听器)、MouseListener(鼠标监听器)、MouseMotionListener(鼠标移动监听器)、MouseWheelListener(鼠标上的滚轮监听器)、KeyListener(键盘监听器)
16.Java中数组的创建方法:
????
//格式1int t[] = new int[10];//创建长度为10的一维数组//格式2int t[] = {1,2,3,4,5,6};//创建给定元素的数组//创建二维数组//格式1int a[][] = new int[10][8];//创建10X8的二维数组//格式2int []a[] = new int[10][8];
??? 数组的特点:数据连续,有下标,长度固定。
?17.长度可变的数组——队列
?????? 有的时候我们不知道一共有多少元素,这就需要一个长度可变的数据结构,这就是队列,实现代码如下:
/** * 队列的实现 * @author LZL * */public class Liedui<E> implements FangfaJikou<E>{/** * 定义一个长度为0的原始数组 */private Object str[] =new Object [0]; /** * 实现添加元素的方法 */public void add(E s) {Object str1[]=new Object[str.length+1];str1[str1.length-1]=s;for(int i=0;i<str.length;i++){str1[i]=str[i];}str=str1;}/** * 指定位置删除元素的方法 */public void del(int index) {Object str1[]=new Object[str.length-1];for(int i=0;i<index;i++){str1[i]=str[i];}for(int i=index;i<str1.length;i++){str1[i]=str[i+1];}str=str1;}/** * 根据下标提取元素 */public E get(int index) {E u =(E) str[index];return u;}/** * 显示队列长度 */public int size(){return str.length;}/** * 指定位置修改 */public void Edit(String s,int index){str[index]=s;}/** * 指定位置插入 */public void ins(E s,int index){Object str1[]=new Object[str.length+1];for(int i=0;i<index;i++){str1[i]=str[i];}for(int i=index+1;i<str1.length;i++){str1[i]=str[i-1];}str1[index]=s;str=str1;}}
?基本原理就是当加入一个新元素时,新建一个比原数字长度+1的新数组,把新元素拷贝到新数组最后面,前面的照搬过来,再把新数组赋给老数组。
? 上述代码中的 Object [0] 的意思是:数组元素种类未知,传入什么元素就是什么种类。
?