{"componentChunkName":"component---src-templates-post-template-jsx","path":"/history/posts/2020-10-04--003--04","result":{"data":{"site":{"siteMetadata":{"title":"Blog by Eunyoung","subtitle":"작업 기록 블로그","copyright":"© All rights reserved.","author":{"name":"EunYoung","twitter":"#"},"disqusShortname":"","url":"https://ssongey.github.io"}},"markdownRemark":{"id":"22474c69-dc51-5570-9f99-ba30d2285ecf","html":"<h2>아이템4) 인스턴스화를 막으려거든 private 생성자를 사용하라</h2>\n<ul>\n<li>정적 멤버만을 담은 유틸리티 클래스는 인스턴스로 만들어 쓰려고 설계한 게 아니다.  </li>\n<li>생성자를 명시하지 않으면 컴파일러가 자동으로 기본 생성자를 만들어주며,\n사용자는 이 생성자가 자동 생성된 것인지 구분할 수 없다.  </li>\n<li>상속이 불가능한 클래스가 된다.<br>\n— 모든 자식 생성자는 상위 클래스의 생성자를 호출하게 되는데, 이를 private로 선언하였기 때문에 호출이 불가능하다.</li>\n</ul>\n<div class=\"gatsby-highlight\" data-language=\"java\"><pre class=\"language-java\"><code class=\"language-java\"><span class=\"token keyword\">public</span> <span class=\"token keyword\">class</span> <span class=\"token class-name\">Utility</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">private</span> <span class=\"token class-name\">Utility</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">throw</span> <span class=\"token keyword\">new</span> <span class=\"token class-name\">AssertionError</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span></code></pre></div>","fields":{"tagSlugs":["/tags/책리뷰/","/tags/이펙티브자바/"],"slug":"/history/posts/2020-10-04--003--04"},"frontmatter":{"title":"[책리뷰/Effective Java] 객체 생성과 파괴","tags":["책리뷰","이펙티브자바"],"date":"2020-10-04","description":"아이템4) 인스턴스화를 막으려거든 private 생성자를 사용하라"}}},"pageContext":{"slug":"/history/posts/2020-10-04--003--04"}},"staticQueryHashes":[]}