我正在研究site中的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<MyPoint>
会在圈子中传递什么?谁知道怎么称呼这个?这个列表是否属于一个类?因为我不确定我的头衔。谢谢..
答案 0 :(得分:3)
private List<MyPoint> circles;
说明圈子是List
类型MyPoint
,(即它将包含 MyPoint类型的对象)。
circles = new ArrayList<MyPoint>();
现在在上面的行中,您将MyPoint类型的ArrayList对象分配给List类型的Object Reference变量。
这称为界面多态性。
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());
}
}
}
答案 1 :(得分:1)
创建一个对象列表。 MyPoint类型对象的列表 你的案例中的MyPoints指的是圆圈的(x,y)坐标(正如你所提到的)
答案 2 :(得分:1)
List<MyPoint>
对象,顾名思义,是一个MyPoint
个实例列表,根据代码判断,代表您圈子的中心。 private
标识符仅表示无法从定义它的类外部访问它。