κ°μ²΄μ§ν₯μ 4κ°μ§ νΉμ§
1. μΊ‘μν
λ°μ΄ν°μ κ·Έ λ°μ΄ν°λ₯Ό μ²λ¦¬νλ λ©μλλ₯Ό νλμ λ¨μλ‘ λ¬Άλ κ²μ λλ€.
μ΄λ₯Ό ν΅ν΄ λ΄λΆ ꡬνμ μ¨κΈ°κ³ , μΈλΆμμ μ§μ μ κ·Όνμ§ λͺ»νλλ‘ λ³΄νΈν©λλ€.
ν΄λμ€ λ΄λΆμ λ³μλ privateλ‘ μ μΈνκ³ , μΈλΆμμ μ κ·ΌνκΈ° μν΄ getterμ setter λ©μλλ₯Ό μ 곡ν©λλ€.
2. μμ
ν΄λμ€λ₯Ό ν΅ν΄ λ€λ₯Έ ν΄λμ€μ μμ±κ³Ό λ©μλλ₯Ό λ¬Όλ €λ°μ κΈ°λ₯μ λλ€.
μ΄λ₯Ό ν΅ν΄ μ½λμ μ¬μ¬μ©μ±μ λμ΄κ³ , κ³μΈ΅ ꡬ쑰λ₯Ό νμ±ν μ μμ΅λλ€.
μμ ν΄λμ€λ λΆλͺ¨ ν΄λμ€μ μμ±κ³Ό λ©μλλ₯Ό μμλ°μ μ¬μ©ν μ μμΌλ©° ,
νμμ λ°λΌ λ©μλλ₯Ό μ€λ²λΌμ΄λνμ¬ λ³κ²½ν μ μμ΅λλ€.
3. λ€νμ±
κ°μ μ΄λ¦μ λ©μλκ° μλ‘ λ€λ₯Έ λμμ ν μ μλ μ±μ§μ λλ€.
μ΄λ λ©μλ μ€λ²λ‘λ©(κ°μ λ©μλ μ΄λ¦μ μ¬μ©νλ 맀κ°λ³μμ νμ μ΄λ κ°μλ₯Ό λ€λ₯΄κ² νλκ²)κ³Ό
λ©μλ μ€λ²λΌμ΄λ©(λΆλͺ¨ ν΄λμ€μ λ©μλλ₯Ό μμ ν΄λμ€μμ μ¬μ μ νλ κ²)μ ν΅ν΄ ꡬνλ©λλ€.
λ€νμ±μ ν΅ν΄ μ½λμ μ μ°μ±μ λμΌ μ μμ΅λλ€.
4. μΆμν
볡μ‘ν μμ€ν μμ μ€μν λΆλΆλ§μ μΆμΆνμ¬ νννλ κ²μ λλ€.
μλ°μμλ μΆμ ν΄λμ€μ μΈν°νμ΄μ€λ₯Ό μ¬μ©νμ¬ κ΅¬ν ν©λλ€.
μ΄λ₯Ό ν΅ν΄ κ°μ²΄μ νμμ μΈ μμ±κ³Ό νλλ§μ μ μνκ³ ,
ꡬ체μ μΈ κ΅¬νμ μλΈν΄λμ€μμ λ΄λΉνκ² ν μ μμ΅λλ€.
μ΄ λ€ κ°μ§ νΉμ§μ κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μ ν΅μ¬ μμΉμΌλ‘
μ½λμ μ μ§λ³΄μμ±κ³Ό μ¬μ¬μ©μ±μ λμ΄κ³
볡μ‘ν μμ€ν μ λ³΄λ€ μ½κ² κ΄λ¦¬ν μ μλλ‘ ν©λλ€.
μ€λ²λΌμ΄λ©μ΄λ?
μμ κ΄κ³μ μλ λΆλͺ¨ ν΄λμ€μ λ©μλλ₯Ό μμ ν΄λμ€κ° μ¬μ μνμ¬ μ¬μ©νλ κ²μ λ§ν©λλ€.
μ€λ²λΌμ΄λ©μ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μ λ€νμ±(polymorphism)μ ꡬννλ μ€μν κΈ°λ² μ€ νλμ λλ€.
μ€λ²λΌμ΄λ©μ νΉμ§
1. λ©μλ μ΄λ¦κ³Ό νλΌλ―Έν°: μμ ν΄λμ€μμ λΆλͺ¨ ν΄λμ€μ λ©μλλ₯Ό μ€λ²λΌμ΄λ©ν λ,
λ©μλμ μ΄λ¦κ³Ό νλΌλ―Έν° 리μ€νΈ(맀κ°λ³μμ νμ , κ°μ, μμ)κ° λΆλͺ¨ ν΄λμ€μ λ©μλμ λμΌν΄μΌ ν©λλ€
2. λ¦¬ν΄ νμ : λ¦¬ν΄ νμ λ λΆλͺ¨ ν΄λμ€μ λ©μλμ λμΌνκ±°λ κ·Έλ³΄λ€ λ μ’μ λ²μμ νμ μ΄μ΄μΌ ν©λλ€.
μλ° 5 μ΄νλΆν°λ κ³΅λ³ λ°ν νμ (Covariant Return Type)μ΄ νμ©λμ΄,
λΆλͺ¨ ν΄λμ€μ λ©μλλ³΄λ€ λ ꡬ체μ μΈ λ¦¬ν΄ νμ μ κ°μ§ μ μμ΅λλ€.
3. μ κ·Ό μ μ΄μ: μ€λ²λΌμ΄λ©νλ λ©μλλ λΆλͺ¨ ν΄λμ€μ λ©μλλ³΄λ€ λ μ νμ μΈ μ κ·Ό μ μ΄μλ₯Ό κ°μ§ μ μμ΅λλ€.
μλ₯Ό λ€μ΄, λΆλͺ¨ ν΄λμ€μ λ©μλκ° `protected`μ΄λ©΄, μμ ν΄λμ€μμ
μ€λ²λΌμ΄λ©νλ λ©μλλ `protected` λλ `public`μ΄μ΄μΌ ν©λλ€. `private`μ λΆκ°λ₯ν©λλ€
4. μμΈ μ²λ¦¬: μ€λ²λΌμ΄λ©λ λ©μλλ λΆλͺ¨ ν΄λμ€μ λ©μλλ³΄λ€ λ λ§μ μμΈλ₯Ό λμ§ μ μμ΅λλ€.
μ΄λ λΆλͺ¨ ν΄λμ€μ λ©μλκ° μ μΈν μμΈμ λμΌνκ±°λ κ·Έ μμΈμ μμ μμΈλ€λ§ λμ§ μ μμμ μλ―Έν©λλ€.
μ€λ²λΌμ΄λ©μ νμ©
- λ€νμ±: μ€λ²λΌμ΄λ©μ ν΅ν΄ μμ ν΄λμ€μ κ°μ²΄λ₯Ό λΆλͺ¨ ν΄λμ€ νμ μΌλ‘ μ°Έμ‘°νμ¬
λ€μν ννμ λ©μλ λμμ ꡬνν μ μμ΅λλ€.
- νΉνλ λμ μ 곡: μμ ν΄λμ€λ λΆλͺ¨ ν΄λμ€μ κΈ°λ³Έμ μΈ λμμ μ μ§νλ©΄μ,
μμ λ§μ νΉνλ λμμ μΆκ°νκ±°λ μμ ν μ μμ΅λλ€.
μμ±μ μμμ΄λ?
λΆλͺ¨ ν΄λμ€ μμ±μ νΈμΆ
μμ ν΄λμ€μ μμ±μλ κ°μ²΄ μμ± μ λΆλͺ¨ ν΄λμ€μ μμ±μλ₯Ό νΈμΆνμ¬ λΆλͺ¨ ν΄λμ€μ μ΄κΈ°νλ₯Ό μλ£ν΄μΌ ν©λλ€.
μλ°λ κΈ°λ³Έμ μΌλ‘ λΆλͺ¨ ν΄λμ€μ κΈ°λ³Έ μμ±μ(맀κ°λ³μκ° μλ μμ±μ)λ₯Ό νΈμΆν©λλ€.
λ§μ½ λΆλͺ¨ ν΄λμ€μ κΈ°λ³Έ μμ±μκ° μκ³ λ§€κ°λ³μκ° μλ μμ±μλ§ μ‘΄μ¬ν κ²½μ°,
μμ ν΄λμ€μμ λΆλͺ¨ ν΄λμ€μ μμ±μλ₯Ό λͺ
μμ μΌλ‘ νΈμΆν΄μΌ ν©λλ€.
λΆλͺ¨ ν΄λμ€μ μμ±μλ₯Ό νΈμΆνκΈ° μν΄ `super` ν€μλλ₯Ό μ¬μ©ν©λλ€.
super()λ λ°λμ μμ ν΄λμ€ μμ±μμ 첫 λ²μ§Έ μ€μμ νΈμΆλμ΄μΌ ν©λλ€.
μ€μν μ
- κΈ°λ³Έ μμ±μ: λΆλͺ¨ ν΄λμ€μ κΈ°λ³Έ μμ±μκ° μ‘΄μ¬νμ§ μλλ€λ©΄, μμ ν΄λμ€λ λΆλͺ¨ ν΄λμ€μ 맀κ°λ³μκ° μλ μμ±μλ₯Ό λͺ μμ μΌλ‘ νΈμΆν΄μΌ ν©λλ€.
- λͺ μμ νΈμΆ: super()λ₯Ό μ¬μ©νμ¬ λΆλͺ¨ ν΄λμ€μ μμ±μλ₯Ό λͺ μμ μΌλ‘ νΈμΆν λλ λ°λμ μμ ν΄λμ€ μμ±μμ 첫 λ²μ§Έ μ€μ μμΉν΄μΌ ν©λλ€.
- μλ νΈμΆ: μμ ν΄λμ€μ μμ±μκ° λͺ μμ μΌλ‘ super()λ₯Ό νΈμΆνμ§ μμΌλ©΄, μλ° μ»΄νμΌλ¬κ° μλμΌλ‘ λΆλͺ¨ ν΄λμ€μ κΈ°λ³Έ μμ±μλ₯Ό νΈμΆν©λλ€. νμ§λ§ λΆλͺ¨ ν΄λμ€μ κΈ°λ³Έ μμ±μκ° μμΌλ©΄ μ»΄νμΌ μλ¬κ° λ°μν©λλ€.
μ 리
μλ°μμ μμ±μ μμμ λ°μνμ§ μμΌλ©°, μμ ν΄λμ€λ λΆλͺ¨ ν΄λμ€μ μμ±μλ₯Ό λͺ μμ μΌλ‘ νΈμΆν΄μΌλ§ ν©λλ€.
μ΄λ₯Ό ν΅ν΄ μμ ν΄λμ€λ λΆλͺ¨ ν΄λμ€μ μ΄κΈ°ν κ³Όμ μ ν¬ν¨ν μ μμ΅λλ€.
λ³μμ 3μμ
- λ©λͺ¨λ¦¬μ ν¬κΈ°
- λ©λͺ¨λ¦¬μ μ£Όμ
- λ³μλͺ
μ΅λκ° μ°ΎκΈ° λ‘μ§
μλ°μμ μ΅λκ°μ μ°Ύλ λ‘μ§μ μ£Όμ΄μ§ λ°°μ΄μ΄λ 리μ€νΈ λ±μμ κ°μ₯ ν° κ°μ μ°Ύμλ΄λ κ²μ λλ€.
μ΄λ₯Ό ꡬννκΈ° μν΄ λ°λ³΅λ¬Έκ³Ό λΉκ΅ μ°μ°μλ₯Ό μ¬μ©ν©λλ€.
μλμ κΈ°λ³Έμ μΈ μ΅λκ° μ°ΎκΈ° λ‘μ§μ μμμ ν¨κ» μ€λͺ νκ² μ΅λλ€.
μ μλ°°μ΄μμ μ΅λκ° μ°ΎκΈ° (μ½λ)
public class MaxValueExample {
public static void main(String[] args) {
int[] numbers = {3, 5, 7, 2, 8, -1, 4, 10, 12};
int maxValue = findMaxValue(numbers);
System.out.println("μ΅λκ°μ: " + maxValue);
}
public static int findMaxValue(int[] array) {
// λ°°μ΄μ 첫 λ²μ§Έ μμλ₯Ό μ΄κΈ° μ΅λκ°μΌλ‘ μ€μ
int max = array[0];
// λ°°μ΄μ λ λ²μ§Έ μμλΆν° λ§μ§λ§ μμκΉμ§ μν
for (int i = 1; i < array.length; i++) {
if (array[i] > max) {
// νμ¬ μμκ° νμ¬κΉμ§μ μ΅λκ°λ³΄λ€ ν¬λ©΄, μ΅λκ°μ κ°±μ
max = array[i];
}
}
return max;
}
}
λ‘μ§ μ€λͺ
- μ΄κΈ°ν: λ°°μ΄μ 첫 λ²μ§Έ μμλ₯Ό max λ³μμ μ μ₯ν©λλ€. μ΄ λ³μλ νμ¬κΉμ§ μ°Ύμ μ΅λκ°μ μ μ₯νλ μν μ ν©λλ€.
- λ°λ³΅λ¬Έ: λ°°μ΄μ λ λ²μ§Έ μμλΆν° λ§μ§λ§ μμκΉμ§ μνν©λλ€.
λ°°μ΄μ μΈλ±μ€λ 0λΆν° μμνλ―λ‘,첫 λ²μ§Έ μμλ μ΄λ―Έ maxμ μ μ₯λμ΄ μμ΅λλ€. - 쑰건문: λ°λ³΅λ¬Έμ ν΅ν΄ νμ¬ μμκ° maxλ³΄λ€ ν°μ§ νμΈν©λλ€.
λ§μ½ νμ¬ μμκ° maxλ³΄λ€ ν¬λ€λ©΄,maxλ₯Ό νμ¬ μμλ‘ κ°±μ ν©λλ€. - μ΅λκ° λ°ν: λ°λ³΅λ¬Έμ΄ λλλ©΄ maxμλ λ°°μ΄μ μ΅λκ°μ΄ μ μ₯λμ΄ μμ΅λλ€.
μ΄λ₯Ό λ°ννμ¬ μ΅λκ°μ μ»μ΅λλ€.
κΈ°ν νμ©
μμ μμ λ κΈ°λ³Έμ μΈ μ μ λ°°μ΄μμ μ΅λκ°μ μ°Ύλ λ°©λ²μ 보μ¬μ€λλ€.
κ·Έλ¬λ λ€μκ³Ό κ°μ λ€μν κ²½μ°μλ λμΌν λ‘μ§μ μμ©ν μ μμ΅λλ€:
- 리μ€νΈμμ μ΅λκ° μ°ΎκΈ°: λ°°μ΄ λμ 리μ€νΈλ₯Ό μ¬μ©νμ¬ λμΌν λ°©λ²μΌλ‘ μ΅λκ°μ μ°Ύμ μ μμ΅λλ€.
- λ€λ₯Έ λ°μ΄ν° νμ
: λ¬Έμμ΄, κ°μ²΄ λ± λ€λ₯Έ λ°μ΄ν° νμ
μμλ μ μ ν λΉκ΅ κΈ°μ€
(μ: λ¬Έμμ΄μ κΈΈμ΄, κ°μ²΄μ νΉμ νλ κ°)μ μ¬μ©νμ¬ μ΅λκ°μ μ°Ύμ μ μμ΅λλ€. - 볡μ‘ν 쑰건: 볡μ‘ν 쑰건μ λ°λΌ μ΅λκ°μ μ°Ύκ³ μΆμ λλ 쑰건문μ μ μ ν μμ νμ¬ μνλ κ°μ μ°Ύμ΅λλ€.
μ£Όμμ¬ν
- λΉ λ°°μ΄/리μ€νΈ μ²λ¦¬: μ
λ ₯λ λ°°μ΄μ΄λ 리μ€νΈκ° λΉ κ²½μ°, μ΅λκ°μ μ°Ύλ λ‘μ§μ μ μ ν μ²λ¦¬λμ΄μΌ ν©λλ€.
μλ₯Ό λ€μ΄, μμΈλ₯Ό λμ§κ±°λ νΉμ κ°μ λ°νν μ μμ΅λλ€. - μμ κ° μ²λ¦¬: λͺ¨λ κ°μ΄ μμμΌ κ²½μ°μλ μμ λ‘μ§μ λμΌνκ² λμνλ©°, κ·Έ μ€ κ°μ₯ ν° μμ κ°μ μ΅λκ°μΌλ‘ λ°νν©λλ€.
λ΄μ£Όμ λΆλ€ λͺ¨λ κ°μ¬ν©λλ€.
'νμ€ν κ°λ°μ μμ±κ³Όμ πͺ« > γ Java γ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Java] μΉ ν¬λ‘€λ§ (web Crawling) (0) | 2024.07.29 |
---|---|
[Java] λ°°μ΄λ¦¬μ€νΈμ 맡 (0) | 2024.07.16 |
[Java] MVC ν¨ν΄μΌλ‘ μ½λ μμ±νκΈ° (0) | 2024.07.16 |
[Java] λ₯λ ₯ λ¨μ νκ° (0) | 2024.07.12 |
[Java] μλ° μ©μ΄ μ 리 (0) | 2024.07.10 |