2 ssummeraw ssummeraw 于 2013.01.16 13:43 提问

对一个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
Baby_Bonnie   2013.01.16 16: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());

         }
     }
}
yuan8222
yuan8222   2013.01.22 14:32
private List<MyPoint> circles;//声明circles
circles = new ArrayList<MyPoint>();//初始化(在内存开辟一个单元)一个只能放MyPoint类的对象

这个代码声明了一个List类circles,这个类专门用来放MyPoint对象的.这个在的书里应该是讲到泛型这一章节.举个例子:

private List fruits;

这行代码声明了一个List类fruits,那么这个List里面你可以放apple类,banana类,orange类等等其他水果,或者其他的类,这个List就好比一个篮子,可以随便放,但是这样随便放就会带来很混乱的效果,于是java引入了泛型,规定了这个篮子只能放apple类,那么声明就如下所示:

private List<Apple> fruits;

这样,这个fruits类就只能添加Apple对象了.

你可以去参考下java api里面有关List这一小节的,里面讲的会让你知道List的用法的,List就是一个集合.

cytown
cytown   2013.01.16 16:47

这个circles是用来存储数据的,同样这个MyPoint也是用来存储数据的,这样控制wallpaper上面运行时创造的点的位置内容等信息。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
一个类在另一个类中以集合形式声明为属性时应该注意的问题
标题:一个类在另一个类中以集合形式声明为属性时应该注意的问题,先解释一下,看下面的代码吧 [Serializable] public class MO_T_sj_quest { public List AnswerList { get; set; } public List IDList { get; set; } p
如何在一个forEach循环中循环两个list
在一个forEach中同时循环两个list
读《费马大定理——一个困惑了世间智者358年的迷》
此书的内容是这样令人着迷 358年间,有多少超智之辈去努力解决这个问题。又是什么的样人,在前人的基础上提出的问题。 一个个人名。一个个身影,用生命,信念去努力。 数学迷人之处也随着问题崭现在我的面前。 本书不能说是数学发展的梳理,但围绕着费马大定理,也道出了些数字在这358年间 或更远的历史线上的发展轨迹。 值得一读,特别是与我类似对数学不够了解的外行。更值得读。 就当读传记类小说好
关于Hibernate中对集合类型的映射
Each interface has a matching implementationsupported by Hibernate, and it’s important that you use the right combination. 先说一个 @JoinColumn的问题。这个注解是用来说明关联列的信息的。按自然的做法是:多在Many端上描述这些信息,因为从DB表上来看
C#实例复制和深度复制
深度复制与浅表复制的区别在于,浅表复制只复制值类型的值,而对于实例所包含的对象依然指向原有实例。 [csharp] view plain copy class Program      {          [Serializable]          public class Car           {              pub
将一个类型的List转换为另一个类型的List
话不多说直接上代码: import com.google.common.base.Function; import com.google.common.collect.Lists; import org.checkerframework.checker.nullness.qual.Nullable; import java.util.ArrayList; import java.util.L...
学习中的困惑
已经很长时间没有进行更新了,感觉写不出来什么了。这些天一直在反思在学习过程中哪里出现了问题,第一点原因:浮躁。我一天要学习三四个小时,然而总是“看”而未注重“学”,看视频的时候没有做好笔记导致写博客的时候没有一手资料可参考。我分析我可能是太急于求成了,总想着一下子看完所有的视频从而成为高手,就像武侠小说中的人一样,我们总是能看见他们武功盖世,从不了解他们练功的辛苦。尤其是对于嵌入式行业的,这一行门栏
C++ 关于在一个类中定义另一个类的指针与对象
1.在一个类中定义另一个类的对象,则程序运行时该类的对象自动调用其构造函数初始化,然后其主类才调用构造函数初始化2.在一个类中定义另一个类的指针,需要在主类里面初始化指针,如 A* p=new A(),之后该指针可以调用其类的成员变量,仅限公有变量,若想访问私有变量,需要将指针设置成友元。
费马大定理―一个困惑了世间智者 358 年的谜
中文名: 费马大定理:一个困惑了世间智者358年的迷 作者: (英)西蒙·辛格 译者: 薛密 罗辑思维推荐书目
实现parcelable接口中list处理方法
实现parcelable接口中list处理方法。可以在activity中直接传递。