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中数组的创建方法:

    

//格式1
int t[] = new int[10];//创建长度为10的一维数组
//格式2
int t[] = {1,2,3,4,5,6};//创建给定元素的数组
//创建二维数组
//格式1
int a[][] = new int[10][8];//创建10X8的二维数组
//格式2
int []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] 的意思是:数组元素种类未知,传入什么元素就是什么种类。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值