lambda

2023. 7. 6. 12:15ใ†java

๋žŒ๋‹ค / ๊ธฐ์กด ๋ฐฉ์‹ ๋น„๊ต

๋žŒ๋‹ค ์‚ฌ์šฉ ์‹œ ์ฝ”๋“œ ๊ฐ„๊ฒฐํ™”

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");
    }

}

 

'java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

lambda 2  (0) 2023.07.06
Map  (0) 2023.03.31
์ˆซ์ž ์•ผ๊ตฌ ๊ฒŒ์ž„  (0) 2023.02.09
โ˜…โ˜…โ˜…์ปฌ๋ ‰์…˜ํ”„๋ ˆ์ž„์›Œํฌ2  (0) 2023.02.07
์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ ๋ฌธ์ œ ํ’€๊ธฐ  (0) 2023.02.03