[μžλ°”/JAVA] πŸ’«ν΄λž˜μŠ€(Class)λž€?πŸ’«(클래슀, 클래슀 μ €μž₯μœ„μΉ˜, 클래슀의 멀버에 λŒ€ν•΄ μ•Œμ•„λ³΄μž)

λ°•μ •ν˜„Β·2023λ…„ 8μ›” 6일
0
post-thumbnail

λ©”λͺ¨λ¦¬μ—μ„œ μ‚¬μš©ν•˜κ³  싢은 객체가 μžˆλ‹€λ©΄ μš°μ„  섀계도λ₯Ό λ§Œλ“€μ–΄μ•Ό ν•œλ‹€.

이 섀계도가 λ°”λ‘œ 클래슀이며 이런 클래슀둜 λ§Œλ“  객체λ₯Ό μΈμŠ€ν„΄μŠ€λΌκ³  ν•œλ‹€.

ν•˜λ‚˜μ˜ νƒ€μž…μ΄λ‹€. 이λ₯Ό μ‚¬μš©μžμ •μ˜νƒ€μž…μ΄λΌκ³  ν•œλ‹€.

섀계도(클래슀)λ₯Ό 가지고 μžλ™μ°¨μ™„μ„±ν’ˆ(객체)λ₯Ό λ§Œλ“ λ‹€κ³  μƒκ°ν•˜λ©΄ λœλ‹€.

1. 클래슀 생성과 μ„ μ–Έ

1) ν΄λž˜μŠ€μ„ μ–Έ

βœ… public class 클래슀λͺ… { … }
  • μ—¬κΈ°μ„œ public은 μ ‘κ·Όμ§€μ •μžμ€‘ ν•˜λ‚˜λ‘œ μ™ΈλΆ€μ—μ„œ μ ‘κ·Όν•  수 μžˆλŠ” λ²”μœ„λ₯Ό modifyμ—μ„œ 쑰정이 κ°€λŠ₯ν•˜λ‹€. (*modify: μ œν•œν•˜λ‹€.)
    • public은 μ–΄λ””μ„œλ“  자유둭게 μ ‘κ·Όν•  수 μžˆλŠ” μ ‘κ·Όμ§€μ •μžμ΄λ‹€.

  • 클래슀 μ„ μ–Έ κ·œμΉ™
    • ν•˜λ‚˜ μ΄μƒμ˜ 문자둜 이루어져야 함
    • 첫 κΈ€μžμ—λŠ” μˆ«μžκ°€ 올 수 μ—†μŒ
    • $ _ 이외 νŠΉμˆ˜λ¬ΈμžλŠ” μ‚¬μš©ν•  수 μ—†μŒ
    • μžλ°” ν‚€μ›Œλ“œ(μ˜ˆμ•½μ–΄)λŠ” ꢌμž₯ν•˜μ§€ μ•ŠμŒ Ex) int , for β†’ X
    • λŒ€λ¬Έμžλ‘œ μ‹œμž‘ν•¨ (κ·œμΉ™X 약속O)
    • ν•œκΈ€μ„ μ‚¬μš©ν•˜μ§€ μ•ŠμŒ (κ·œμΉ™X 약속O)
    • 숫자둜 μ‹œμž‘ν•˜λ©΄ μ•ˆλ¨

  • 클래슀 이름을 μ •ν–ˆλ‹€λ©΄ ν΄λž˜μŠ€μ΄λ¦„.java 둜 μ†ŒμŠ€νŒŒμΌμ„ 생성해야 함
    • μ†ŒμŠ€νŒŒμΌκ³Ό ν΄λž˜μŠ€μ΄λ¦„ λŒ€μ†Œλ¬Έμž κ°™μ•„μ•Ό 함

2) ν΄λž˜μŠ€λ‘œλΆ€ν„° 객체 생성

