Java容器底层的简单模拟以及API文档的生成

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<value.length;i++){
            if(i != index){
                newList[l] = value[i];
                l++;
            }
        }
        value = newList;

        return this;
    }

主方法,调用这些方法;

    /**
     * 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的好处,就是可以方便以后查看。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值