Amenable
Amenable's Blog
Amenable
  • λΆ„λ₯˜ 전체보기 (189)
    • πŸ“‚ JAVA (87)
      • μ΄νŽ™ν‹°λΈŒ μžλ°” (65)
      • μ£Όμš” κ°œλ… (22)
    • πŸ“‚ 개발 μ„œμ  (22)
      • μ‹€μš©μ£Όμ˜ ν”„λ‘œκ·Έλž˜λ¨Έ (1)
      • 객체지ν–₯의 사싀과 μ˜€ν•΄ (2)
      • 클린 μ½”λ“œ (8)
      • ν•¨κ»˜ 자라기 (1)
      • 그림으둜 λ°°μš°λŠ” HTTP&Network Basic (10)
    • πŸ“‚ λ°μ΄ν„°λ² μ΄μŠ€ (8)
      • κ°œλ… (8)
      • λ¬Έμ œν’€μ΄ (0)
    • πŸ“‚ λ„€νŠΈμ›Œν¬ (14)
      • κ°œλ… (6)
      • 성곡과 μ‹€νŒ¨λ₯Ό κ²°μ •ν•˜λŠ” 1%의 λ„€νŠΈμ›Œν¬ 원리 (8)
    • πŸ“‚ μŠ€ν”„λ§ (13)
      • κΈ°λ³Έ κ°œλ… (13)
    • πŸ“‚ WEB (5)
    • πŸ“‚ 자료ꡬ쑰 (12)
      • κ°œλ… (2)
      • μ •λ ¬ (8)
      • 트리 (2)
    • πŸ“‚ μ•Œκ³ λ¦¬μ¦˜ (10)
      • μ΅œμ†Œμ‹ μž₯트리 (2)
      • μ΅œλ‹¨ 경둜 (2)
      • λ¬Έμžμ—΄ (2)
      • ETC (4)
    • πŸ“‚ μ•Œκ³ λ¦¬μ¦˜_λ¬Έμ œν’€μ΄ (4)
      • BOJ_λ°±μ€€ (4)
    • πŸ“‚ ν”„λ‘œκ·Έλž˜λ° (3)
    • πŸ“‚ DevOps (2)
      • 배포 (2)
    • πŸ“‚ ν›„κΈ° (8)
      • μš°μ•„ν•œ ν…Œν¬μ½”μŠ€(ν”„λ¦¬μ½”μŠ€) (4)
      • 2023λ…„ (3)
      • 2024λ…„ (1)
    • πŸ“‚ 회고 (1)
      • 2023λ…„ (1)

λΈ”λ‘œκ·Έ 메뉴

  • πŸš€ GitHub

ν‹°μŠ€ν† λ¦¬

hELLO Β· Designed By μ •μƒμš°.
Amenable

Amenable's Blog

μΈμŠ€ν„΄μŠ€ν™”λ₯Ό λ§‰μœΌλ €κ±°λ“  private μƒμ„±μžλ₯Ό μ‚¬μš©ν•˜λΌ - [2μž₯ 객체 생성과 파괴(μ•„μ΄ν…œ4)]
πŸ“‚ JAVA/μ΄νŽ™ν‹°λΈŒ μžλ°”

μΈμŠ€ν„΄μŠ€ν™”λ₯Ό λ§‰μœΌλ €κ±°λ“  private μƒμ„±μžλ₯Ό μ‚¬μš©ν•˜λΌ - [2μž₯ 객체 생성과 파괴(μ•„μ΄ν…œ4)]

