π©· Javaμ ν¨μλ?
Javaμμμ ν¨μλ λ³΄ν΅ λ©μλλΌκ³ λΆλ¦¬λ©°, λ©μλλ νΉμ μμ μ μννλ
κΈ°λ₯μ κ°μ§λλ€. λ°λ³΅μ μΈ μμ μ νΌνκΈ° μν΄ μ¬μ©λ©λλ€.
π λ©μλμ μ μ
- μλ°μμμ ν¨μλ μΌλ°μ μΌλ‘ λ©μλ(method)λΌκ³ λΆλ¦¬λ©°, κ°μ²΄μ νλμ μ μν©λλ€.
- μλ°λ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ° μΈμ΄μ΄κΈ° λλ¬Έμ, λͺ¨λ ν¨μλ ν΄λμ€μ μΌλΆλ‘ μ‘΄μ¬ν©λλ€.
- μ΄λ₯Ό ν΅ν΄ λ°μ΄ν°(μμ±)μ κΈ°λ₯(λ©μλ)μ ν¨κ» μΊ‘μννμ¬, λͺ¨λμ±, μ¬μ¬μ©μ±, μ 보 μλ λ±μ κ°μ²΄ μ§ν₯μ μ£Όμ μμΉμ μ€νν©λλ€.
- 맀κ°λ³μμ μλ μ νμ΄ μμ΅λλ€.
π€ ν¨μ(λ©μλ)μ μ’ λ₯
νμ€ ν¨μ (Standard Functions) |
μ¬μ©μ μ μ ν¨μ (User-Defined Functions) |
|
μ μ | νλ‘κ·Έλλ° μΈμ΄μ λΌμ΄λΈλ¬λ¦¬μ λ΄μ₯λμ΄ μλ ν¨μ |
νλ‘κ·Έλλ¨Έκ° νΉμ μμ
μ μννκΈ° μν΄ μ§μ μμ±νλ ν¨μ |
νΉμ§ | λ΄μ₯ κΈ°λ₯, μ λ’°μ±, μ΄μμ± | λ§μΆ€ν ꡬν, μ μ°μ±, μ¬μ¬μ©μ± |
μμ | Math.sqrt(double a), System.out.println(String x), Arrays.sort(array) |
νλ‘κ·Έλλ¨Έκ° νΉμ μμ μ μννκΈ° μν΄ μ§μ μμ±νλ ν¨μ |
π€ λ©μλμ μ€μμ±
1. λͺ¨λμ±(Modularity)
ν¨μλ₯Ό μ¬μ©νλ©΄ ν° νλ‘κ·Έλ¨μ μμ, κ΄λ¦¬νκΈ° μ¬μ΄ λΆλΆμΌλ‘ λλ μ μμ΅λλ€.
μ΄λ κ² λͺ¨λνλ μ½λλ μ΄ν΄νκΈ° μ½κ³ , ν μ€νΈνκΈ° μ½κ³ , μ μ§λ³΄μνκΈ° μ¬μμ§λλ€.
κ° ν¨μλ νΉμ μμ μ μννκ³ , νλ‘κ·Έλ¨μ λ€λ₯Έ λΆλΆκ³Ό λ 립μ μΌλ‘ κ°λ°λ μ μμ΅λλ€.
μ΄λ κ°λ° νλ‘μΈμ€λ₯Ό κ°μννκ³ , μ€λ₯λ₯Ό μ½κ² μλ³νκ³ μμ ν μ μκ² ν©λλ€.
2. μ¬μ¬μ©μ±(Reusability)
μΌλ¨ μ μ€κ³λ ν¨μλ₯Ό κ°λ°νλ©΄, κ·Έ ν¨μλ λ€μν νλ‘κ·Έλ¨μμ μ¬μ¬μ©λ μ μμ΅λλ€.
ν¨μλ₯Ό ν΅ν΄ μ½λμ μ€λ³΅μ νΌνκ³ , κ°μ μ½λλ₯Ό μ¬λ¬ κ³³μμ μ¬μ©ν¨μΌλ‘μ¨ κ°λ° μκ°μ μ μ½ν μ μμ΅λλ€.
μλ₯Ό λ€μ΄, λ°μ΄ν° κ²μ¦, μν κ³μ° λ±μ μννλ ν¨μλ λ€μν νλ‘κ·Έλ¨μμ λμΌνκ² νμν μ μμ΅λλ€.
3. μ 보 μλ(Information Hiding)
ν¨μλ μΈλΆ ꡬνμ μ¨κΈ°λ©΄μ νΉμ κΈ°λ₯μ μ 곡ν μ μμ΅λλ€.
ν¨μλ₯Ό μ¬μ©νλ μ¬μ©μλ ν¨μκ° μ΄λ»κ² κ·Έ μμ μ μννλμ§ μ νμ μμ΄, μ λ ₯μ μ 곡νκ³ κΈ°λνλ μΆλ ₯μ λ°μ μ μμ΅λλ€.
μ΄λ μμ€ν μ 볡μ‘μ±μ μ€μ΄κ³ , μ¬μ©μκ° μμ€ν μ λ€λ₯Έ λΆλΆμ μν₯μ μ£Όμ§ μκ³ λ μ½λλ₯Ό λ³κ²½νκ±°λ κ°μ ν μ μκ² ν©λλ€.
4. μ μ§ λ³΄μμ±(Maintainability)
ν¨μλ‘ μ½λλ₯Ό ꡬμ±νλ©΄ κ° λΆλΆμ΄ μ μ μλμ΄ μμ΄ νλ‘κ·Έλ¨μ λ μ½κ² μ΄ν΄νκ³ κ΄λ¦¬ν μ μμ΅λλ€.
λ¬Έμ κ° λ°μνκ±°λ μꡬ μ¬νμ΄ λ³κ²½λμμ λ, κ΄λ ¨ ν¨μλ§ μμ νλ©΄ λλ―λ‘ μ 체 μ½λ κΈ°λ°μ λν μ΄ν΄ μμ΄λ λ³κ²½μ μ μ©ν μ μμ΅λλ€.
5. ν μ€νΈ μ©μ΄μ±(Testability)
ν¨μ λ¨μλ‘ μ½λλ₯Ό λΆλ¦¬νλ©΄ κ° ν¨μμ λν λ¨μ ν μ€νΈκ° κ°λ₯ν΄μ§λλ€.
μ΄λ μννΈμ¨μ΄ κ°λ°μμ λ§€μ° μ€μν λΆλΆμΌλ‘, κ° ν¨μμ λμμ μ νν κ²μ¦ν μ μμ΅λλ€.
ν¨μκ° μμλλ‘ λμνλμ§ νμΈν¨μΌλ‘μ¨ μ 체 μμ€ν μ μ λ’°μ±μ ν₯μν μ μμ΅λλ€.
6. μΆμν(Abstraction)
ν¨μλ 볡μ‘ν μμ μ μΆμννλ λ° λμμ μ€λλ€. νλ‘κ·Έλλ¨Έλ 볡μ‘ν λ‘μ§μ ν¨μ λ€μ μ¨κΈ°κ³ , κ°λ¨ν μΈν°νμ΄μ€λ₯Ό ν΅ν΄ ν΄λΉ κΈ°λ₯μ μ 곡ν μ μμ΅λλ€. μ΄λ νλ‘κ·Έλ¨μ μ 체μ μΈ μ€κ³λ₯Ό λ¨μννκ³ , λ λμ μμ€μ νλ‘κ·Έλλ°μ κ°λ₯νκ² ν©λλ€.
π©΅ λ©μλμ ꡬ쑰
- λ©μλλ ν΄λμ€ λ΄μ μ μλλ©°, νΉμ μμ μ μννλ μ½λ λΈλ‘μ λλ€.
λ©μλλ νΈμΆ(call)λ λ μ€νλλ©°, μ λ ₯(맀κ°λ³μ), μ²λ¦¬, κ·Έλ¦¬κ³ μΆλ ₯(λ°νκ°)μ μμλ‘ λμν©λλ€.
μ κ·Όμ μ΄μ λ°ννμ
λ©μλλͺ
(맀κ°λ³μλͺ©λ‘) {
// μ€ν μ½λ
return λ°νκ°;
}
- μ κ·Όμ μ΄μ(Access Modifier): λ©μλμ μ κ·Όν μ μλ λ²μλ₯Ό μ§μ ν©λλ€ (public, protected, private, μλ΅ κ°λ₯).
- λ°ννμ (Return Type): λ©μλκ° λ°ννλ κ°μ λ°μ΄ν° νμ μ λͺ μν©λλ€. λ°νκ°μ΄ μλ κ²½μ° voidλ₯Ό μ¬μ©ν©λλ€.
- λ©μλλͺ (Method Name): λ©μλλ₯Ό νΈμΆν λ μ¬μ©νλ μ΄λ¦μ λλ€.
- 맀κ°λ³μλͺ©λ‘(Parameter List): λ©μλ νΈμΆ μ νμν μ λ ₯κ°μ μ μν©λλ€. μ¬λ¬ 맀κ°λ³μλ μ½€λ§λ‘ ꡬλΆν©λλ€.
- λ°νκ°(Return Value): λ©μλ μ€ν ν κ²°κ΄κ°μ λ°νν©λλ€. voidμΈ κ²½μ° λ°ννμ§ μμ΅λλ€.
Example )
1. λ©μλ μ μ
public class MySum {
// λ μ μμ ν©μ λ°ννλ λ©μλ
public int sum(int num1, int num2) {
int sum = num1 + num2;
return sum;
}
}
2. λ©μλ νΈμΆ
public class Main {
public static void main(String[] args) {
MySum mySum = new MySum();
// μΈμ€ν΄μ€ λ©μλλ κ°μ²΄λ₯Ό μμ± ν μ¬μ© κ°λ₯. νλ¨ μ°Έμ‘°
int result = mySum(5, 3);
System.out.println("Result: " + result); // μΆλ ₯: Result: 8
}
}
ν¨μλ νλ‘κ·Έλλ°μ λμ± ν¨μ¨μ μΌλ‘ κ΄λ¦¬νκΈ° μ¬μ΄ μμ μΌλ‘ λ§λλλ€!
λ€μ ν¬μ€νΈμμλ ν¨μμ λν΄μ μ΄μ΄λκ°κ² μ΅λλ€.
πβοΈ
'βJava' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Java μ΄ν΄νκΈ°] 7. μλ°μ μ μ΄λ¬Έ (2) | 2024.05.11 |
---|---|
[Java μ΄ν΄νκΈ°] 6. μλ°μ ν¨μ(λ©μλ)λ? (2) (2) | 2024.05.04 |
[Java μ΄ν΄νκΈ°] 4. μλ°μ μ°μ°μ (2) | 2024.04.26 |
[Java μ΄ν΄νκΈ°] 3. μλ°μ λ°μ΄ν° νμ μ΄λ? (2) | 2024.04.26 |
[Java μ΄ν΄νκΈ°] 2. μλ°μ λ³μμ μμ (2) | 2024.04.26 |