java
lambda
byeol_dev
2023. 7. 6. 12:15
λλ€ / κΈ°μ‘΄ λ°©μ λΉκ΅
λλ€ μ¬μ© μ μ½λ κ°κ²°ν
package test1;
public class OuterClass {
int age;
class MemberInner{} //member(Inner)Class (OuterClass μμ μλ λ©€λ² ν΄λμ€)
public void aaa(){
//λ©μλ μμμλ ν΄λμ€ μμ± κ°λ₯(λ‘컬 ν΄λμ€)
class LocalClass{} //local(inner)class
}
public void runPrint(){
//κΈ°μ‘΄ λ°©μ
//ν΄λμ€μ λν κ°μ²΄λ₯Ό μμ±ν΄μ λ©μλ νΈμΆ
MyPrint p = new MyPrint();
p.print("java");
//μ΅λͺ
ν΄λμ€λ₯Ό μ¬μ©ν΄μ λ©μλ νΈμΆ
//Printable p1 = new Printable(); μΈν°νμ΄μ€λ μμ±μ μκΈ° λλ¬Έμ μ€λ₯.
Printable p1 = new Printable() {
@Override
public void print(String s) { //λ©μλ
System.out.println(s);
}
};
p1.print("java");
//λλ€ λ°©μ(μλ³Έ) printλΌλ μΆμ λ©μλλ₯Ό ꡬνν κ²
Printable p2 = (String s) -> { //Printableμ ꡬνλ λ©μλκ° 2κ°λ©΄ λλ€ μ¬μ© X
System.out.println(s);
};
p2.print("java");
}
}
//λ©μλλ₯Ό μ°λ €λ©΄ -> μΈν°νμ΄μ€ κ°μ²΄ μμ±x μΈν°νμ΄μ€λ₯Ό ꡬνν ν΄λμ€κ° μμ΄μΌ ν¨.
interface Printable{
//μΆμ λ©μλ
void print(String s);
}
class MyPrint implements Printable{
@Override
public void print(String s) {
System.out.println(s);
}
}
λλ€ μ¬μ© νμ¬ κ°κ²°ν μν€λ κ³Όμ
package test1;
interface LGprint{
void print(String s);
}
public class Lambda1 {
public static void main(String[] args) {
//λ§€κ°λ³μ μ 보λ λ£μ΄μ€μΌ ν¨!(λ³μλͺ
μ λ°λμ΄λ μλ£νμ λ³κ²½ X)
//λ©μλ μ μ
LGprint p1 = (String str) -> {
//μνλ print λ©μλμ λ΄μ© μ½λ
System.out.println(str);
};
//λ©μλ νΈμΆ
p1.print("java");
//μλ£ν μλ΅ κ°λ₯, () μλ΅ κ°λ₯. (μ΄μ°¨νΌ λ³κ²½ μλκΈ° λλ¬Έμ)
LGprint p2 = s -> //{
System.out.println(s + s);
//}; μ€νλ¬Έ 1μ€μ΄λ©΄ μ€κ΄νΈ μλ΅ κ°λ₯
p2.print("java");
}
}