2022. 11. 28. 14:46

  정적 λ©”μ„œλ“œλ§Œ 담은 μœ ν‹Έλ¦¬ν‹° ν΄λž˜μŠ€λŠ” μΈμŠ€ν„΄μŠ€λ‘œ λ§Œλ“€μ–΄ μ“°λ €κ³  μ„€κ³„ν•œ ν΄λž˜μŠ€κ°€ μ•„λ‹ˆλ‹€. ν•˜μ§€λ§Œ μƒμ„±μžλ₯Ό λͺ…μ‹œν•˜μ§€ μ•ŠμœΌλ©΄ μ»΄νŒŒμΌλŸ¬κ°€ μžλ™μœΌλ‘œ κΈ°λ³Έ μƒμ„±μžλ₯Ό λ§Œλ“€μ–΄μ€€λ‹€. 즉, λ§€κ°œλ³€μˆ˜λ₯Ό λ°›μ§€ μ•ŠλŠ” public μƒμ„±μžκ°€ λ§Œλ“€μ–΄μ§€λ©°, μ‚¬μš©μžλŠ” 이 μƒμ„±μžκ°€ μžλ™ μƒμ„±λœ 것인지 ꡬ뢄할 수 μ—†λ‹€. κ·Έλž˜μ„œ 이번 μ•„μ΄ν…œμ„ 톡해 μΈμŠ€ν„΄μŠ€ 생성을 λ°©μ§€ν•˜λŠ” 방법을 μ•Œμ•„λ³΄κ³ μž ν•œλ‹€. 

 

public abstract class UtilityClass{
    // μ›λž˜λŠ” κΈ°λ³Έμƒμ„±μžκ°€ μžˆμ§€λ§Œ, 좜λ ₯을 톡해 눈으둜 ν™•μΈν•˜κΈ° μœ„ν•΄ μ•„λž˜μ™€ 같이 μž‘μ„±ν•˜μ˜€λ‹€.
    public UtilityClass(){
        System.out.println("Contructor"):
    }
}
public class DefaultUtilityClass extends UtilityClass{
}
----------
public static void main(String[] args){
    DefaultUtilityClass utilityClass = new DefaultUtilityClass(); // Contructorκ°€ 좜λ ₯됨
}

  μœ„μ—μ„œ 확인할 수 μžˆλŠ” κ²ƒμ²˜λŸΌ 좔상 클래슀둜 λ§Œλ“œλŠ” κ²ƒμœΌλ‘œλŠ” μΈμŠ€ν„΄μŠ€ν™”λ₯Ό 막을 수 μ—†λ‹€. λ˜ν•œ, abstractλΌλŠ” 것 λ•Œλ¬Έμ— μ‚¬μš©μžλŠ” 이 클래슀λ₯Ό μƒμ†ν•΄μ„œ μ“°λΌλŠ” 뜻으둜 μ˜€ν•΄ν•  수 μžˆλ‹€.

 

public class UtilityClass{
    private UtilityClass(){
    }
}

  이에 λŒ€ν•œ 해결책이 private μƒμ„±μžλ₯Ό μΆ”κ°€ν•˜μ—¬ 클래슀의 μΈμŠ€ν„΄μŠ€ν™”λ₯Ό λ§‰μžλŠ” 것이닀. 이 방식은 상속 자체λ₯Ό λΆˆκ°€λŠ₯ν•˜κ²Œ ν•œλ‹€λŠ” νš¨κ³Όλ„ μžˆλ‹€. 

 

  μ—¬κΈ°μ„œ μ•„μ΄λŸ¬λ‹ˆν•œ 점이 μžˆλ‹€. ꡳ이 μƒμ„±μžλ₯Ό λ§Œλ“€λ©΄μ„œκΉŒμ§€ μƒμ„±μžλ₯Ό λͺ» μ“°κ²Œ ν•˜κ³  μžˆλ‹€. 보톡은 μ“Έ 수 μžˆλŠ” 것을 μ½”λ“œλ‘œ λ§Œλ“œλŠ” 데 μ—¬κΈ°μ„œλŠ” μ“°μ§€ λͺ»ν•˜λŠ” 것을 μ½”λ“œλ‘œ λ§Œλ“€κ³  μžˆλ‹€. μ΄λŸ¬ν•œ 생각을 λ°©μ§€ν•˜κ³ μž μ•„λž˜μ™€ 같은 λ¬Έμ„œν™”λ₯Ό μΆ”μ²œν•˜κ³  μžˆλ‹€.

/**
 * 이 ν΄λž˜μŠ€λŠ” μΈμŠ€ν„΄μŠ€λ₯Ό λ§Œλ“€ 수 μ—†μŠ΅λ‹ˆλ‹€.
 */
