【Java】【TIJ】实现一个类:不允许用构造方法来直接创建类实例(对象)
2014-10-07 09:31
871 查看
某些情况下,也许我们不希望客户使用构造方法直接创建对象实例,但是我们还是希望类可以正常使用,我们可以使用下面的方法来实现:
运行结果:
F:\01 Java\01 Project\01 TinkingInJava>java WithoutConstructor
Invoke private constructor!
/** * 创建一个类:类的实例不能直接用构造方法来创建 * @author:WolfOfSiberian */ public class WithoutConstructor{ /** * 一般情况下构造方法都是public的,但是为了阻止用户使用构造方法直接创建对象, * 这里使用private控制访问权限 */ private WithoutConstructor(){ System.out.println("Invoke private constructor!"); } /** * 不能直接使用构造方法创建实例的情况下,只能通过静态方法来实现构建, * 试想如果不用静态方法的话,任何方法都需要类对象来调用,但是此时本身就是要创建对象 */ public static WithoutConstructor MakeObject(){ //return this(); //static方法没有this引用 return new WithoutConstructor(); } public static void main(String[] args){ WithoutConstructor test= WithoutConstructor.MakeObject();//类调用静态方法 } }
运行结果:
F:\01 Java\01 Project\01 TinkingInJava>java WithoutConstructor
Invoke private constructor!
相关文章推荐
- java创建一个子类对象是会调用父类的构造方法会不会创建父类
- Java中如何实现一个类在内存里只能创建一个实例对象
- java创建一个子类对象是会调用父类的构造方法会不会创建父类
- java 程序加载过程---3--类中申明同时申明类的静态对象 创建类的实例 访问类的静态变量 调用类的静态方法 使用反射方法 初始化类的子类对象 直接使用java.exe 调用某个类
- java创建一个子类对象是会调用父类的构造方法会不会创建父类
- Java 反射创建类的实例对象(默认构造方法和私有构造方法)
- 笔记2-----创建一个java实例对象的方法
- 解决 ”不允许在查询中显式构造实体类型“问题及使用其他方法实现返回 List<Model对象>或者IQueryable<Model对象>对象
- JAVA中创建一个对象有哪几种方法,有什么区别?
- 在DWR中实现直接获取一个JAVA类的返回值的两种方法
- 使用反射创建Bean、Spring中是如何根据类名配置创建Bean实例、Java提供了Class类获取类别的字段和方法,包括构造方法
- android之反射创建一个实例:构造方法带参和不带参
- 【Java】【TIJ】使用static实现对创建的类对象进行计数
- 最简单直接继承、扩展Object,或者克隆一个Object到能创建多个互不干扰实例的方法
- 一个新的对象创建机制的思考--C++下实现类似于Java的对象管理机制及反射
- 《黑马程序员》 静态方法中不能直接创建内部类实例对象的原因
- 如何绕过Java的构造方法来创建实例
- 使用反射创建Bean、Spring中是如何根据类名配置创建Bean实例、Java提供了Class类获取类别的字段和方法,包括构造方法
- 使用C#实现只允许运行一个程序实例的几种方法
- 反射创建构造方法无参或带参类的实例对象