βœ… 클래슀 λ³€μˆ˜ = new 클래슀( );
  • ν΄λž˜μŠ€λ‘œλΆ€ν„° 객체λ₯Ό μƒμ„±ν•˜λ €λ©΄ newμ—°μ‚°μžλ₯Ό μ‚¬μš©ν•œλ‹€, newλŠ” κ°μ²΄μƒμ„±μ—°μ‚°μžλ‘œ 말 κ·ΈλŒ€λ‘œ 객체λ₯Ό 생성할 수 μžˆλ‹€.
  • 객체 생성 후에 객체의 λ²ˆμ§€κ°€ λ¦¬ν„΄ν•œλ‹€.
    • κ°μ²΄ν™”ν–ˆλ‹€. β‡’ μΈμŠ€ν„΄μŠ€ν™”ν–ˆλ‹€.
  • newμ—°μ‚°μžλ‘œ λ©”λͺ¨λ¦¬μ— λ²ˆμ§€λ₯Ό μƒμ„±ν–ˆλ‹€λ©΄ λ‹€μ‹œ ν•΄λ‹Ή λ²ˆμ§€κ°€ 클래슀 λ³€μˆ˜μ— μ €μž₯ν•΄μ•Ό ν•œλ‹€.
    • BasicClass b1 = new BasicClass( ); β†’ λ‹€μ‹œ 클래슀 λ³€μˆ˜μ— μ €μž₯ν•˜λŠ” 방법
  • λ³€μˆ˜κ°€ 클래슀 객체λ₯Ό μ°Έμ‘°ν–ˆλ‹€κ³  ν•΄μ„œ 이 λ³€μˆ˜λ₯Ό κ°μ²΄μ°Έμ‘°λ³€μˆ˜λΌκ³  ν•œλ‹€.
    • λ³€μˆ˜λŠ” μŠ€νƒμ˜μ—­, new에 μ˜ν•΄ μƒμ„±λœ κ°μ²΄λŠ” νž™μ˜μ—­μ— μ €μž₯됨
    • μŠ€νƒ μ˜μ—­μ— μ €μž₯된 λ³€μˆ˜κ°€ νž™μ˜μ—­μ— μ €μž₯된 객체λ₯Ό μ°Έμ‘°ν•˜κ²Œ 됨 β†’ κ°μ²΄μ°Έμ‘°λ³€μˆ˜
    • b1λ³€μˆ˜λŠ” BasicClass 객체λ₯Ό μ°Έμ‘°ν•œλ‹€.

3) 클래슀 μ €μž₯μœ„μΉ˜

  • λͺ¨λ“  ν΄λž˜μŠ€λŠ” νŒ¨ν‚€μ§€ μ•„λž˜ μœ„μΉ˜ (νŒ¨ν‚€μ§€: λΉ„μŠ·ν•œ 클래슀 묢음)
  • νŒ¨ν‚€μ§€κ°€ 없을 μ‹œ defaultνŒ¨ν‚€μ§€μ— 생성 됨 (μ–΄μ°Œλλ“  νŒ¨ν‚€μ§€μ— 생성됨)
  • package 클래슀경둜 ;

2. 클래슀의 ꡬ성멀버

ν΄λž˜μŠ€μ—λŠ” 객체가 κ°€μ Έμ•Όν•  ꡬ성 멀버가 μ„ μ–Έλœλ‹€.

1) ν•„λ“œ

  • 객체의 κ³ μœ λ°μ΄ν„°, λΆ€ν’ˆ 객체, μƒνƒœ 정보λ₯Ό μ €μž₯ν•˜λŠ” 곳이닀.
  • λ³€μˆ˜μ™€ λ‹€λ₯Έμ μ€ μƒμ„±μžμ™€ λ©”μ†Œλ“œ 전체에 μ‚¬μš©λ˜λ©° 객체가 μ†Œλ©Έλ˜μ§€ μ•ŠλŠ” ν•œ μ‘΄μž¬ν•œλ‹€.
  • property = ν”„λ‘œνΌν‹° = 속성

2) μƒμ„±μž

  • newμ—°μ‚°μžλ‘œ ν˜ΈμΆœλ˜λŠ” νŠΉλ³„ν•œ λ©”μ†Œλ“œμ΄λ‹€.
  • newλ₯Ό ν˜ΈμΆœν•˜λ©΄ νž™μ˜μ—­μ— μƒμ„±λœλ‹€.
  • 객체생성 μ‹œ μ΄ˆκΈ°ν™”λ₯Ό λ‹΄λ‹Ή OR λ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν•΄ 객체λ₯Ό μ‚¬μš©ν•  μ€€λΉ„λ₯Ό ν•œλ‹€.

3) λ©”μ†Œλ“œ

  • 객체의 λ™μž‘μ— ν•΄λ‹Ήν•˜λŠ” μ€‘κ΄„ν˜Έ{ } μ‹€ν–‰ 블둝이닀.
  • λ©”μ†Œλ“œλ₯Ό μ‹€ν–‰ν•˜λ©΄ μ€‘κ΄„ν˜Έμ— μžˆλŠ” λͺ¨λ“  μ½”λ“œλ“€μ΄ μ‹€ν–‰λœλ‹€.
  • ν•„λ“œλ₯Ό 읽고 μˆ˜μ •ν•˜λŠ” 역할을 ν•œλ‹€.
  • 객체 κ°„ 데이터λ₯Ό μ „λ‹¬ν•˜λŠ” μˆ˜λ‹¨μ΄λ‹€.


πŸ“š Reference

μ‹ μš©κΆŒ, γ€Žν˜Όμžκ³΅λΆ€ν•˜λŠ” μžγ€, ν•œλΉ›λ―Έλ””μ–΄(2023)

profile
κ°œλ°œμ„ κ°œλ°œκ΄΄λ°œν•˜μ§€ μ•ŠκΈ° μœ„ν•œ λ…Έλ ₯

0개의 λŒ“κΈ€