package com.zml;
import java.util.ArrayList;
/**
* Created by zml on 2018/8/24.
*/
public class Gerbil {
private int gerbilNumber;
public Gerbil(int gerbilNumber){
this.gerbilNumber = gerbilNumber;
}
public void hop(){
System.out.println("gerbilNumber :" + gerbilNumber);
}
public static void main(String[] args){
ArrayList<Gerbil> gerbils = new ArrayList<Gerbil>();
gerbils.add(new Gerbil(1));
gerbils.add(new Gerbil(2));
gerbils.add(new Gerbil(3));
for(Gerbil c : gerbils)
c.hop();
}
}
这是我自己写的答案,但是在网上有看到另一种有了构造函数还调用set()感觉很奇怪,如下:
public class Gerbil {
private int gerbilNumber;
public int getGerbilNumber() {
return gerbilNumber;
}
public void setGerbilNumber(int gerbilNumber){
this.gerbilNumber = gerbilNumber;
}
public Gerbil(int gerbilNumber) {
setGerbilNumber(gerbilNumber);
}
private void hop() {
System.out.println("gerbilnumber = " + gerbilNumber);
}
public static void main(String[] args) {
ArrayList gerbilList = new ArrayList ();
gerbilList.add(new Gerbil(1));
gerbilList.add(new Gerbil(3));
gerbilList.add(new Gerbil(5));
gerbilList.add(new Gerbil(7));
for (Gerbil gerbil : gerbilList) {
gerbil.hop();
}
}
}
总感觉不对,明明已经有了构造函数初始化,却还要在构造函数里调用set(),而且后面ArrayList也不对,没有用Gerbil的泛型,应该是这个作者写的有问题。
依照我自己写的吧。