天王盖地虎,玉帝怕王母-------关于集合的那点事
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类型的变量来接收,所以这里就需要用到了强转,我也是看着很别扭,也觉得这样用集合来做非常非常的麻烦,但是还是觉得集合的好处大于坏处吧,
行了,先写到这里了,我在继续看会视频去
浙公网安备 33010602011771号