黑马程序员技术交流社区

标题: 关于构造函数 [打印本页]

作者: 杜天伟    时间: 2012-12-13 17:05
标题: 关于构造函数
本帖最后由 杜天伟 于 2012-12-14 11:35 编辑

我这样编写
class Lianxi
{
        public static void main(String[] args)
        {
                //System.out.println("Hello World!");
        Person p=new Person();
        new Person();
        p.Person();
        
        }
}
class Person
{
        Person()
        {
                System.out.println("hello ");
        }
}
编译不通过
提示 Lianxi.java:8: 错误: 找不到符号
        p.Person();
         ^
  符号:   方法 Person()
  位置: 类型为Person的变量 p
1 个错误
这是为什么呢  
作者: yingying    时间: 2012-12-13 17:20
构造函数式用来给对象初始化的,不能直接用对象调用的
class Person
{
        Person()
        {
                System.out.println("hello ");
        }
}

class Lianxi
{
        public static void main(String[] args)
        {
                //System.out.println("Hello World!");
              Person p=new Person();//在这里new  Person();的时候才会调用构造函数进行对象初始化,将构造函数中的hello打印出来!
        }
}
作者: 李亚飞    时间: 2012-12-13 17:22
构造方法不能被 对象 直接调用,只在实例化的时候自动调用。
作者: 王中利    时间: 2012-12-13 17:28
构造函数不能显式的调用,只有在创建对象的时候,才被隐式的调用,用来对对象的初始化!
作者: netboy032    时间: 2012-12-13 17:34
你这构造函数怎么能被对象调用嘞,构造函数在对象被创建的时候自动被调用的啦
作者: kasa0421    时间: 2012-12-13 18:07
class Lianxi
{
         public static void main(String[] args)
        {
                 //System.out.println("Hello World!");
         Person p=new Person();//运行程序就会默认调用Person类的构造函数输出“hello”.  你下面的两行代码可以说是多余
        }
}
class Person
{
         Person()
         {
                 System.out.println("hello ");
         }}  


建议多看下自己手里书中中构造函数一章节或多听几遍老师的讲解,记住一点就是:构造器总是伴随着new操作一起调用
作者: 王中利    时间: 2012-12-13 20:08
王中利 发表于 2012-12-13 17:28
构造函数不能显式的调用,只有在创建对象的时候,才被隐式的调用,用来对对象的初始化! ...

不会的,系统嘿默认一个空参数的构造函数
作者: 焦健    时间: 2012-12-13 20:22
构造函数不能通过对象调用,只能在建立对象的时候调用一次,给对象初始化。需要注意的是,构造函数是在对象一建立就运行,并且一个对象的建立,构造函数只能运行一次,这是它与一般函数的区别。




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