本文共 3143 字,大约阅读时间需要 10 分钟。
1;其实容器就是数组,都是存放东西的一块内存,但是容器唯一不同的是,他可以放很多类型的东西,列如某个对象,字符串,数字,其实都可以写成一个对象,因为有包装类的存在嘛。因此都是Object类。
2;设计Java容器底层模拟,放在StringBudiler类的源码仿写来的。简单介绍一下,
3;一些简单步骤。就按照面向对象的设计思路来说。
3.1;需要定义一个成员变量,数组。类型应该为Object,因为容器要放对象,而Object类时所有对象的超级父类,因此则定义为Object类。设置为private权限,增强封装性。/** * value就是存放Object的容器*/private Object[] value;
3.2; 还应该定义一个int类型成员变量,size大小,表示容器元素的个数。
也是定义为private权限 /** * size表示这个容器的大小 */ private int size;
3.3;一些常用类。
构造方法;就是创建对象的时候(new)的时候,此时两个成员变量的值应该为多少。/** * MyArrayList的构造方法, * 并含重载方法 */ public MyArrayList(){ this(16);//直接地调用自己的构造方法 } public MyArrayList(int capacity){ value = new Object[capacity]; }
返回容器元素的个数。
/** * 返回容器中对象的数目 * @return */ public int getLength(){ return size; }
往容器添加元素并且进行扩容
/** * 往容器里面添加对象 * 并且进行扩容方法。 * 并且进行赋值; * @param obj */ public void add(Object obj){ //备注不明白value的大小与size的区别。 value[size] = obj; size++; if(size >= value.length){ //进行扩容; Object[] newList = new Object[value.length*2+2]; for(int i = 0; i < value.length; i++){ newList[i] = value[i]; } value = newList; } }
返回相对应某个索引的对象;
/** * 返回该索引位置的对象; * 其中如果该索引没在容器范围内则返回异常; * @param index 索引也就是下标。 * * @return */ public Object get(int index){ if(index < 0 || index > size-1){ //如果没在范围内则返回异常; try { throw new Exception(); } catch (Exception e) { e.printStackTrace(); } } return value[index]; }
删除指定索引位置的元素(对象)
/** * 实现删除某个元素,最后返回对象本身 * @param index * @return MyArrayList */ public MyArrayList delet(int index){ if((index < 0) || (index >= size)){ try { throw new Exception(); } catch (Exception e) { e.printStackTrace(); } } Object[] newList = new Object[size+16]; for(int i=0,l=0; i
主方法,调用这些方法;
/** * main方法, * @param args */ public static void main(String[] args) { MyArrayList list = new MyArrayList(); list.add("qqweer"); list.add("pppppp"); list.add(new Human("zw")); list.add("qqweer"); list.add("pppppp"); Human h = (Human)list.get(2); System.out.println(h.getName()); list.delet(0);//不需要接受返回值,已经把value数组改好了 Human h1 = (Human)list.get(1); System.out.println(h1.getName()); }
关于容器就是只是简单的模拟了几个简单的功能。
4;怎么自己生产API文档。
4.1;关于文档注释; 4.1.1;文档注释,使得文档和程序同时出现在一个界面中,这样更加方便了我们查看代码了。 4.1.2;文档注释的一些内容关于文本注释的样式/** * */关于三,javadoc 标记javadoc 标记由"@"及其后所跟的标记类型和专用注释引用组成javadoc 标记有如下一些:@author 标明开发该类模块的作者 @version 标明该类模块的版本 @see 参考转向,也就是相关主题 @param 对方法中某参数的说明 @return 对方法返回值的说明 @exception 对方法可能抛出的异常进行说明 @author 作者名@version 版本号其中,@author 可以多次使用,以指明多个作者,生成的文档中每个作者之间使用逗号 (,) 隔开。@version 也可以使用多次,只有第一次有效使用 @param、@return 和 @exception 说明方法这三个标记都是只用于方法的。@param 描述方法的参数,@return 描述方法的返回值,@exception 描述方法可能抛出的异常。它们的句法如下:@param 参数名参数说明@return 返回值说明@exception 异常类名说明
4.2;项目完成后怎么生成API文档;
4.2.1;点击项目,单击右键,进入Export输出;进入java文件夹中的Javadoc文件。这样就是实现了API文档的生产,对于API的好处,就是可以方便以后查看。