Object常用的方法

Object类:是所有Java类的祖先。每个类都是用Object作为超类。所有对象(包括数组)都实现这个类的方法

1.getClass()方法:返回一个对象实例的运行期类型


               AddressBook ab=new AddressBook();
		Class zclass=ab.getClass();//获取该对象的class对象
		System.out.println(zclass);


//获取该对象的属性
		try {
			zclass=Class.forName("addressbook.Person");
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		try {
			Person p=(Person)zclass.newInstance();
		} catch (InstantiationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		Field[] fs=zclass.getDeclaredFields();
		for(Field f:fs){
			System.out.println(f.getName());
		}

2.hashCode()方法

返回对象实例的hash码,即内存地址的一种表现。

对象实例后hash码固定,不会因对象属性改变而改变。再次执行程序,hash码不要求和之前一样。如equals方法返回true,hash码也应一致。开发者应尽量做到为不是equals的对象,产生不同hash码

3.equals()方法

指出其他对象是否和当前对象相等。

说一下”==“和”equals”之间的区别?
      1、如果比较的是基本数据类型,使用==进行比较,比较的是值
      2、如果比较的是引用类型,”==”比较的是引用的内存地址,
            equals本身是要比较的对象值,但是object类中Equals方法的实现是比较的地址,     
            所以如果要比较引用的值是否相等,此时要重写equals方法事实上进行比较对象           
            的值

int num1 = 123;
int num2 = 134;

/*if(num1 == num2){
System.out.println("相等");
}else {
System.out.println("不相等");
}*/

Student stu1 = new Student("jim",23);
Student stu2 = new Student("jim",23);

if(stu1.equals(stu2)){
System.out.println("相等");
}else {
System.out.println("不相等");
}


String s1 = new String("a");
String s2 = new String("a");

//s1 == s2

if(s1.equals(s2)){
System.out.println("相等");
}else {
System.out.println("不");
}

4.tostring()方法

System.out.println()方法,打印对象信息,
其实就是调用对象继承到的toString()方法。

所有类都会直接或者间接继承于Object类,都会拥有toString()方法。
而Object类中的toString()方法只是返回类的全限定名和内存地址码。
可以重写toString()方法,来实现自己需要的打印信息。

5.clone()方法


* 如果想对象一个对象进行克隆,此类必须实现Cloneable接口,
* 在每一个类中重写clone方法,把重的克隆方法的权限改成 public

* 克隆--》复制,
* 浅克隆--》除了克隆对象之外,会把属性给复制一份(基本数据类型)
* 深克隆--》在复制对象时,会把所有属性(包括引用类型的属性)都复制一份

* 另外一种复制对象:序列化

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值