[java] λλ€μ ν¨μν μΈν°νμ΄μ€
π λλ€?
λλ€λ μ΅λͺ κ°μ²΄λ‘, λ©μλλ₯Ό κ°λ¨ν μμΌλ‘ νννλ λ°©λ²μ΄λ€. μ΅λͺ μ΄λΌλ κ²μ μ΄λ¦μ΄ μλκ²μ μλ―Ένλ€!
μ΄κ±Έ
(a,b) -> a>b ? a:b
μ΄λ κ² κ°λ¨νκ² λ°κΏμ£Όλ κ²μ΄ λλ€μ΄λ€. λ§€κ°λ³μ νμ κ³Ό λ¦¬ν΄ ν€μλλ₯Ό λͺ¨λ μμ ν μ μλ€.
보ν΅μ μ΅λͺ ν¨μλΌκ³ νλλ° μλ°λ λ©μλ λ°μ μκΈ°μ λ©μλλ‘ ν΅μΌν΄μ μκ°νλ € νλ€.
(ν¨μ: ν΄λμ€μ λ 립μ , λ©μλλ ν΄λμ€μ μ’ μμ )
λλ€λ₯Ό μ°λ κ²μ μ½λλ₯Ό κ°κ²°νκ² ν΄μ£Όλ κ²λ μμ§λ§ κ°μΈμ μΈ κ²½ν μ ν¨μμμ ν¨μλ₯Ό μΈμλ‘ λ£μ λ λ§€μ°
μ μ©ν κ² κ°λ€!
π¨ λλ€μμ λ€λ£¨κΈ° μν΄μλ μ°Έμ‘°λ³μ νμ μ μ΄λ»κ² μ ν κΉ?
λλ€μμ κ°μ²΄μ΄λκΉ μ°Έμ‘°λ³μκ° νμνκ³ , μ°Έμ‘°λ³μμ νμ μ΄ νμν κ±°λ€.
++) μ λλ€λ μ΅λͺ κ°μ²΄μΌκΉ?
κ²°κ΅ μλ°λ ν¨μ μμ²΄κ° ν΄λμ€μ μ’ μμ μΈ λ©μλμ΄κΈ°μ λλ€μμ΄ μ΅λͺ κ°μ²΄κ° λ μ λ°μ μλ€. λ©μλ νλλ§ μ‘΄μ¬ν μ μλ€!
++) λλ€μμ μ°Έμ‘°λ³μκ° νμν μ΄μ ?
μμ κ°μ λ΄μ©μΈλ° κ²°κ΅ λλ€κ° κ°μ²΄μ΄κ³ , κ°μ²΄λ₯Ό λ€λ£¨λ €λ©΄ μ°Έμ‘°λ³μκ° νμνκΈ° λλ¬Έμ΄λ€.
μ΄κ±Έ λλ€λ‘ λ°κΎΈλ©΄
νμ obj =(a,b) -> a>b?a:b ; μ΄ λ κ±΄λ° μ΄ objλΌλ μ°Έμ‘°λ³μμ νμ μ λκΉ?
int value=obj.max(3,5); λ₯Ό νκ² λλ©΄ Object ν΄λμ€μ max λ©μλκ° μκΈ°μ μλ¬κ° λ°κ±°λ€.
π ν¨μν μΈν°νμ΄μ€
λλ€μμ λ€λ£¨κΈ° μν μ°Έμ‘°λ³μ νμ μ ν¨μν μΈν°νμ΄μ€λ‘ νλ€. (λλ€μμ λ°νν νμ μ μ§μ ν΄μ€μΌ νλ κ²½μ°)
Myfunction2λ₯Ό νμ μΌλ‘ λ°λ μ°Έμ‘°λ³μ fμ maxν¨μλ₯Ό μ€λ²λΌμ΄λ© ν΄μ€λ€.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
class Main {
@FunctionalInterface
interface MyFunction2{
int max(int a,int b);
}
public static void main(String args[]) throws NumberFormatException, IOException {
MyFunction2 f=new MyFunction2() {
@Override
public int max(int a, int b) {
return a>b?a:b;
}
};
int val=f.max(1,2);
System.out.println(val);
}
}
|
cs |
μ΄κ±Έ λλ€λ‘ κ³ μΉλ©΄ μλμ κ°λ€.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
class Main {
@FunctionalInterface
interface MyFunction2{
int max(int a,int b);
}
public static void main(String args[]) throws NumberFormatException, IOException {
MyFunction2 f=(a,b)->a>b?a:b;
int val=f.max(1,2);
System.out.println(val);
}
}
|
cs |
μ΄λ κ² λλ€λ‘ μ°λ©΄ λλ€λ ν¨μ μ΄λ¦μ μ°μ§ μλ μ΅λͺ κ°μ²΄λκΉ λ©μλκ° μ¬λ¬κ°λ©΄ μκ° max ν¨μμΈκ±Έ μ΄λ»κ² μμμ?? λΌκ³ ν μ μμ§λ§ ν¨μν μΈν°νμ΄μ€λ λ¨ νλμ μΆμλ©μλλ§ κ°κΈ° λλ¬Έμ κ·Έλ° κ±±μ μ ν νμκ° μλ€.
REF
https://www.youtube.com/watch?v=3wnmgM4qK30&list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp&index=158
https://www.youtube.com/watch?v=0Sp9eFRV8gE&list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp&index=159