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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

用static函数调用被声明为private的构造函数
        
        private Soup(){}
        
        public static Soup makeSout()
        {
                return new Soup();
        }
这个函数可以调用上面的构造函数吗???当static 加载到内存中构造函数是不是还没存在在对内存中?

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1 赞一个!

查看全部评分

2 个回复

正序浏览
补充几句。
因为静态方法中没有this,在方法体中无法直接通过本类对象使用实例属性,也就是说this.属性无法使用,也就是我们常说的静态方法中不能使用非静态属性。
但我们可以通过new一个实例对象来调用实例属性和实例方法。

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1 赞一个!

查看全部评分

回复 使用道具 举报
可以调用上面的构造方法.
使用Soup类时,JVM会把Soup.class文件加载到内存的方法区中,包括构造函数的定义、静态方法的定义。
当程序运行调用静态方法时,会把静态方法压栈到栈区并执行。
当程序运行调用构造方法时,会把构造函数压栈到栈区并执行。

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马