关于String类

关于String类

String str1=new String("Hello");
System.out.println(str1);	

1、老师,String类是Object的子类吗?

2、toString是Object父类中的方法,所以子类String可以通过继承直接调用toString方法,对不对?

3、但是重写toString方法,是在Animal中重写的,也没在String方法中重写,

    为啥运行结果是Hello,而不是类型信息+@+地址信息?

4、就算String方法重写了toString方法,为啥结果就是Hello???

String方法至少也应该有一个像下面的方法吧!

public String toString() {

return  "";

}


正在回答

登陆购买课程后可参与讨论,去登陆

3回答

同学你好,this是指代当前对象。

当前对象就是String类型的字符串,这里直接返回字符串对象本身即可,不用再去调用它的属性了呢~

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~


  • 慕移动ttong 提问者 #1
    public int getMonth() { return month; } 假如把这个gettMonth()改成 public int getMonth() { return this; } 那是不是也返回它本身,并且返回值是int类型?
    2019-06-19 17:01:35
吃吃吃鱼的猫 2019-06-19 17:58:21

同学你好,不是的哦~

toString方法返回值this:表示返回String类的对象(字符串本身),是因为toString方法存在于String类中。String类的对象本身就是表示字符串。

同学所说的getMonth()方法,如果返回this,返回的是该方法所在类的对象。不是int类型哦~

public int getMonth() { return month; }

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

吃吃吃鱼的猫 2019-06-19 15:55:24

同学你好,

1、是的,String类是Object的子类。

2、理解正确。

3、在java中,设计String类时,已经重写了toString方法。

源码如下图所示,重写后,返回字符串本身的值。所以,会输出Hello。

http://img1.sycdn.imooc.com//climg/5d09e9b50001729705400200.jpg

4、如上图所示。

 如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 慕移动ttong #1
    this不是代表当前对象吗? 为什么不写this.get**来表示某个string类型的值
    2019-06-19 16:04:00
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师