发表于: 2017-12-13 21:48:27

0 539


一.今日完成

1.梳理Object类和Class类常用API

5.2.Object是Java中所有类的父类

Java中每个类都是由Object扩展而来,可以使用Objectle类型的变量引用任何类型的对象:

Object obj =  new Employee("Harry Hacker", 35000);

Object类型的变量只能用于作为各种值的通用持有者,要相对其中的内容进行具体的操作,还需要清楚对象的原始类型,并进行相应的类型转换.

Employee e = (Employee) obj;

Java,只有基本类型(primitive types)不是对象,例如数值,字符和布尔类型等.所有的数组类型,不管是对象数组还是基本类型的数组都扩展于Object.

5.2.1 equals方法

1.特性

自反性

对称性

传递性

一致性

API  java.util.Arrays 1.2

static Boolean equals(type[ ] a, type[ ] b)

如果两个数组长度相等,并且在对应位置上数据元素也均相等,将返回true.数组的元素类型可以是Object,int,long,short,char,byte,boolean,floatdouble

API java.util.Objects 7

static boolean equals(Object a, Object b)

如果ab都为null,返回true;如果只有其中之一为mull,则返回flase;否则返回a.equals(b).

 

5.2.2 hashCode方法

散列码 hash code是由对象导出的一个整型值.

每个对象都有一个默认的散列码,其值为对象的存储地址.

API   java.lang.Object

int hashCode()

返回对象的散列码.散列码可以是任意的整数,包括正负,两个相等的对象要求返回相等的散列码.

int hash(Object…..object)

返回一个散列码,由提供的所有对象的散列码组合得到

static int hsahCode(Object a)

如果anull返回0,否则返回a.hashCode().

 

API java.Arrays

static int hashCode(type[] a)

计算数a的散列值,组成这个数组的元素类型可以是Object,int,long,short,char,byte,boolean,floatdouble

 

5.2.2 toString方法

它用于返回表示对象值的字符串.绝大多数toString方法遵循如下格式:

publicStringtoString(){

return"User{"+

"id="+id+

",username='"+username+'\''+

",passwd='"+passwd+'\''+

",tel='"+tel+'\''+

",email='"+email+'\''+

",login_at="+login_at+

",create_at="+create_at+

'}';

}

最好通过调用getClass().getName()获得类名的字符串,而不要将类名硬加到toString方法中.

publicStringtoString(){

return  getClass().getName()+"{"+

"id="+id+

",username='"+username+'\''+

",passwd='"+passwd+'\''+

",tel='"+tel+'\''+

",email='"+email+'\''+

",login_at="+login_at+

",create_at="+create_at+

'}';

}

如果超类使用了getClass().getName(),那么子类只要调用super.toString()就可以了.

随处可见toString方法的主要原因是:只要对象与一个字符串通过操作符"+"连接起来,Java编译就会自动调用toString方法,以便获得这个对象的字符串描述.

强烈建议为每一个自定义的类增加一个toString方法.

 

Class getClass()

返回包含对象信息的类对象.

boolean equals(Object otherObject)

比较两个对象是否相等,如果两个对象指向同一块存储区域,方法返回true;否则方法返回flase

String toString()

返回描述该对象值的字符串

 

String getName()

返回这个类的名字

Class getSuperclass()

Class对象的形式返回这个类的超类信息

 

5.7.1Class

在程序运行期间,Java运行时系统自始至终为所有对象维护一个被称为运行时的类型标识.这个信息跟踪着每个对象所属的类.虚拟机利用运行时类型信息选择相应的方法执行.


2.写文学部文章列表页前台接口.

 

二.明日计划

写文学部文章详情页前台接口.


三.遇到问题

暂无.


四.收获

以上.







返回列表 返回列表
评论

    分享到