欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Object

程序员文章站 2022-04-04 23:21:55
...

Object

在JAVA中所有的类都是Object的直接子类或间接子类
一切皆为对象: Object
所有类的对象都可以声明成Object引用
Object obj = new Student();Object obj = new Person();

1. equals方法的作用

== 和 equals的区别

在 Object类中equals() 默认的实现 this == obj
== 用于判断对象在内存中的位置

但是在String类,包装类中,equals方法已经被重写了,改变了原有的实现方式。变成了比较内容了

Object

如果自定义的类想要把equals方法实现为比较内容需要重写

public class Computer {
	private String name;
	private String address;   
	@Override
	public boolean equals(Object obj) {
		if(this == obj)
			return true;
		if(obj instanceof Computer){
			Computer c = (Computer)obj;  //向下转型
			//有可能报控制正异常
			if(c.name.equals(this.name) && c.address.equals(this.address))
				return true;
			return false;
		}
		return false;
	}}

2. getClass方法的作用

可以获取当前对象所在类的所有信息, 一般在框架的反射部分会使用的

Computer computer1 = null;
		computer1 =new Computer("联想");
		System.out.println( computer1.getClass());

class com.xja.demo.Computer

获取当前对象的类型

3. hashCode方法的作用

Java中的hashCode方法就是根据一定的规则将与对象相关的信息(比如对象的存储地址,对象的字段等)映射成一个数值,这个数值称作为散列值。
哈希码本身来说就是一种为了提高查找效率的一种算法,例如:HashSet、HashMa以及HashTable

同一个对象的hashcode一定相同,不同的对象可能会生成相同的hashcode值。
不能根据hashcode值判断对象是否相等,但可以两个对象不等,如果两个对象的hashcode值不等,则必定是两个不同的对象。

4. toString() 返回当前对象的字符串形式

类型@hashCode
当输出单个对象的时候默认要调用toString()方法

Computer computer2 = null;
		computer2 =new Computer("联想");
		computer2.setAddress("河北张家口");
		System.out.println("默认调用的是:"+computer2);
		System.out.println("默认调用的是 :"+computer2.toString()); 

可以通过重写 toString方法,实现对象属性的打印

@Override
	public String toString() {
		return "Computer [name=" + name + ", address=" + address + "]";
	}

		Computer computer2 = null;
		computer2 =new Computer("联想");
		computer2.setAddress("河北张家口");
		System.out.println("默认调用的是:"+computer2);
		System.out.println("默认调用的是 :"+computer2.toString()); 

默认调用的是toString :Computer [name=联想, address=河北张家口]
默认调用的是 :Computer [name=联想, address=河北张家口]


5. Wait() 线程等待

6. notify() 唤醒指定的线程对象

7. finalize() 回收对象的方法

当一个对象不再被任何引用指向的时候,这个对象就是一个垃圾对象,该对象所占的空间就会被收回

Computer computer1 = null;
		//创建了第一个对象
		computer1 =new Computer("联想"); 
		Computer computer2 = null;
		//创建了第二个对象
		computer2 =new Computer("华为");
		//把第二个引用的值赋予第一个引用
		computer1 = computer2;
		//这时候连个引用都指向了第二个对象,第一个对象就是没有被引用的对象就会被收回

8. 包装类8个基本数据类型对应的类

在java中一切皆为对象, (8个基本数据类型就不是对象)
Object

9. 包装类和字符串之间的相互转换

//把字符串装换成包装类  “abc”
		String numstr="123";
		Integer numObj = new Integer(numstr);
		Integer numObj2 = Integer.getInteger(numstr);
		Integer numObj3 = Integer.valueOf(numstr);
		//把包装类转换成字符串
		String numstr2 = numObj.toString();

10. 基本数据类型和字符串之间的相互转换

//把基本数据类型转换成字符串
		int num = 123;
		String numstr3 = num+"";
		String numstr4 = String.valueOf(num);
		//把字符串转换成基本数据类型
		int num2 = Integer.parseInt(numstr3);

11. 基本数据类型和包装类之间的转换

装箱: 把基本数据类型的值直接赋予包装类的对象
Int num = 22;
Integer numobj = num; //装箱
拆箱:把包装类的对象直接赋值给基本数据类型的变量
Integer numobj = new Integer(45);
Int num = numobj; //拆箱

//基本数据类型和包装类之间的互相转换(装箱和拆箱)
		int num3 = 20;
		Integer numobj = num3;  //装箱
		int num4 = numobj;  //拆箱

Object

12. Object和 数据类型直接的转换

        int num5 = 20;
		Object a = num5;   //装箱和向上转型两件事(Integer num = num5;  Object a = num;)
		int nums = (int)a;

相关标签: object