今天学习java容器这一章内容,先有如下疑问:
1、String类中对toString()方法实现的原理是什么,为什么可以直接由System.out.println(对象名)打印出来?
2、String类定义的对象所具有的属性有哪些?Object定义的对象又具有哪些属性?
3、Object o = new String("Hello!!!");
System.out.println(o);
这个“Hello”是怎么自动转化为Object对象的??也就是说为什么可以这样赋值?希望各位同学来帮下忙,网上查不到,多谢大家了!!!
1、String类中对toString()方法实现的原理是什么,为什么可以直接由System.out.println(对象名)打印出来?
2、String类定义的对象所具有的属性有哪些?Object定义的对象又具有哪些属性?
3、Object o = new String("Hello!!!");
System.out.println(o);
这个“Hello”是怎么自动转化为Object对象的??也就是说为什么可以这样赋值?希望各位同学来帮下忙,网上查不到,多谢大家了!!!
可以在网上找下java对象类型
举个例子吧
一个动物跟一个老鼠
动物只有 “名称”这个属性
老鼠除了有“名称”还有“颜色”属性老鼠继承于动物动物 a = new 老鼠()
就是说 老鼠是动物的一种,我们把老鼠可以叫做老鼠也可以叫做动物
当使用a时只能使用动物的属性
println(Object)
它是会去调用Object的toString方法的,在valueof中使用了。public void println(Object x) {
String s = String.valueOf(x);
synchronized(this) {
print(s);
newLine();
}
}
String类中对toString()方法的实现其实是重写了父类Object的toString()方法,而System.out.println()参数类型支持Object,及其子类String和原始类型int,long,double等
2、String类定义的对象所具有的属性有哪些?Object定义的对象又具有哪些属性?
可以看看jdk 源码,对照一下
3、Object o = new String("Hello!!!"); System.out.println(o); 这个“Hello”是怎么自动转化为Object对象的??也就是说为什么可以这样赋值?
如源码:public final class Stringextends Objectimplements Serializable, Comparable<String>, CharSequenceString 类也是Object类型 ,我设一个比喻吧Object 是中国,String 是北京,你可以说中国包含北京,北京属于中国,反过来能说北京包含中国,中国属于北京吗?父类抽象,子类具体。
汗,本人语言组织能力有限,真不知道该肿么解释。就这样了,希望对你有点帮助
return getClass().getName() + "@" + Integer.toHexString(hashCode());
},String类有自己的toString方法,返回自己。
正解……………… 你查看JDK就知道哦……