黑马程序员技术交流社区

标题: 关于构造方法的空参数问题。 [打印本页]

作者: 布鲁Go    时间: 2014-1-18 17:05
标题: 关于构造方法的空参数问题。
class Person
{
       Person(){
       //这里应该写什么,才能让newPerson打印的时候,能打印出空参数。而不是地址。
       }
}
class  Demo
{
       public static voidmain(String[] args)
       {
              Person p=new Person();
              //p.Person();
              String s=new String();
              System.out.println(p+"::::"+s);//在这里答应的s 是空参数,p 却不是,请问,上面的构造方法也怎么写,才能然p也答应出空参数
       }
}

……………………………………………………



作者: 陈文杰    时间: 2014-1-18 17:21
就算这样,s也是指向实体地址。空参数啥情况名字。
作者: 李跃峰    时间: 2014-1-18 17:24
不是在构造函数里写,而是在class Person里复写toString()方法,你直接System打印某个对象实际就是调用它的toString方法
作者: §傻、才乖    时间: 2014-1-18 17:31
在打印一个对象时,默认调用的是toString()方法,而不是在构造函数中做什么
s是一个String类型变量,而String 类中复写了Object中的toString()方法,所以打印的时候按照String类里的toString()方法中的方式打印
而类都继承自Object ,你写的Person类中并没有覆盖Object类中的toString方法,所以打印,还是按照Object类中toString方法的方式打印,即类名@哈希值
作者: wodenhaowzg    时间: 2014-1-18 17:32
打印的是Person@18dd7404这信息吧,这跟数组一样,里面信息就代表着调用的是无参的构造方法,如果你写个有参的,再调用,这个信息就改变了。
直接打印的是Person整体的信息,而String() 是初始化一个新创建的 String 对象,使其表示一个空字符序列。
所以打印出来的是空字符序列




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