λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Note for moment

[Java] 클래슀 λ‘œλ“œ, μžλ°” λ©”λͺ¨λ¦¬ μ˜μ—­, μ§€μ •μž

by πŸ’œautumn 2020. 9. 3.

1. ν΄λž˜μŠ€κ°€ λ‘œλ“œλ˜λŠ” μˆœμ„œ

   1) ν΄λž˜μŠ€κ°€ λ©”λͺ¨λ¦¬λ‘œ λ‘œλ“œλ˜μ–΄ 클래즈(clazz)

      ν˜•νƒœλ‘œ staticμ˜μ—­μ— μœ„μΉ˜

       [ 클래즈의 κ΅¬μ„±μš”μ†Œ : ν•„λ“œ, μƒμ„±μž, λ©”μ†Œλ“œ ]

  2) 클래즈의 μƒμ„±μž(newμ—°μ‚°μž ν™œμš©)λ‘œλΆ€ν„°

     μΈμŠ€ν„΄μŠ€λ₯Ό heap에 생성

      [ μΈμŠ€ν„΄μŠ€μ˜ μš”μ†Œ : 클래슀, ν•„λ“œ (λ©”μ†Œλ“œ μ—†μŒ!) ]

       μ΄λ•Œ ν•„λ“œλŠ” 주둜 은닉화 처리 → μ ‘κ·Ό λΆˆκ°€λŠ₯

       λ”°λΌμ„œ μΈμŠ€ν„΄μŠ€κ°€ μ ‘κ·Όκ°€λŠ₯ν•œ 뢀뢄은 였직

       ν΄λž˜μŠ€(클래슀의 μƒμ„±μžλ‘œλΆ€ν„° 호좜된 것)

  3) μΈμŠ€ν„΄μŠ€μ˜ ν•„λ“œμ™€ λ©”μ†Œλ“œλ₯Ό λ³€κ²½ 및 μ‹€ν–‰

     ν•˜κΈ° μœ„ν•΄ stackμ˜μ—­μ— μ°Έμ‘°λ³€μˆ˜ 생성

       μ°Έμ‘°λ³€μˆ˜λŠ” Heap의 ν•„λ“œμ— μ ‘κ·Όν•  수 없기에 ν΄λž˜μŠ€μ— μ ‘κ·Ό!

       ν΄λž˜μŠ€λ‘œ staticλ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν•˜μ—¬ λͺ…령을 μ‹€ν–‰ν•˜κ³  ν•„λ“œλ³€κ²½λ„ κ°€λŠ₯

 

 

2. Java의 λ©”λͺ¨λ¦¬ μ˜μ—­

 

 

3. μ§€μ •μž(Modifier)

    1) μ ‘κ·Όμ§€μ •μž(Access Modifies) ν—ˆμš© λ²”μœ„

        : 클래슀/ν•„λ“œ/μƒμ„±μž/λ©”μ†Œλ“œ λͺ¨λ‘ μ‚¬μš©κ°€λŠ₯

    2) ν΄λž˜μŠ€μ§€μ •μž - static

        : ν•„λ“œ/λ©”μ†Œλ“œ/μ΄λ„ˆν΄λž˜μŠ€λ§Œ μ‚¬μš©κ°€λŠ₯ > μƒμ„±μž μ‚¬μš©λΆˆκ°€

        : μ •μ ν•„λ“œ(곡유용), μ •μ λ©”μ†Œλ“œ(μ •μ ν•„λ“œ μ œμ–΄μš©)

 

    3) μΆ”μƒμ§€μ •μž - abstract

        : 클래슀/λ©”μ†Œλ“œλ§Œ μ‚¬μš©κ°€λŠ₯ > ν•„λ“œ/μƒμ„±μž μ‚¬μš©λΆˆκ°€

        : μΆ”μƒν΄λž˜μŠ€, μΆ”μƒλ©”μ†Œλ“œ(μž‘μ—…μ§€μ‹œμž) 

 

    4) νŒŒμ΄λ„μ§€μ •μž - final

        : ν•„λ“œ/λ©”μ†Œλ“œ/클래슀 μ‚¬μš©κ°€λŠ₯

        : μƒμˆ˜ν•„λ“œ, νŒŒμ΄λ„ λ©”μ†Œλ“œ 

        : λ³€κ²½λΆˆκ°€

λŒ“κΈ€