代码改变世界

天王盖地虎,玉帝怕王母-------关于集合的那点事

2017-07-13 17:18  梵糕  阅读(216)  评论(0)    收藏  举报

首先,回忆了下集合的概念以及应用吧,作为一个新手,现在掌握的也不是太顺利,只是看着视频敲一敲代码,

今天把视频上的练习敲了一个,给我的学弟们分享一小下,知道自己写的不好,就凑合看吧

这个例子就是关于狗狗的类,有狗的品种,名字,健康值,以及亲密度的,比较简单的小例子

首先定义一个父类Pet类,在类的里面创建几个私有的变量,以及这个父类本身的两个方法,为无参和代参的构造方法(我也不知道为啥要用,视频就这么说的)

private String name;
    private int jiankang;
    private int love;//亲密度
    public Pet() {
        
    }
    public Pet(String name,int jiankang,int love){
        this.name=name;
        this.jiankang=jiankang;
        this.love=love;
    }

然后呢,就把这个类封装一下,也就是他的get以及set方法,

public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getJiankang() {
        return jiankang;
    }
    public void setJiankang(int jiankang) {
        this.jiankang = jiankang;
    }
    public int getLove() {
        return love;
    }
    public void setLove(int love) {
        this.love = love;
    }

这个get以及set方法是有快捷键的,ALT+SHIFT+S,  然后在点R键,全选,在生成,就把所有变量都生成get,set方法了

再然后在父类的最下面定义一个类,里面不要有方法体,也是无参的,这样子是为了让子类重写父类的方法体

public abstract void print(); 
    
}

然后我们再去创建一个Dog类,这个类要继承Pet类。我在这个类中添加了一个私有的属性,然后在调用这个类的本身,有一个无参和代参方法,无参方法就放在那里就可以,代参方法呢,就是把父类的属性添加到里面

private String stain;//品种

    public String getStain() {
        return stain;
    }
    public void setStain(String stain) {
        this.stain = stain;
    }
    
    public Dog() {
        
    }
    public Dog(String name,int jiankang,int love,String stain){
        super(name,jiankang,love);
        this.stain=stain;

    }

这样的话Dog类就完美的继承了父类,然后我们在重写一下父类的方法,把这个属性都带进去,因为咱们定义的属性都是私有的,所以调用的时候也不能直接调用,只能调用他的get方法

public void print() {
    //因为name以及love都是私有的,所以必须要用getName来接受
        System.out.println("昵称为:"+getName()+"\t健康值为:"+getJiankang()+
                "\t亲密度为:"+getLove()+"\t品种为:"+getStain());
        
    }

OK,现在都弄完了,咱们去创建一个测试类,然后把属性都赋值,然后在调用操作

我们在测试类中的main方法内来吧这些属性都赋值

Dog dog=new Dog("兰兰", 100, 90, "拉布拉多");
        Dog dog1=new Dog("楠楠", 90, 87, "泰迪");
        Dog dog2=new Dog("西西", 80, 88, "二哈");
        Dog dog3=new Dog("多多", 70, 86, "金毛");

然后呢我们把元素都添加进去,我用的是视频上的教学

//添加操作
        List p1=new ArrayList();
        p1.add(dog);
        p1.add(dog1);
        p1.add(dog2);
        p1.add(dog3);

我觉得ArrayList是最简单的集合方法把,然后用List来接受,因为List方法内部有很多的方法可以调用

List:集合
add():添加元素 boolean
remove():删除元素 boolean
set():修改元素
get():获取的是集合中的单个元素 object
contains():判断该集合中是够是否存在这样的一个元素,返回之为 boolean

然后我是用for循环来挨个去打印信息

for (int i = 0; i <p1.size(); i++) {
            //用get方法来获得集合中的索引号
            Object obj=p1.get(i);//Object类型--》Dog类型 是拆箱 
            Dog dogs=(Dog)obj;
            dogs.print();

可能有人觉得为什么需要强转(Dog)类把,我刚看到的时候我也有些蒙圈,主要来说呢,就是obj  是Object类型的,而我们需要的是Dog类型的变量来接收,所以这里就需要用到了强转,我也是看着很别扭,也觉得这样用集合来做非常非常的麻烦,但是还是觉得集合的好处大于坏处吧,

行了,先写到这里了,我在继续看会视频去