π Javaλ?
κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ° (Object Oriented Programming) μΈμ΄λ‘,
ν΄λμ€μ κ°μ²΄λ₯Ό μ¬μ©νμ¬ νλ‘κ·Έλ¨μ ꡬ쑰ννκ³ λͺ¨λν ν©λλ€.
π Javaμ νΉμ§
1. μΆμν (Abstraction)
μΆμνλ 볡μ‘ν μ€μΈκ³λ₯Ό λ¨μννλ κ³Όμ μ μλ―Έν©λλ€. νλ‘κ·Έλλ°μμλ μ€μν μ 보λ§μ μΆλ €λ΄κ³ λΆνμν μ 보λ μ κ±°νμ¬ μ€κ³λ₯Ό λ¨μνκ² λ§λλ κΈ°λ²μ μλ―Έν©λλ€. μλ₯Ό λ€μ΄, 'μλμ°¨'λΌλ ν΄λμ€λ₯Ό μ€κ³ν λ μμ§μ μλ μ리λ μ°¨λμ λ΄λΆ ꡬ쑰보λ€λ κΈ°λ₯(κ°μ, μ λ λ±)μ μ΄μ μ λ§μΆ₯λλ€.
2. μΊ‘μν (Encapsulation)
μΊ‘μνλ κ°μ²΄μ λ°μ΄ν°(μμ±)μ κ·Έ λ°μ΄ν°λ₯Ό μ‘°μνλ λ©μλλ₯Ό νλλ‘ λ¬Άλ κ²μ μλ―Έν©λλ€. μ΄λ₯Ό ν΅ν΄ ν΄λμ€ λ΄λΆμ ꡬνμ μ¨κΈ°κ³ μΈλΆλ‘λΆν°μ μ§μ μ μΈ μ κ·Όμ μ νν©λλ€. μλ₯Ό λ€μ΄, ν΄λμ€μ νλλ λ³΄ν΅ privateμΌλ‘ μ μΈνκ³ , ν΄λΉ νλλ₯Ό μ‘°μν μ μλ λ©μλλ publicμΌλ‘ μ 곡νλ λ°©μμ λλ€.
3. λ€νμ± (Polymorphism)
λ€νμ±μ 'λ§μ ννλ₯Ό κ°μ§'μ μλ―Έν©λλ€. μ¦, νλμ λ©μλλ ν΄λμ€κ° μ¬λ¬ ννλ₯Ό κ°μ§ μ μλλ‘ νλ κΈ°λ₯μ λλ€. μ€λ²λ‘λ©(κ°μ μ΄λ¦μ λ©μλλ₯Ό 맀κ°λ³μμ λ°λΌ λ€λ₯΄κ² λμνλλ‘ ν¨)κ³Ό μ€λ²λΌμ΄λ©(μμλ°μ λ©μλμ κΈ°λ₯μ νμ ν΄λμ€μμ μ¬μ μν¨)μ΄ λνμ μΈ μμμ λλ€. λ€νμ±μ κ°μ μΈν°νμ΄μ€λ₯Ό κ°μ§ κ°μ²΄λ€μ΄ κ°μμ λ°©μμΌλ‘ λ©μλλ₯Ό ꡬννκ² ν΄μ€λλ€.
4. μμ (Inheritance)
μμμ ν ν΄λμ€κ° λ€λ₯Έ ν΄λμ€μ νΉμ±(νλμ λ©μλ)μ μ΄μ΄λ°λ κ²μ μλ―Έν©λλ€. μ΄λ₯Ό ν΅ν΄ μ½λμ μ¬μ¬μ©μ±μ λμ΄κ³ , μ€λ³΅μ μ΅μνν μ μμ΅λλ€. μλ₯Ό λ€μ΄, Vehicleμ΄λΌλ κΈ°λ³Έ ν΄λμ€κ° μκ³ , μ΄λ₯Ό μμλ°λ Carμ Motorcycleμ΄λΌλ μλΈν΄λμ€κ° μμ λ, Carμ Motorcycleμ Vehicleμ μμ±κ³Ό λ©μλλ₯Ό μ¬μ©ν μ μμ΅λλ€.
Javaλ "Write Once, Run Anywhere" (WORA)λΌλ λͺ¨ν λ‘ μ€κ³
μ΄λ Java νλ‘κ·Έλ¨μ μ΄λ€ νλ«νΌμμλ μ€νν μ μμμ μλ―Έν©λλ€.
π Javaμ μ£Όμ κ΅¬μ± μμ
- JDK (Java Development Kit): Java νλ‘κ·Έλ¨μ κ°λ°ν λ νμν μ»΄νμΌλ¬(javac), λΌμ΄λΈλ¬λ¦¬, λꡬλ₯Ό ν¬ν¨ν©λλ€.
- JRE (Java Runtime Environment): Java μ ν리μΌμ΄μ μ μ€νν λ νμν JVMκ³Ό λΌμ΄λΈλ¬λ¦¬, κΈ°ν νμΌλ€μ ν¬ν¨ν©λλ€.
- JVM (Java Virtual Machine): Java λ°μ΄νΈμ½λλ₯Ό μ€ννλ κ°μ λ¨Έμ μΌλ‘, Java μ ν리μΌμ΄μ μ΄ μ¬λ¬ OSμμ λμΌνκ² μ€νλ μ μλλ‘ ν©λλ€. WORAλ₯Ό κ°λ₯νκ² λμμ€λλ€.
β οΈ κΈ°ν νΉμ§
κ°μ²΄ μ§ν₯: Javaλ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°(OOP) μΈμ΄λ‘, ν΄λμ€μ κ°μ²΄λ₯Ό μ¬μ©νμ¬ νλ‘κ·Έλ¨μ ꡬ쑰ννκ³ λͺ¨λν ν©λλ€.
νλ«νΌ λ 립μ±: Java μ ν리μΌμ΄μ μ JVM(Java Virtual Machine) μμμ μ€νλλ―λ‘, Java μ ν리μΌμ΄μ μ΄ μ€νλλ μμ€ν μ OSμ ꡬμ λ°μ§ μμ΅λλ€.
λ©λͺ¨λ¦¬ κ΄λ¦¬: κ°λΉμ§ 컬λ μ μ μ¬μ©ν΄ νλ‘κ·Έλλ¨Έκ° λ©λͺ¨λ¦¬λ₯Ό μλμΌλ‘ κ΄λ¦¬ν νμκ° μμ΅λλ€.
λ€μ€ μ€λ λ: Javaλ λ΄μ₯λ μ€λ λ μ§μμ ν΅ν΄ λ³λ ¬ μ²λ¦¬μ λ©ν°νμ€νΉμ μ½κ² ꡬνν μ μμ΅λλ€.
λ€νΈμν¬ μΌνΈλ¦: λ€νΈμνΉμ μν κ΄λ²μν λΌμ΄λΈλ¬λ¦¬λ₯Ό μ 곡νμ¬, λ€νΈμν¬ κΈ°λ° μ ν리μΌμ΄μ κ°λ°μ κ°νΈνκ² ν©λλ€.
보μ: μλλ°μ€ 보μ λͺ¨λΈμ μ¬μ©νμ¬, μμ€ν 보μμ ν΄μΉμ§ μμΌλ©΄μλ μμ νκ² μ ν리μΌμ΄μ μ μ€νν μ μμ΅λλ€.
κ°λ ₯ν νμ€ λΌμ΄λΈλ¬λ¦¬: Javaλ κ΄λ²μν νμ€ λΌμ΄λΈλ¬λ¦¬(Java Standard Edition)λ₯Ό μ 곡ν©λλ€. λ°μ΄ν° ꡬ쑰, λ€νΈμνΉ, νμΌ μ²λ¦¬ λ± λ€μν μμ μ μ©μ΄νκ² ν©λλ€.
Eclipseλ₯Ό ν΅ν Java λ° λ΄κ°λ³΄κΈ°
public class Hello {
public static void main(String args[]) {
System.out.println("Hello, World !");
}
- main ν¨μλ νλ‘κ·Έλ¨μ μμνκ³ λλ΄μ€λλ€. μ€μ§ νλλ§ μ‘΄μ¬ν©λλ€. OSκ° μ μΌ λ¨Όμ νΈμΆν©λλ€.
- static : 곡μ νλ λͺ©μ μΌλ‘ μ¬μ©ν©λλ€. νλμ 무μΈκ°λ₯Ό μ¬λ¬ λͺ μ΄μ λλ μΈ λ μ¬μ©ν©λλ€. ( λ©λͺ¨λ¦¬ μ μ½ ν¨κ³Ό )
- staticμ objectκ° μμ±λμ§ μμλ λ©λͺ¨λ¦¬κ° μ€νλ©λλ€. μ°μ μμκ° κ°μ₯ λμ΅λλ€.
- outμ λν κ°μ²΄λ₯Ό μμ±νμ§ μμμμλ, νΈμΆμ΄ κ°λ₯ν κ²μ΄ staticμ κ°λ μ΄λΌκ³ λ³Ό μ μμ΅λλ€.
π©΅ νλ‘κ·Έλ¨μ κΈ°λ³Έ ꡬ쑰
- ν΄λμ€: λͺ¨λ Java μ½λλ ν΄λμ€ λ΄λΆμ μ‘΄μ¬ν©λλ€. ν΄λμ€λ κ°μ²΄μ μ€κ³λ μν μ νλ©°, μν(μμ±)μ νμ(λ©μλ)λ₯Ό μ μν©λλ€.
- λ©μλ: νΉμ μμ μ μννλ μ½λμ μ§ν©μ λλ€. νμ(λμ¬)λΌκ³ λ³Ό μ μμ΅λλ€. ν΄λμ€ λ΄μμ μ μλ©λλ€.
- λ³μ: λ°μ΄ν°λ₯Ό μ μ₯νλ λ©λͺ¨λ¦¬ 곡κ°μΌλ‘, νμ μ λ°λΌ λ€μν λ°μ΄ν°λ₯Ό μ μ₯ν μ μμ΅λλ€.
- μμ±μ: κ°μ²΄λ₯Ό μ΄κΈ°ννλ νΉλ³ν μ νμ λ©μλλ‘, ν΄λμ€μ μ΄λ¦μ μ¬μ©ν΄ μ μλ©λλ€.
- ν¨ν€μ§: κ΄λ ¨ ν΄λμ€μ μΈν°νμ΄μ€λ₯Ό κ·Έλ£Ήννλ λ° μ¬μ©λ©λλ€.
𧑠μ κ·Ό μ νμ
- Private : μ΄ ν€μλλ‘ μ μΈλ λ©€λ²λ ν΄λΉ ν΄λμ€ λ΄μμλ§ μ κ·Όμ΄ κ°λ₯ν©λλ€.
- Default : μ κ·Ό μ νμλ₯Ό λͺ μμ μΌλ‘ μ μ₯νμ§ μμΌλ©΄ κΈ°λ³Έμ μΌλ‘ μ μ©λλ©°, κ°μ ν¨ν€μ§ λ΄μ ν΄λμ€μμλ§ μ κ·Όμ΄ κ°λ₯ν©λλ€
- Protected : μΈλΆ ν¨ν€μ§ μ€ μμλ°μ μμλ§ μ κ·Ό κ°λ₯μ΄ κ°λ₯ν©λλ€. κ°μ ν¨ν€μ§ λ΄μ ν΄λμ€λ λΉμ°ν μ κ·Ό κ°λ₯ν©λλ€.
- Public : μ΄ ν€μλλ‘ μ μΈλ λ©€λ²λ μ΄λμλ μ κ·Όν μ μμ΅λλ€. μΈλΆ, λ΄λΆ λͺ¨λ κ°λ₯νλ©°, ν΄λμ€, λ³μ, λ©μλ, μμ±μμ λν μμ ν μ κ·Όμ νμ©ν©λλ€.
π€ λͺ λͺ κ·μΉ
- ν΄λμ€ : 첫 κΈμλ λλ¬Έμλ‘ μμ±ν©λλ€.
- λ©μλ, λ³μ : μλ¬Έμ μμ±, κ°(λ°μ΄ν°)μ μ μ₯νλ λ©λͺ¨λ¦¬ 곡κ°μ λλ€.
- μμ : μ λΆ λλ¬Έμ (ex MAX). λ³νμ§ μλ κ°μ λλ€.
- λ¨μ΄μ λ¨μ΄κ° μ΄μ΄μ§ λ λ λ²μ§Έ λ¨μ΄μ 첫 κΈμλ λλ¬Έμ (ex blackWhite , PinkWhite)
μλ°λ₯Ό μ²μ μ νμ λ€λ©΄ , μ΄λ° κ² μλ€ νκ³ λμ΄κ°λ©΄μ μλμ λ΄μ©λ§ κΈ°μ΅ν΄ μ£ΌμΈμ!
κ°μ²΄λ μ€μνμ μ‘΄μ¬νλ λͺ¨λ κ²μ΄ λ μ μμ΅λλ€. ex) λΆμ΄λΉ΅, ν λΌ
μ€μνμ 물건μ 곡μ₯μμ μ°μ΄λ΄λ―μ΄, 무μΈκ°λ₯Ό λ§λ€κΈ° μν΄μλ ꡬ쑰λ₯Ό μμμΌ ν©λλ€.
λνμ μΈ μμλ‘, ν΄λμ€λ λΆμ΄λΉ΅ νμ λλ€.
ν λΌλ κΉ‘μΆ©κΉ‘μΆ© λ°κΈ°λ νκ³ , λΉκ·Όμ λ¨ΉκΈ°λ ν©λλ€. μ¬κΈ°μ ν λΌλ λ³μ(=λͺ μ¬),
λ¨Ήκ³ λ°λ νμλ λ©μλ(=λμ¬)μ λλ€.
'βJava' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Java μ΄ν΄νκΈ°] 6. μλ°μ ν¨μ(λ©μλ)λ? (2) (2) | 2024.05.04 |
---|---|
[Java μ΄ν΄νκΈ°] 5. μλ°μ ν¨μ(λ©μλ)λ? (1) (2) | 2024.05.04 |
[Java μ΄ν΄νκΈ°] 4. μλ°μ μ°μ°μ (2) | 2024.04.26 |
[Java μ΄ν΄νκΈ°] 3. μλ°μ λ°μ΄ν° νμ μ΄λ? (2) | 2024.04.26 |
[Java μ΄ν΄νκΈ°] 2. μλ°μ λ³μμ μμ (2) | 2024.04.26 |