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

day58(5.8)object,clone(复制对象),arrlist

2014-05-12 17:25 106 查看
java.lang.object中Class getClass()l:返回包含对象信息类对象,java提供了类运行时的描述,它的内容被封装在Class类中,

boolean equal(Object otherObject)比较两个对象是否相等,如果两个对象指向同一块区域,方法返回true,否则方法返回false,

String toString():返回描述该对象值的字符串

Object clone():创建副本的作用是创建一个对象的副本,java运行时系统将为实例分配存储空间,并将当前的对象复制到这个存储区域中。

复制对象是非常重要的,要拷贝一个变量时,表示原始变量和拷贝变量都引用同一个变量,改变一个变量所引用的对象将会对另一个变量产生影响,而拷贝一个对象,用clone,新对象和原来状态的样,但之后可以各自用各自的状态。Empoyee copy=original.clone();

copy.raiseSalary(10);

clone是object类的一个proteced方法,也就是说,在用户编写的代码中不能直接调用它。默认的克隆是浅拷贝。

String getName():返回该类的名字

Class getSuperclass()以class对象的形式返回该类的超类信息。

在java中允许运行时确定数组的大小,如:int actualSize=...;

Employee[] staff=new Employee[actualSize];

解决运行时动态更改动态数组问题要用到ArrayList的为。在添加和删除元素的时候,有自动调节的功能,而不需要为此编写
ArrList是一个采用类型参数(type parameter)的泛型类(generic class) 为了指定数组列表保存的元素对象类型,需要用一对尖括号将类名括起来加在后面如:ArrList <Employee>,add方法可以将元素添加到数组列表中。staff.add(new Employee("Harry Hacker",...));
staff.add(new Employee("Tony Tester",...));
(PS:有一个疑问,难道用add方法时,不是已经有的可以直接用的,而是需要自己写一个add方法么。今天用list.add(i)需要自己进行写一个add的方法,那add,不是默认存在的方法么。)
数组列表管理着对象引用一个内部数组,如果调用add且内部数组已经满了,数组列表就将自动地创建一个大的数组,并将所有的对象从较小的数组中拷贝到较大的数组中。如果已经清楚或能够估计出可能存储的元素数量,就可以在填充数组之前调用ensureCapacity方法,如果数组很大的时候,可以使用这个方法,作用是预先设置ArrayList的大小,这样大大提高了初始化速度。
构造,初始化,保存一个Employee的方法是:staff.ensureCapacity(100);
new Employee[100];
前者的写是分配不公分配数组列表,后者是分配空间,分配数组列表与为新数组分配空间两个存在区别,如果为数组分配100个元素的存储空间,那么数组就有100个空位置可以使用,而容量为100的数组列表只是扼腕有保存100个元素的潜力。(实际上重要分配空间话,将会超过100)
Size:是返回数组列表包含的实际的元素数目,如:staff.size();将返回staff数组列表的当前元素。它等价于数组的a.length。
trimToSize:将存储区域的大小调整为当前元素数量所需要的存储空间数目,垃圾回收将回怍收多余的存储空间。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: