object类

Object类的基本定义

Ø  Object类是所有类的父类,也就是说任何一个类在定义的时候如果没有明确的继承一个父类的话,那么它就是Object类的子类,也就是说以下两种类定义的最终效果是完全相同的:

class Book {

}

等价于

class Book extendsObject {

}

 

Object类是所有类的父类,最大的好处在于利用object类可以接收所有类的对象,因为可以向上自动转型。

 

利用Object类来接收对象

class Book extends Object {
}
public class TestDemo {
	public static void main(String args[]) {
		Object obja = new Book(); // 向上转型,接收Book子类对象
		Object objb = "hello"; 	// 向上转型,接收String子类对象
		Book b = (Book) obja;		// 测试向下转型
		String s = (String) objb;	// 测试向下转型
	}
}

执行没有错误,所以在不确定参数类型的时候,使用object类型会是很好的选择

 

Object类的部分方法

取得对象信息:toString()

class Book  extends object{		// 此类为Object子类
	private String title;
	private double price;
	public Book(String title, double price) {
		this.title = title;
		this.price = price;
	}
	public String toString() { 		// 替代了getInfo(),并且toString()可以自动调用
		return "书名:" + this.title + ",价格:" + this.price;
	}// setter、getter、无参构造略
}
public class TestDemo {
	public static void main(String args[]) {
		Book b = new Book("Java开发", 79.9);	// 实例化对象
		System.out.println(b);	// 直接输出对象,默认调用toString()
	}
}

程序执行结果:

书名:Java开发,价格:79.9

实现对象比较

public boolean equals(Object obj) {
		if (this == obj) { 		// 地址相同
			return true;
		}
		if (obj == null) {			// 对象内容为null
			return false;
		}
		if (!(obj instanceof Book)) { 	// 不是本类实例
			return false;
		}
		Book book = (Book) obj;
		if (this.title.equals(book.title) && this.price == book.price) {
			return true;
		}
		return false;
	}


Object类与引用数据类型

Ø  Object是所有类的父类,那么Object类可以接收所有类的对象,但是在Java设计的时候,考虑到引用数据类型的特殊性,所以Object类实际上是可以接收所有引用数据类型的数据,这就包括了数组、接口、类。

 

接收数组数据

public class TestDemo {
	public static void main(String args[]) {
		Object obj = new int[] { 1, 2, 3 }; // 向上转型
		System.out.println(obj); 	// 数组编码:[I@1db9742
		if (obj instanceof int[]) { // 谁否是int数组
			int data[] = (int[]) obj; // 向下转型
			for (int x = 0; x < data.length; x++) {	
				System.out.print(data[x] + "、");
			}
		}
	}
}

程序执行结果:

[I@1db9742(“System.out.println(obj);”语句执行结果)

1、2、3、

 

Object类接收接口对象

interface A {
	public void fun();
}
class B extends Object implements A {	// 所有类一定继承Object类,所以此处只是强调说明
	public void fun() {
		System.out.println("ww");
	}
	public String toString() {
		return "aa" ;
	}
}
public class TestDemo {
	public static void main(String args[]) {
		A a = new B(); 				// 实例化接口对象
		Object obj = a; 				// 接收接口对象
		A t = (A) obj; 				// 向下转型
		t.fun();			// 调用接口方法
		System.out.println(t);		// 直接调用toString()输出
	}

程序执行结果:

ww(“t.fun();”语句执行结果)

aa(“System.out.println(t);”语句执行结果)








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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值