我參考的這個文檔學習的livewallpaper。這裡我有一些地方不太明白。
教程中的示例代碼中有個MyPoint類
public class MyPoint {
String text;
private int x;
private int y;
public MyPoint(String text, int x, int y) {
this.text = text;
this.x = x;
this.y = y;
}
}
然後又創建了一個MyWallpaperService類。這個類裡面有一個像這樣的代碼行
private List<MyPoint> circles;
private Paint paint = new Paint();
private int width;
int height;
private boolean visible = true;
private int maxNumber;
private boolean touchEnabled;
public MyWallpaperEngine() {
SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(MyWallpaperService.this);
maxNumber = Integer
.valueOf(prefs.getString("numberOfCircles", "4"));
touchEnabled = prefs.getBoolean("touch", false);
circles = new ArrayList<MyPoint>();
paint.setAntiAlias(true);
paint.setColor(Color.WHITE);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeJoin(Paint.Join.ROUND);
paint.setStrokeWidth(10f);
handler.post(drawRunner);
}
代碼的部分還有這麼一句
private List<MyPoint> circles;
這就是我不明白的地方。List會在circles傳遞什麼?這個list列表要加載到一個類嗎?有誰知道這個類是調用什麼函數呢?
private List<MyPoint> circles;
申明 circles 是一個 MyPoint 類型的列表。
circles = new ArrayList<MyPoint>();
上面這一行把 MyPoint 類型的 ArrayList 對象分配給 List 類型中的 Reference 對象變量。
這被稱為 Interface Polymorphism。
List是一個接口,作為 ArrayList 一個具體的類,來實現列表。
public class Dog{
private String dName;
priavet int dAge;
public Dog(String dName, String dAge){
this.dName = dName;
this.dAge = dAge;
}
public String getDName(){
return this.dName;
}
public String getDName(){
return this.dAge;
}
}
public class Test{
public static void main(String[] args){
List<Dog> dAList = new ArrayList<Dog>();
dAList.add(new Dog("Tommy",5));
dAList.add(new Dog("Stark",2));
for(Dog d : dAList){ // Iterating over the List of Dog objects
System.out.println(d.getDName());
System.out.println(d.getDAge());
}
}
}