JAVA中的Object类
来源:互联网 发布:正交矩阵和实对称矩阵 编辑:程序博客网 时间:2024/03/28 17:11
1、Java中所有的类都直接或间接的继承了Object类,常见的class 类名{……}都默认继承了Object类,所以所有的类都可以根据对象多态性向上转化为Object 对象 = new 类名();实际上不仅是类,所有的引用类型的对象都可以用Object接收,如下用Object类接收一个接口的代码:
public class ObjectDemo {//如果接口能用Object接收,应该打印三遍“Person打印”
public static void main(String args[]){
National na = new Cat();
na.print();
Object ob = na;
na.print();
National ona = (National)ob;
ona.print();
}
}
interface National{
public void print();
}
class Cat extends Object implements National{
public void print(){
System.out.println("Person打印");
}
}
程序的执行结果如下:
值得注意的是,数组也是引用数据类型,Object也能接收数组,代码如下:
public class ObjectDemo {//如果数组能用Object接收,应该打印“1,2,3,4,5,6,”
public static void main(String args[]){
int i[] = {1,2,3,4,5,6};
Object o = i;
int x[] = (int[])o;
for(int j = 0 ;j<x.length;j++)
System.out.print(x[j]+",");
}
}
执行结果如下:
2、Object类有三种重要的方法toString()、equals()、hashCode()
(1)toString():常在打印是调用该方法,类需要重写此方法,正常打印情况如下:
public class ObjectDemo {
public static void main(String args[]){
Cat cat = new Cat("阿欢",2);
System.out.print(cat.toString());
}
}
class Cat{
private String name;
private int old;
public Cat(String name,int old){
this.name = name;
this.old = old;
}
public String toString(){
return "姓名:"+this.name+",年龄:"+this.old;
}
}
代码执行的结果为:
如果此类没有重写toString方法,打印结果如下:
相当于打印new Cat(),由此看出toString实际是要打印对象信息。
(2)、equals():在对象比较时调用,类中需要重写equals()方法,代码如下:
public class ObjectDemo {//如果数组能用Object接收,应该打印“1,2,3,4,5,6,”
public static void main(String args[]){
Cat cat = new Cat("阿欢",2);
System.out.println(cat.equals("asc"));
System.out.println(cat.equals(cat));
System.out.println(cat.equals(new Cat("阿欢",2)));
}
}
class Cat{
private String name;
private int old;
public Cat(String name,int old){
this.name = name;
this.old = old;
}
public boolean equals(Object j){
if(this == j) //判断是否是同一个类
return true;
if(!(j instanceof Cat))//不是同一类型
return false;
Cat c = (Cat)j;
if(this.name.equals(c.name)&&this.old == c.old)
return true;
else
return false;
}
}
代码的执行结果如下:
(3)hashcode()方法暂时不作介绍
本文的内容参考了魔乐科技的JAVA教程。
- Java中的Object类
- java中的object类
- Java中的Object类
- Java中的Object类
- java中的object类
- java中的Object类
- Java中的Object类
- java中的Object类
- Java中的Object类
- Java中的Object类
- Java中的Object类
- java中的object类
- JAVA中的Object类
- java中的Object类
- Java中的 Object类
- Java中的Object类
- Java Object类中的方法
- Java中的Object类介绍
- C++10
- 1548-Cannot load from mysql.proc. The table is probably corrupted
- HDU 1181 DFS
- poj 1287 Networking(最小生成树)
- 银行家算法
- JAVA中的Object类
- Minecraft题解
- 个人笔记 html 06 获取验证码之后倒计时功能
- 内联函数详解(未完成)
- 浏览器cannot read property 'msie' of undefined的解决方法
- [LeetCode]159. Longest Substring with At Most Two Distinct Characters
- 图解正向代理、反向代理、透明代理
- 蓝桥杯 历届试题 蚂蚁感冒 (模拟)
- [LeetCode]160. Intersection of Two Linked Lists