A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杜天伟 中级黑马   /  2012-12-13 17:05  /  1631 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杜天伟 于 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 个错误
这是为什么呢  

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

7 个回复

倒序浏览
构造函数式用来给对象初始化的,不能直接用对象调用的
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 19:03

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1 赞一个!

查看全部评分

回复 使用道具 举报
构造方法不能被 对象 直接调用,只在实例化的时候自动调用。
回复 使用道具 举报
构造函数不能显式的调用,只有在创建对象的时候,才被隐式的调用,用来对对象的初始化!
回复 使用道具 举报
你这构造函数怎么能被对象调用嘞,构造函数在对象被创建的时候自动被调用的啦

点评

新手 很多不明白的  发表于 2012-12-13 19:05
回复 使用道具 举报
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 19:05
回复 使用道具 举报
王中利 发表于 2012-12-13 17:28
构造函数不能显式的调用,只有在创建对象的时候,才被隐式的调用,用来对对象的初始化! ...

不会的,系统嘿默认一个空参数的构造函数
回复 使用道具 举报
焦健 高级黑马 2012-12-13 20:22:58
8#
构造函数不能通过对象调用,只能在建立对象的时候调用一次,给对象初始化。需要注意的是,构造函数是在对象一建立就运行,并且一个对象的建立,构造函数只能运行一次,这是它与一般函数的区别。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马