object类
1.1 在java中一切的类都是以继承的关系存在的,如果现在
定义了一个Person类 Class Person();
如果一个类在定义的时候没有明确的指明继承那个类,则会
默认继承Object类,也就是说以上类的定义格式:
class A extends Object
{
};
1.2 Object类中的主要方法
A:public Object()
B: public boolean equals(Object obj)
equals方法的主要功能是完成两个对象的比较,,
class Person
{
private String name;
private int age;
public Person(String name,int age){
this.name = name;
this.age = age;
}
public boolean equals(Object obj){
if(this==obj){//地址相等
return true; //肯定是同一个人
}
if(!(obj instanceof Person)){ //不是Person对
象
return false;
}
Person per = (Person)obj;//向下转型
if(per.name.equals(this.name)
&&per.age==this.age){
return true;
}
else {
return false;
}
}
public String toString(){
return "姓名:"+this.name+",年龄:"+this.age;
}
};
public class test03
{
public static void main(String args[]){
Person per1 = new Person("张三",45);
Person per2 = new Person("张三",45);
System.out.println(per1.equals(per2)?"是同一
个人":"不是同一个人");
}
}
class Person
{
private String name;
private int age;
public Person(String name,int age){
this.name = name;
this.age = age;
}
public boolean equals(Object obj){
if(this==obj){//地址相等
return true; //肯定是同一个人
}
if(!(obj instanceof Person)){ //不是Person对
象
return false;
}
Person per = (Person)obj;//向下转型
if(per.name.equals(this.name)
&&per.age==this.age){
return true;
}
else {
return false;
}
}
public String toString(){
return "姓名:"+this.name+",年龄:"+this.age;
}
};
public class test03
{
public static void main(String args[]){
Person per1 = new Person("张三",45);
Person per2 = new Person("张三",45);
System.out.println(per1.equals(per2)?"是同一
个人":"不是同一个人");
System.out.println(per1.equals("hello")?"是同
一个人":"不是同一个人");
}
}
C: public String toString()
对象打印时候调用
实例:
class Demo
{
};
public class test03
{
public static void main(String args[]){
Demo d = new Demo();
System.out.println("不加toString():"+d);
System.out.println("加toString():"+d.toString
());
}
}
结果:
F:\java>javac test03.java
F:\java>java test03
不加toString():Demo@1fb8ee3
加toString():Demo@1fb8ee3
从以上的代码看,加与不加tostring()完成的功能是一样
的,也就是证明了对象在打印的时候一定会调用toString(
)方法,是默认调用的。
class Person
{
private String name;
private int age;
public Person(String name,int age){
this.name = name;
this.age = age;
}
public String toString(){
return "姓名:"+this.name+",年龄:"+this.age;
}
};
public class test03
{
public static void main(String args[]){
Person per = new Person("张三",45);
System.out.println(per);
}
}
结果:
F:\java>javac test03.java
F:\java>java test03
姓名:张三,年龄:45
D: public int hashCode()
1.3
Object类是所有类的父类,则所有的对象都可以使用Object
类接受,但是Object不光可以接受对象,还可以接受任一的
引用数据类型。
使用Object接收接口实例
interface A
{
public String getInfo();
}
class B implements A
{
public String getInfo(){
return ("hello world");
}
}
public class test04
{
public static void main(String args[]){
A a = new B();//向上转型
Object obj = a;
A x = (A)obj;//向下转型
System.out.println(x.getInfo());
}
}