在列表新手混淆上引用一个类

时间:2012-08-29 02:46:23

标签: java android

我正在研究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>会在圈子中传递什么?谁知道怎么称呼这个?这个列表是否属于一个类?因为我不确定我的头衔。谢谢..

3 个答案:

答案 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标识符仅表示无法从定义它的类外部访问它。