ssummeraw 2013-01-16 05:43 采纳率: 10%
浏览 2428
已采纳

对一个list中一个类的困扰

我参考的这个文档学习的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列表要加载到一个类吗?有谁知道这个类是调用什么函数呢?

  • 写回答

3条回答

  • Baby_Bonnie 2013-01-16 08:12
    关注
    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());
    
             }
         }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器