In terms of inheritance,
When Class A has a private constructor, this private constructor is accessible only to those who have access to A’s private methods.
A’s inner classes and if A is an inner class of some class S, other inner classes of S have access to the private constructor.
So, A can be inherited by its own inner classes or S’s other inner classes.
To Achieve Singleton Pattern,
Singleton Pattern means that a single class is responsible for creating an object while making sure that only a single object gets created.
So to achieve this, the constructor must be private.
Singleton class creation
<span>public</span> <span>class</span> <span>SingletonObject</span> <span>{</span><span>private</span> <span>static</span> <span>SingletonObject</span> <span>singletonObject</span> <span>=</span> <span>new</span> <span>SingletonObject</span><span>();</span><span>// make the constructor private so that this class cannot be</span><span>// instantiated</span><span>private</span> <span>SingletonObject</span><span>()</span> <span>{</span><span>}</span><span>// Get the only object available</span><span>public</span> <span>static</span> <span>SingletonObject</span> <span>getInstance</span><span>()</span> <span>{</span><span>return</span> <span>singletonObject</span><span>;</span><span>}</span><span>public</span> <span>void</span> <span>showMessage</span><span>()</span> <span>{</span><span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"Singleton Pattern"</span><span>);</span><span>}</span><span>}</span><span>public</span> <span>class</span> <span>SingletonObject</span> <span>{</span> <span>private</span> <span>static</span> <span>SingletonObject</span> <span>singletonObject</span> <span>=</span> <span>new</span> <span>SingletonObject</span><span>();</span> <span>// make the constructor private so that this class cannot be</span> <span>// instantiated</span> <span>private</span> <span>SingletonObject</span><span>()</span> <span>{</span> <span>}</span> <span>// Get the only object available</span> <span>public</span> <span>static</span> <span>SingletonObject</span> <span>getInstance</span><span>()</span> <span>{</span> <span>return</span> <span>singletonObject</span><span>;</span> <span>}</span> <span>public</span> <span>void</span> <span>showMessage</span><span>()</span> <span>{</span> <span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"Singleton Pattern"</span><span>);</span> <span>}</span> <span>}</span>public class SingletonObject { private static SingletonObject singletonObject = new SingletonObject(); // make the constructor private so that this class cannot be // instantiated private SingletonObject() { } // Get the only object available public static SingletonObject getInstance() { return singletonObject; } public void showMessage() { System.out.println("Singleton Pattern"); } }
Get object from singleton class
<span>public</span> <span>class</span> <span>SingletonPatternEx</span> <span>{</span><span>public</span> <span>static</span> <span>void</span> <span>main</span><span>(</span><span>String</span><span>[]</span> <span>args</span><span>)</span> <span>{</span><span>//Get the only object available</span><span>SingletonObject</span> <span>object</span> <span>=</span> <span>SingletonObject</span><span>.</span><span>getInstance</span><span>();</span><span>//show the message</span><span>object</span><span>.</span><span>showMessage</span><span>();</span><span>}</span><span>}</span><span>public</span> <span>class</span> <span>SingletonPatternEx</span> <span>{</span> <span>public</span> <span>static</span> <span>void</span> <span>main</span><span>(</span><span>String</span><span>[]</span> <span>args</span><span>)</span> <span>{</span> <span>//Get the only object available</span> <span>SingletonObject</span> <span>object</span> <span>=</span> <span>SingletonObject</span><span>.</span><span>getInstance</span><span>();</span> <span>//show the message</span> <span>object</span><span>.</span><span>showMessage</span><span>();</span> <span>}</span> <span>}</span>public class SingletonPatternEx { public static void main(String[] args) { //Get the only object available SingletonObject object = SingletonObject.getInstance(); //show the message object.showMessage(); } }
Output
<span>Singleton</span> <span>Pattern</span><span>Singleton</span> <span>Pattern</span>Singleton Pattern
© 版权声明
THE END
暂无评论内容