Search

Java μ†Œκ°œ

Java ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄

객체λ₯Ό μ‚¬μš©ν•˜μ—¬ μ»΄ν“¨ν„°μ—κ²Œ λͺ…령을 λ³΄λ‚΄λŠ” 문자 체계 객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄
JavaλŠ” κ°€μž₯ μΈκΈ°μžˆλŠ” ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄ 쀑 ν•˜λ‚˜μ΄λ©°, μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜, λͺ¨λ°”일 μ• ν”Œλ¦¬μΌ€μ΄μ…˜, λ°μŠ€ν¬ν†± μ• ν”Œλ¦¬μΌ€μ΄μ…˜, κ²Œμž„, λ°μ΄ν„°λ² μ΄μŠ€ μ—°κ²°, 그리고 기타 λ§Žμ€ 것듀을 κ°œλ°œν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. 이λ₯Ό μœ„ν•΄ Java κ°œλ°œν™˜κ²½μ„ μ„€μΉ˜ν•˜λŠ” 것은 ν•„μˆ˜μ μž…λ‹ˆλ‹€.

객체

속성과 κΈ°λŠ₯을 가진 λŒ€μƒ
β€’
λ‘œλ΄‡, μžλ™μ°¨, 동물, 학생, μ„ μƒλ‹˜, κ³Όλͺ© λ“±

객체지ν–₯ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄ (OOP)

ν˜„μ‹€ μ„Έκ³„μ˜ 객체(Object)λ₯Ό λͺ¨λΈλ§ν•˜κ³ , μ΄λŸ¬ν•œ 객체듀 κ°„μ˜ μƒν˜Έμž‘μš©μ„ 기반으둜 ν”„λ‘œκ·Έλž¨μ„ μ„€κ³„ν•˜λŠ” ν”„λ‘œκ·Έλž˜λ° νŒ¨λŸ¬λ‹€μž„

νŠΉμ§•

νŠΉμ§•
μ„€λͺ…
μΊ‘μŠν™” (Encapsulation)
κ΄€λ ¨λœ 데이터와 λ©”μ„œλ“œλ₯Ό ν•˜λ‚˜μ˜ λ‹¨μœ„λ‘œ λ¬Άμ–΄ μΊ‘μŠν™”. 정보 은닉을 톡해 객체 λ‚΄λΆ€μ˜ κ΅¬ν˜„μ„ 외뢀에 감좔고 ν•„μš”ν•œ λΆ€λΆ„λ§Œμ„ κ³΅κ°œν•˜μ—¬ λͺ¨λ“ˆμ„±μ„ λ†’μž„.
상속 (Inheritance)
이미 μ‘΄μž¬ν•˜λŠ” 클래슀의 νŠΉμ„±κ³Ό λ™μž‘μ„ μƒˆλ‘œμš΄ ν΄λž˜μŠ€κ°€ 상속받아 μž¬μ‚¬μš© κ°€λŠ₯. μ½”λ“œμ˜ μž¬μ‚¬μš©μ„±κ³Ό 계측 ꡬ쑰λ₯Ό μ œκ³΅ν•˜μ—¬ μœ μ§€λ³΄μˆ˜λ₯Ό μš©μ΄ν•˜κ²Œ 함.
λ‹€ν˜•μ„± (Polymorphism)
같은 μ΄λ¦„μ˜ λ©”μ„œλ“œλ‚˜ μ—°μ‚°μžκ°€ λ‹€λ₯Έ 데이터 νƒ€μž…μ— λŒ€ν•΄ λ‹€λ₯΄κ²Œ λ™μž‘. μ˜€λ²„λ‘œλ”©κ³Ό μ˜€λ²„λΌμ΄λ”©μ„ 톡해 κ΅¬ν˜„λ˜λ©°, μ½”λ“œμ˜ μœ μ—°μ„±κ³Ό μž¬μ‚¬μš©μ„±μ„ μ¦κ°€μ‹œν‚΄.
좔상화 (Abstraction)
λ³΅μž‘ν•œ μ‹œμŠ€ν…œμ—μ„œ 핡심 κΈ°λŠ₯μ—λ§Œ μ΄ˆμ μ„ λ§žμΆ”κ³  λΆˆν•„μš”ν•œ μ„ΈλΆ€ 사항을 μˆ¨κΈ°λŠ” 것. ν΄λž˜μŠ€μ™€ μΈν„°νŽ˜μ΄μŠ€λ₯Ό 톡해 좔상화λ₯Ό κ΅¬ν˜„ν•˜μ—¬ μ½”λ“œμ˜ 가독성과 관리 μš©μ΄μ„±μ„ ν–₯상.
ν΄λž˜μŠ€μ™€ 객체
ν΄λž˜μŠ€λŠ” 객체λ₯Ό λ§Œλ“€κΈ° μœ„ν•œ ν…œν”Œλ¦ΏμœΌλ‘œ, κ°μ²΄λŠ” 클래슀의 μΈμŠ€ν„΄μŠ€. ν΄λž˜μŠ€λŠ” 속성과 λ©”μ„œλ“œλ₯Ό μ •μ˜ν•˜λ©°, κ°μ²΄λŠ” 이λ₯Ό μ΄μš©ν•˜μ—¬ λ™μž‘.
λ©”μ‹œμ§€ νŒ¨μ‹±
객체 κ°„μ˜ μƒν˜Έμž‘μš©μ€ λ©”μ‹œμ§€ 전달을 톡해 이루어짐. κ°μ²΄λŠ” λ‹€λ₯Έ κ°μ²΄μ—κ²Œ λ©”μ‹œμ§€λ₯Ό λ³΄λ‚΄κ±°λ‚˜ λ°›μ•„ μ²˜λ¦¬ν•¨μœΌλ‘œμ¨ ν˜‘λ ₯.
동적 바인딩
μ‹€ν–‰ μ‹œκ°„μ— 객체의 λ©”μ„œλ“œκ°€ μ–΄λ–€ 것을 ν˜ΈμΆœν• μ§€λ₯Ό κ²°μ •. λ‹€ν˜•μ„±κ³Ό 관련이 있으며, μ‹€ν–‰ 쀑에 객체의 νƒ€μž…μ— 따라 μ μ ˆν•œ λ©”μ„œλ“œκ°€ 호좜됨.

