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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 曾宇 中级黑马   /  2014-7-19 22:09  /  1663 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 曾宇 于 2014-7-24 13:45 编辑

java中没有构造方法的类,没有构造方法时,java会自动添加无参构造方法,那么为何有些系统类无法创建?是什么原因造成的。

4 个回复

倒序浏览
可能是final修饰的类,也可能是非公有的构造方法,也可能使抽象类
回复 使用道具 举报
   这是因为构造方法被private修饰了,不让外界创建(属于单例设计模式),这时在此类的内部肯定会提供一个公共的静态修饰方法,可以用来创建此类的对象。当外界需要此类对象时,直接类名调用此方法就创建此类的对象了,目的是保证内存中只有一个此类的对象。   如下面例子:                                                     public class Student {        // 通过private修饰不让外界创建对象
        private Student() {
        }
        private static Student s = new Student();

      //提供了一个可以创建本类对象的方法,并返回此类对象
        public static Student getStudent() {
                return s;
        }
}

回复 使用道具 举报
老师推荐自己手动给出无参
回复 使用道具 举报
王一勇 发表于 2014-7-19 22:51
这是因为构造方法被private修饰了,不让外界创建(属于单例设计模式),这时在此类的内部肯定会提供一个 ...

谢谢解答,很详细。
原来是单例模式的原因。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马