Object是一个很特殊的类,他可以看成任何类的父类,所以他的所有默认方法都可以在任何类中被调用,也就是这次要讨论和强调的地方;
定义一个object类的数组,可以放置任何类型的数据,但是放置进去之后,数据类型将会被抛弃,所以取出时候仍然需要对其进行类型的转换。
两个比较常用的方法有:
toString()
equals()
紧接着而来就会出现问题,toString()默认返回的是对象的地址,如果想返回内容又该如何呢,看以下一段代码
public class ObjectToString {
public static void main(String[] args){
ToString ts = new
ToString();
ts.age=17;
ts.name="Mike";
ts.Sex="Male";
System.out.println(ts);
ts.SetName("Lisa");
ts.SetAge(18);
ts.SetSex("Female");
System.out.println(ts.toString());
}
}
class ToString{
String name;
int age;
String Sex;
public ToString(){
};
public ToString(String name,int age, String
Sex){
super();
this.name=name;
this.age=age;
this.Sex=Sex;
};
public void SetName(String Name){
this.name = Name;
}
public void SetAge(int Age){
this.age = Age;
}
public void SetSex(String Sex){
this.Sex = Sex;
}
public String
toString(){
return "Name:" + name
+"\nAge:"+age+"\nSex:"+Sex;
}
}
我们创建了新的ToString类,但是却完全没有让其继承任何东西,那是如何做到对toString()这一函数的重写呢,其实,toString()是object的默认方法,而我们定义的类全部继承了object()这一父类,所以我们不需要用extends就可以实现对其重写。
而不重写的时候system.out.println(ts)将返回的是这个对象的地址,当我们进行重写后,我们就能返回地址中包含的内容,这也就是为什么这个程序中
system.out.println(ts)
system.out.println(ts.toString())输出结果一样的原因