黑马程序员技术交流社区

标题: 构造函数能被成员函数调用吗? [打印本页]

作者: 擒贼先擒王    时间: 2014-12-16 22:52
标题: 构造函数能被成员函数调用吗?
如题,构造函数能被成员函数调用吗?

作者: 后悔药    时间: 2014-12-16 22:55
构造函数只有在初始化的时候才被调用的吧
作者: 有陷阱快跑丶    时间: 2014-12-17 01:14
this()用于构造函数间调用  成员函数不可以调用   毕老师讲过的:P
作者: 赵越海    时间: 2014-12-17 05:24
本帖最后由 赵越海 于 2016-7-8 17:39 编辑

         .
作者: 農邨尛夥兒    时间: 2014-12-17 20:44
不能 初始化类时调用
作者: lwh316658735    时间: 2014-12-17 20:47
不能的!!
作者: Honelyboy    时间: 2014-12-17 21:19
不能,构造函数只有在创建对象时调用。
作者: 红楼    时间: 2014-12-17 21:22
楼上收的对啊
作者: 新鲜感    时间: 2014-12-17 21:23
构造方法啊 ,当然是只能构造对象的时候用啊
作者: huoxy    时间: 2014-12-17 21:24
当然可以了,懒汉式的单例模式不就是在成员函数里调用私有的构造函数吗?
作者: 擒贼先擒王    时间: 2014-12-17 21:27
有陷阱快跑丶 发表于 2014-12-17 01:14
this()用于构造函数间调用  成员函数不可以调用   毕老师讲过的

明白了,谢谢!:)
作者: 叫我王大锤    时间: 2014-12-17 21:38
不可以的
作者: kenhe    时间: 2014-12-17 21:42
肯定不可以的  楼上说的单例并不是调用的构造函数
作者: ben_vs_cong    时间: 2014-12-17 21:45
不太了解,我只看到,this可以在构造函数之间进行调用
作者: 侯鹏成    时间: 2014-12-17 21:55
楼上说的对
作者: jxlovqqvo    时间: 2014-12-17 21:58
如果该方法是静态的就可以,你可以看看单例模式
作者: zcyemenye    时间: 2014-12-17 22:20
构造函数是初始化对象时调用,用于对对象成员变量赋值,成员函数的调用需要对象。一个是初始化对象,一个是被对象调用,先后顺序弄清楚。
作者: 董晗    时间: 2014-12-17 22:24
好像不可以吧,构造函数只在创建对象时调用
作者: 擒贼先擒王    时间: 2014-12-18 08:37
董晗 发表于 2014-12-17 22:24
好像不可以吧,构造函数只在创建对象时调用

嗯,好像构造函数互相之间也可以调用
作者: 黄小橙    时间: 2014-12-18 08:42
不可以,楼上有人说的懒汉式也不是成员函数调用构造函数
作者: 擒贼先擒王    时间: 2014-12-18 08:44
黄小橙 发表于 2014-12-18 08:42
不可以,楼上有人说的懒汉式也不是成员函数调用构造函数

嗯,经过楼上的回复,我好像明白了很多!
作者: 被风扬起的沙    时间: 2014-12-18 08:44
受教育了
作者: 我只是一只菜鸟    时间: 2014-12-18 12:16
构造函数只有被初始化才可以调用,其他时候不调用,你想想构造函数不就是创建对象吗,不可以一直调用,除非你在函数里面创建对象
作者: 南柯一梦境    时间: 2014-12-18 12:33
让我反思很多啊,受教了
作者: 擒贼先擒王    时间: 2014-12-19 21:20
经过我的尝试,发现构造函数是可以被成员函数调用的!
class Student
{
        private String name;
        private int age;
        public Student(){}
        public Student(String name,int age)
        {
                this.name = name;                       
                this.age = age;
        }
        public static Student returnClass()       
        {
                Student s =  new Student("xiaoming",10);
                return s;
        }
}
class Del1
{
        public static void main(String[] args)
        {
                Student s = Student.returnClass();
        }
}
作者: hello_csu    时间: 2014-12-19 21:40
构造函数是用于实例化对象的,不能够方法中直接调用构造函数,但是可以使用构造函数去创建对象。
作者: 擒贼先擒王    时间: 2014-12-20 21:07
hello_csu 发表于 2014-12-19 21:40
构造函数是用于实例化对象的,不能够方法中直接调用构造函数,但是可以使用构造函数去创建对象。 ...

请看25楼!!!
作者: 撬佳人丶    时间: 2014-12-21 03:59
不能,必须的
作者: 郭文飞    时间: 2014-12-21 07:27
不能啊      
作者: 擒贼先擒王    时间: 2014-12-21 09:32
撬佳人丶 发表于 2014-12-21 03:59
不能,必须的

请看25楼
作者: 擒贼先擒王    时间: 2014-12-21 09:34
郭文飞 发表于 2014-12-21 07:27
不能啊

请看25楼,看了再说!
作者: 我只是一只菜鸟    时间: 2014-12-21 10:52
不能吧,除非你在函数内建立对象
作者: 钟道上    时间: 2014-12-21 18:40
构造函数一new就被初始化了
作者: cs8630323    时间: 2014-12-21 19:28
擒贼先擒王 发表于 2014-12-21 09:34
请看25楼,看了再说!

这样当然可以,不过我觉得楼主说的调用是指 Student(); 而不是创建对象,而构造函数只能重载的构造函数或者子类构造函数才能调用。
作者: 迷失的小Z    时间: 2014-12-21 20:42
构造函数虽然被称为函数,但是他跟一般函数完全是两个概念,构造函数在创建对象时与new关键字一起使用,new用于在堆内存中开辟空间,而构造函数对创建的对象进行初始化,在方法中倒是可以使用(创建对象什么的)……
作者: 叫我王大锤    时间: 2014-12-21 20:46
构造方法没有太多的意义 是用来初始化下对象的
作者: 赖永树    时间: 2014-12-21 23:33
楼上都说了,我就来水一下吧
作者: 逆世界ylm    时间: 2014-12-22 20:40
这么多·学习了
作者: reyzarc    时间: 2014-12-22 23:00
不可以。构造函数之间可以通过this关键字相互调用,但不能被成员函数调用
作者: qowoeo7538    时间: 2014-12-22 23:52
不能的,因为是初始类的时候用的。
作者: 青衫禅客    时间: 2014-12-22 23:56
在继承中,子类的构造函数中有一个隐式的super()
作者: outsider1020    时间: 2014-12-23 11:26
构造函数是在初始化对象时被调用,成员函数是不可以调用构造函数de
作者: 迷失的小Z    时间: 2015-1-30 23:38
擒贼先擒王 发表于 2014-12-19 21:20
经过我的尝试,发现构造函数是可以被成员函数调用的!
class Student
{

这是创建对象,不是调用……
作者: 13922919272    时间: 2015-2-1 00:11
有陷阱快跑丶 发表于 2014-12-17 01:14
this()用于构造函数间调用  成员函数不可以调用   毕老师讲过的

不是有默认的super
作者: 13922919272    时间: 2015-2-1 00:19
13922919272 发表于 2015-2-1 00:11
不是有默认的super

子类和父类间
作者: 梁小刀11    时间: 2015-2-9 23:05
不能哦!!!!!!!!!!




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