黑马程序员技术交流社区

标题: 关于构造器问题 [打印本页]

作者: 河边捉虾米    时间: 2016-9-11 18:32
标题: 关于构造器问题
  在子类继承父类时候,子类构造器是
  public Student(String name){
  super(name);
  }
父类构造器是
public Person(String name){
  }
  在测试类中
  Student s=new Student("小米");

请问super(name)中,是把小米这个字符串传递给name了,还是把"小米"所在堆中地址传给name了??
  请大家谈谈自己的理解?一起交流
作者: vae520283995    时间: 2016-9-11 18:35
这个不清楚
作者: 河边捉虾米    时间: 2016-9-11 18:41
vae520283995 发表于 2016-9-11 18:35
这个不清楚

感谢回复,在黑马一起加油
作者: hfutWL    时间: 2016-9-11 19:27
Student s=new Student("小米");这句执行后,给形参赋值 name = "小米";因为"小米"是字符串常量,所以把常量池中的"小米"对象地址赋值给了name,并没有在堆中创建字符串。要想在堆中创建字符串需要用String类的构造方法。String str = new String("小米");这条语句创建了两个字符串,堆内存中一个,常量池中一个。str变量指向的是堆内存中的。
作者: zhangfengg    时间: 2016-9-11 21:15
new对象后,先访问父类有参构造,将小米这个值先传给父类name,再访问子类有参构造,将name传给子类有参.
作者: 河边捉虾米    时间: 2016-9-15 12:40
vae520283995 发表于 2016-9-11 18:35
这个不清楚

你的真诚打动了我
作者: 河边捉虾米    时间: 2016-9-15 12:41
hfutWL 发表于 2016-9-11 19:27
Student s=new Student("小米");这句执行后,给形参赋值 name = "小米";因为"小米"是字符串常量,所以把 ...

醍醐灌顶了,说的真好




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2