public class UtilityClass{
    private UtilityClass(){
    }
}

 

  μ •λ¦¬ν•˜μžλ©΄, μΈμŠ€ν„΄μŠ€ν™”λ₯Ό λ§‰μœΌλ €κ±°λ“  private μƒμ„±μžλ₯Ό μ‚¬μš©ν•˜μž. 그리고 μƒμ„±μžκ°€ λΆ„λͺ… μ‘΄μž¬ν•˜λŠ”λ° ν˜ΈμΆœν•  수 μ—†λŠ” 직관적이지 μ•Šμ€ 상황을 ν•΄κ²°ν•˜κΈ° μœ„ν•΄ μ μ ˆν•œ 주석을 달아두도둝 ν•˜μž. 

 

ν•΄λ‹Ή 글은 λ°±κΈ°μ„  λ‹˜μ˜ 'μ΄νŽ™ν‹°λΈŒ μžλ°” μ™„λ²½ 곡랡'을 μˆ˜κ°•ν•˜κ³  μž‘μ„±ν•œ κ²ƒμž…λ‹ˆλ‹€. 

'πŸ“‚ JAVA > μ΄νŽ™ν‹°λΈŒ μžλ°”' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

λΆˆν•„μš”ν•œ 객체 생성을 ν”Όν•˜λΌ - [2μž₯ 객체 생성과 파괴(μ•„μ΄ν…œ6)]  (0) 2022.11.29
μžμ›μ„ 직접 λͺ…μ‹œν•˜μ§€ 말고 의쑴 객체 μ£Όμž…μ„ μ‚¬μš©ν•˜λΌ - [2μž₯ 객체 생성과 파괴(μ•„μ΄ν…œ5)]  (0) 2022.11.28
private μƒμ„±μžλ‚˜ μ—΄κ±° νƒ€μž…μœΌλ‘œ μ‹±κΈ€ν„΄μž„μ„ λ³΄μ¦ν•˜λΌ - [2μž₯ 객체 생성과 파괴(μ•„μ΄ν…œ3)]  (0) 2022.11.27
μƒμ„±μžμ—κ²Œ λ§€κ°œλ³€μˆ˜κ°€ λ§Žλ‹€λ©΄ λΉŒλ”λ₯Ό κ³ λ €ν•˜λΌ - [2μž₯ 객체 생성과 파괴(μ•„μ΄ν…œ2)]  (0) 2022.11.26
μƒμ„±μž λŒ€μ‹  정적 νŒ©ν„°λ¦¬ λ©”μ„œλ“œλ₯Ό κ³ λ €ν•˜λΌ - [2μž₯ 객체 생성과 파괴(μ•„μ΄ν…œ 1)]  (0) 2022.11.26
    'πŸ“‚ JAVA/μ΄νŽ™ν‹°λΈŒ μžλ°”' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
    • λΆˆν•„μš”ν•œ 객체 생성을 ν”Όν•˜λΌ - [2μž₯ 객체 생성과 파괴(μ•„μ΄ν…œ6)]
    • μžμ›μ„ 직접 λͺ…μ‹œν•˜μ§€ 말고 의쑴 객체 μ£Όμž…μ„ μ‚¬μš©ν•˜λΌ - [2μž₯ 객체 생성과 파괴(μ•„μ΄ν…œ5)]
    • private μƒμ„±μžλ‚˜ μ—΄κ±° νƒ€μž…μœΌλ‘œ μ‹±κΈ€ν„΄μž„μ„ λ³΄μ¦ν•˜λΌ - [2μž₯ 객체 생성과 파괴(μ•„μ΄ν…œ3)]
    • μƒμ„±μžμ—κ²Œ λ§€κ°œλ³€μˆ˜κ°€ λ§Žλ‹€λ©΄ λΉŒλ”λ₯Ό κ³ λ €ν•˜λΌ - [2μž₯ 객체 생성과 파괴(μ•„μ΄ν…œ2)]
    Amenable
    Amenable
    CS, μžλ°”, 자료ꡬ쑰, μ•Œκ³ λ¦¬μ¦˜, μŠ€ν”„λ§, μŠ€ν”„λ§ λΆ€νŠΈμ— ν•΄λ‹Ήν•˜λŠ” κ°œλ°œμ— κ΄€ν•œ λ‚΄μš©μ„ κ³΅μœ ν•©λ‹ˆλ‹€.

    ν‹°μŠ€ν† λ¦¬νˆ΄λ°”