您的位置:首页 > 移动开发 > Objective-C

8月22日学习杂记

2006-08-25 09:29 225 查看
Collection:集合
每一个集合应该提供的方法,比如最常用的(CRUD:增加,查看,修改和删除),以及查看集合属性的一些方法:removeAll,container,size等一些常用的方法.

各种集合处理相同事件的方法可能有所不同,如果集合的类型为SET,则在集合中不可以擦入相同的值,如果集合的类型为LIST,则在集合内部存放的顺序是按先后顺序存放的

HASHSET:
每一个对象都有HASHCODE的方法,返回一个整型的HASHCODE值,用SET类型存储的时候并不是按哈希值来存储的,但是通过某些算法,和哈希值有关的.
对果两个对象相等,则HASHCODE必须相等,如果对象不相等,则HASHODE值也可能相等.

TREESET:
在存储的时候会对两个对象进行比较大小,在比较大小的时候会去调用一个比较器,在比较器比较大小的时候会传入一个策略对象(一个新的模式--策略模式),比较两个对象的大小可有两种方式来处理:
1.  可以让自己定义的这个类去继承COMPARATOR实现COMPARE这个抽象方法. 
2.  编写一个用于比较对象大小的类继承COMPARATOR类,同样这个类也要实现COMPARE这个抽象方法,抽象方法如下方法实现比较简洁:
 public int compare(Object obj1,Object obj2){
  Person p1 = (Person)obj1;
  Person p2 = (Person)obj2; 
  return p1.height>p2.height ? 1 : (p1.height == p2.height ? 0: -1);   //三目运算符? :的使用
 }

Bags的概念:存放的时候可以没有顺序,并且允许有重复的值
组合:尽量使用组合,避免继承

第一种设计模式:专家设计模式(第一天所讲内容)
第二种设计模式:模板方法设计模式(主要优点是实现代码的复用,缺点是景响了程序的可扩展性,如子类继承了父类,父类中有方法A,子类的B方                 法需要用到父类的A方法,可以直接调用,不用管其是如何实现的)
        例:AbstractSet的removeAll方法就是采用这种模式写的,removeAll方法直接调用remove方法去实现该功能
第三种设计模式:策略模式
               接受一个策略对象,然后根据这个对象的特有规则进行处理(按什么比较大小由策略对象来决定)

PROPERTY的优点:
可以方便程序的修改,再一个很重要的优点是可以对变量进行分类排放,增加代码的可读性
annotation注释
@Override写在第一行,说明下面的方法是要覆盖父类的相应方法(注意:@Override的首字母O一定要大写)

JAVA的泛型:
把一个集合规定放什么类型的对象 如:
1.HashSet<Student> hs = new HashSet<Student>; //定义一个HashSet,并且向这个HashSet中添加的对象必须是Student类型的
2.Iterator<Student> iter = hs.iterator();     //指定泛型,遍历器中的对象必须是Student类型的,这样,在从遍历器中取出的数据就不需                                                  要进行强制类型转换,而直接就是Student类型的
while(iter.hasNext()){
 Student st1=iter.next();
}

 

设计原则:
第一种原则:开闭原则,修改封闭,扩展开放

小规则:
一个测试类不需要成变量的时候不要定义成员变量, 这样给人比较烦索的感觉 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息