μ’…λ₯˜

1.
Java: 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ„ κ°•μ‘°ν•˜λŠ” μ–Έμ–΄λ‘œ, ν”Œλž«νΌ 독립적인 νŠΉμ§•μ„ 가지고 μžˆμŠ΅λ‹ˆλ‹€. JavaλŠ” λŒ€κ·œλͺ¨ μ‘μš© ν”„λ‘œκ·Έλž¨ 및 λͺ¨λ°”일 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ κ°œλ°œμ— 널리 μ‚¬μš©λ©λ‹ˆλ‹€.
2.
C++: C μ–Έμ–΄λ₯Ό 기반으둜 ν•œ 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ‘œ, μ €μˆ˜μ€€ 및 κ³ μˆ˜μ€€ ν”„λ‘œκ·Έλž˜λ° λͺ¨λ‘ κ°€λŠ₯ν•©λ‹ˆλ‹€. κ²Œμž„ 개발, μ‹œμŠ€ν…œ ν”„λ‘œκ·Έλž˜λ° λ“± λ‹€μ–‘ν•œ λΆ„μ•Όμ—μ„œ μ‚¬μš©λ©λ‹ˆλ‹€.
3.
C#: Microsoftμ—μ„œ κ°œλ°œν•œ μ–Έμ–΄λ‘œ, 주둜 Windows ν”Œλž«νΌμ—μ„œ μ‚¬μš©λ˜λ©°, κ²Œμž„ κ°œλ°œμ— 많이 ν™œμš©λ˜λŠ” μ–Έμ–΄ 쀑 ν•˜λ‚˜μž…λ‹ˆλ‹€.
4.
Python: 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ„ μ§€μ›ν•˜λŠ” λ‹€λͺ©μ  ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ‘œ, κ°„κ²°ν•˜κ³  읽기 μ‰¬μš΄ 문법을 가지고 μžˆμ–΄ λ§Žμ€ λΆ„μ•Όμ—μ„œ μ‚¬μš©λ©λ‹ˆλ‹€.
5.
Ruby: 동적 타이핑을 μ§€μ›ν•˜λ©° 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ„ κ°•μ‘°ν•˜λŠ” μ–Έμ–΄λ‘œ, μ›Ή 개발 ν”„λ ˆμž„μ›Œν¬μΈ Ruby on Railsμ—μ„œ 많이 μ‚¬μš©λ©λ‹ˆλ‹€.
6.
Swift: Apple이 iOS 및 macOS μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ κ°œλ°œν•˜κΈ° μœ„ν•΄ λ§Œλ“  μ–Έμ–΄λ‘œ, κ°•λ ₯ν•œ 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ° κΈ°λŠ₯을 가지고 μžˆμŠ΅λ‹ˆλ‹€.