λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
κ°œλ…μ •λ¦¬

JAVA νŠΉμ§• '객체 μ§€ν–₯ μ–Έμ–΄ (OOP)'

by 솑두뢀 2022. 5. 21.
728x90
λ°˜μ‘ν˜•

JAVA

  • λŒ€ν‘œμ μΈ 객체 μ§€ν–₯ ν”„λ‘œκ·Έλž˜λ°(Object Oriented Programming, OOP) μ–Έμ–΄
  • νŠΉμˆ˜ν•œ 가상 λ¨Έμ‹ (Java Virtual Machine, JVM)이 ν•„μš”ν•˜λ‹€. 

🚩 OOP(Object Oriented Programming)

- ν•˜λ‚˜μ˜ κΈ°λŠ₯을 객체둜 λ§Œλ“€μ–΄μ„œ 객체듀을 μ’…ν•©ν•˜μ—¬ ν”„λ‘œκ·Έλž˜λ°

βœ” >  "μž¬ν™œμš©" κ°€λŠ₯ν•œ ν”„λ‘œκ·Έλž¨μ„ λ§Œλ“œλŠ” 것이닀.

 

🚩JVM (Java Virtual Machine)

  • JAVAκ°€ λ‹€μ–‘ν•œ λΆ„μ•Όμ—μ„œ ν™œμš©ν•  수 μžˆλŠ” 이유
  • JVM이 μ„€μΉ˜λœλ‹€λ©΄ μ–΄λŠ ν™˜κ²½μ—μ„œλ“  μžλ°”λ‘œ 개발된 ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ν•  수 μžˆλ‹€.

 

Q.) 객체 μ§€ν–₯ν˜• ν”„λ‘œκ·Έλž¨(OOP) μ–΄λ–»κ²Œ λ§Œλ“œλŠ”κ°€β”

1) 상속이 κ°€λŠ₯ν•˜κ²Œ λ§Œλ“€μ–΄λΌ

μƒμœ„ 클래슀인 λΆ€λͺ¨λ‘œ λΆ€ν„° λ°›μ•„μ„œ μžμ‹ ν΄λž˜μŠ€κ°€ μ‚¬μš©ν•  수 μžˆλ„λ‘ λ§Œλ“€λ‹€. 

> μž¬μ‚¬μš© 

 

2) μΊ‘μŠν™” = 은닉화 : 보여주고 싢은 κ²ƒλ§Œ 보여쀀닀.

ex 택배 - μ§‘ μ•žκΉŒμ§€ / 경비원 - κ±°μ‹€κΉŒμ§€λ§Œ / μΉœμ²™-μ–΄λ””λ“ 
-> μƒλŒ€κ°€ λˆ„κ΅¬λƒμ—λ”°λΌμ„œ μ‚¬μš©ν•  수 μžˆλŠ” μžμ›μ΄ λ‹€λ₯΄κ²Œ 보여쀀닀.

 

βœ…> λ‚΄κ°€ λ§Œλ“  μ‘μš© ν”„λ‘œκ·Έλž¨μ— μ–΄λ””κΉŒμ§€ μ ‘κ·Ό ν•  수 μžˆλŠ”μ§€

3) 좔상화 : κ°œλ…μ μΈ λΆ€λΆ„

- Q.) μΈν„°νŽ˜μ΄μŠ€κ°€ λ‹€λ₯Έλ° λͺ¨λ‘ ν•Έλ“œν°μ΄λΌ λΆ€λ₯΄λŠ”κ°€ ❔

각기 λ‹€λ₯Έ ν•Έλ“œν°μ΄λΌκ³  해도 좔상화 된 κ°œλ…μœΌλ‘œ 바라보고 μžˆλ‹€.

"선없이 톡화할 수 μžˆλŠ” 물건"' ( 좔상화 )
νœ΄λŒ€ν° ( 객체 )

- Q.) 객체가 무엇인가 ❔

μ‚¬λžŒ ( 좔상화 )
κΉ€νƒœλ¦¬ ( 객체 )
개 고양이 ( 좔상화 )
λͺ½λ£‘이 ( 객체 ) : μš°λ¦¬μ§‘ κ°•μ•„μ§€ 이름

- instance ❔

