【面向对象(高级)】_Object类笔记

来源:互联网 发布:php if判断语句 编辑:程序博客网 时间:2024/05/19 00:55

【面向对象(高级)】_Object类笔记

分类: Java
【面向对象(高级)】_Object类笔记

掌握Object类的作用
掌握Object类中toString(),equals()方法的作用
掌握Object接受引用数据类型的操作

在java中所有类都有一个公共的父类就是Object类,一个类只要没有明确的继承一个类,则肯定是Object类的子类,如下面两行代码表示含义都是一样的:
class Person extends Ojbect{}
class Person{}

Object类中的主要方法:
方法名称                类型    描述
public Object                构造    构造方法
public boolean equals(Object obj)    普通    对象比较
public int hashCode()            普通    取得Hash码
public String toString()        普通    对象打印时调用


实例一:
[java] view plaincopyprint?
  1. class Demo{};  
  2. public class ObjectDemo01{  
  3.     public static void main(String args[]){  
  4.         Demo d = new Demo();  
  5.         System.out.println("不加toString()输出:"+d);  
  6.         System.out.println("加上toString()输出:"+d.toString());  
  7.     }  
  8. }  



实例二:
[java] view plaincopyprint?
  1. class Person{  
  2.     private String name;  
  3.     private int age;  
  4.     public Person(String name,int age){  
  5.         this.name = name;  
  6.         this.age = age;  
  7.     }  
  8.     public String toString(){  
  9.         return "姓名:"+this.name+",年龄:"+this.age;  
  10.     }  
  11. }  
  12. public class ObjectDemo02{  
  13.     public static void main(String args[]){  
  14.         Person per = new Person("牛人",30);  
  15.         System.out.println("对象信息:"+per);  
  16.     }  
  17. }  


打印对象信息

equals()方法
equals()方法的主要功能是进行对象的比较操作。
String本身也是Object类的子类,所以已经覆写了此方法。

[java] view plaincopyprint?
  1. class Person{  
  2.     private String name;  
  3.     private int age;  
  4.     public Person(String name,int age){  
  5.         this.name = name;  
  6.         this.age = age;  
  7.     }  
  8.     public boolean equals(Object obj){  
  9.         if(this==obj){  
  10.             return true;  
  11.         }  
  12.         if(!(obj instanceof Person)){//不是person对象  
  13.             return false;  
  14.         }  
  15.         Person per = (Person)obj;  
  16.         if(per.name.equals(this.name)&&per.age==this.age){  
  17.             return true;  
  18.         }else{  
  19.             return false;  
  20.         }  
  21.       
  22.     }  
  23.     public String toString(){  
  24.         return "姓名:"+this.name+",年龄:"+this.age;  
  25.     }  
  26. }  
  27. public class ObjectDemo03{  
  28.     public static void main(String args[]){  
  29.         Person per1 = new Person("牛人",30);  
  30.         Person per2 = new Person("牛人",30);  
  31.         System.out.println(per1.equals(per2));  
  32.     }  
  33. }  



对象比较步骤:
1.是否直接相等this==obj;
2.是否是父类的实例使用instanceof判断。
3.先向下转型然后通过对象字段进行验证。

数组实际上也可以使用Object进行接收

[java] view plaincopyprint?
  1. public class ObjectDemo05{  
  2.     public static void main(String args[]){  
  3.         int temp[] = {1,3,5,7,9};  
  4.         Object obj = temp;  
  5.         print(obj);      
  6.     }  
  7.     public static void print(Object obj){  
  8.         if(obj instanceof int[]){  
  9.             int x[] = (int[])obj;  
  10.             for(int i=0;i<x.length;i++){  
  11.                 System.out.println(x[i]);  
  12.             }  
  13.         }      
  14.     }  
  15. }  




总结:
1.Object类是所有类的父类,只要是引用数据类型都可以使用Object进行接收
2.对象在进行向下转型之前一定要先发生向上转型,要使用instanceof关键字判断
3.toString(),对象打印时调用
4.equals():对象比较时调用。
5.String类也是Object的子类。
0 0
原创粉丝点击