객체가 생성 된 κ²ƒμœΌλ‘œ insatnce 즉, μž„μ‹œ 객체이닀.
κ°μ²΄λŠ” μ˜μ›ν•˜μ§€ μ•Šλ‹€. λ©”λͺ¨λ¦¬ μœ„μ— λ‘œλ”© λ˜λŠ” 것이 instance이기 λ•Œλ¬Έμ΄λ‹€.
μ „κΈ°κ°€ λ‚˜κ°€λ©΄ ? λ©”λͺ¨λ¦¬λ„ 사라지고 μž„μ˜μ˜ 객체도 μ‚¬λΌμ§ˆκ²ƒμ΄κΈ°μ— instance라 μΉ­ν•œλ‹€.
+) μ‚¬μš©ν•˜μ§€ μ•ŠμœΌλ©΄ 사라지기도함 (아무도 λΆˆλŸ¬μ£Όμ§€ μ•Šλ„€~β™ͺ)

 

4) λ‹€μ–‘μ„±

λ²”λΈ”λΉ„λŠ” λ²”λΈ”λΉ„(객체)
λ²”λΈ”λΉ„λŠ” μžλ™μ°¨μ—μ„œ λ‘œλ΄‡κΉŒμ§€ λ³€ν™˜μ΄ 자유자재
: λ³΄λŠ” λ°©ν–₯에 따라 달리 λ³΄μ΄λŠ” 것

⭐
상속 / 은닉화 / 좔상화 / λ‹€μ–‘μ„±
 4κ°€μ§€λ₯Ό μ΄μš©ν•΄μ„œ 객체 μ§€ν–₯ ν”„λ‘œκ·Έλž¨μ„ λ§Œλ“­λ‹ˆλ‹€.

 

πŸ’­ μ•Œμ•„λ‘λ©΄ 쒋은 κ°œλ…

01. ν•˜λ“œλ””μŠ€ν¬ : μ €μž₯ λ˜μ–΄μžˆλŠ” ν˜•νƒœλ‘œ μ‹€ν–‰βŒ

ν”„λ‘œκ·Έλž¨μ΄ ν•˜λ“œλ””μŠ€ν¬μ— μžˆλ‹€λ©΄ μ €μž₯λ˜μ–΄μžˆλŠ” ν˜•νƒœλ‘œ μ‹€ν–‰λ˜μ§€ μ•ŠλŠ”λ‹€.

ν”„λ‘œκ·Έλž¨μ΄ λ©”λͺ¨λ¦¬ μœ„μ— μ˜¬λΌκ°€μ•Ό μ‹€ν–‰λœλ‹€. (load)

 

ν•˜λ“œλ””μŠ€ν¬μ— μžˆμ„ λ•Œλ₯Ό ν”„λ‘œκ·Έλž¨ (program)

λ©”λͺ¨λ¦¬μ— μ˜¬λΌκ°€μžˆλŠ” ν”„λ‘œκ·Έλž¨μ„ ν”„λ‘œμ„ΈμŠ€ (process)

 

ν•˜λ“œλ””μŠ€ν¬μ— μ—¬λŸ¬κ°œ μ˜¬λΌκ°€ μžˆμ–΄λ„ μ‹€ν–‰βŒ

λ©”λͺ¨λ¦¬μ— μ—¬λŸ¬κ°œ μ˜¬λΌκ°€ λ™μ‹œμ— μ‹€ν–‰λ˜λŠ” λ©€ν‹°νƒœμŠ€ν‚Ή (multi-tasking)

 

02. μ€‘μ•™μ²˜λ¦¬μž₯치 CPU (Central Pocessing Unit)
μ²˜λ¦¬ν•˜λŠ” κ³Όμ •μ—μ„œ ν•œλ°”ν€΄ 돌고 λ‚΄λ €μ˜€λŠ” 것 1hz
ex )μš”μ¦˜ μ»΄ν“¨ν„°λŠ” 4GHz 1μ΄ˆμ— 40μ–΅λ²ˆ 계산

 

03. Thread : ν•˜λ‚˜μ˜ μž‘μ—…λ‹¨μœ„
각각 ν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€ μ•ˆμ—λŠ” μŠ€λ ˆλ“œκ°€ μ‘΄μž¬ν•œλ‹€.

ν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€κ°€ 끝날 λ•ŒκΉŒμ§€ λ‹€λ₯Έ μŠ€λ ˆλ“œκ°€ μ ‘κ·Ό ν•  수 μ—†λ‹€.

μ—¬λŸ¬κ°œμ˜ μŠ€λ ˆλ“œκ°€ λ™μ‹œμ— μ ‘κ·Όν•˜κ³  λŒμ•„κ°€λŠ” 것 -> λ©€ν‹° μŠ€λ ˆλ“œ

728x90
λ°˜μ‘ν˜•

λŒ“κΈ€