IT/development

[java] 다형성을 이용한 중복 코드 분리 (feat. 익명 클래스)

어흥꼬비 2024. 12. 25.
 

[java] 다형성을 이용한 중복 코드 분리 (feat. 정적 중첩 클래스)

목차Ex2Mainpackage nested.anonymous.ex;public class Ex2Main { public static void helloThor() { System.out.println("프로그램 시작"); //코드 조각 시작 for (int i = 0; i helloThor(), helloLoki()의 코드 조각 시작 ~ 종료부분은 중복...

yaga.tistory.com

위 포스팅에서 이어지는 내용


익명 클래스 활용1

package nested.anonymous.ex;

public class Ex1RefMainV2 {

    public static void hello(Process process) {
        System.out.println("프로그램 시작");
        god.god();
        System.out.println("프로그램 종료");
    }

    public static void main(String[] args) {
        //메인에서 바로 선언과 생성
        //익명 클래스로 수정
        God loki = new God() {
            @Override
            public void god() {
            System.out.println("장난의 신 로키!!!");
          }
        };
        //익명 클래스로 수정
        God thor = new God() {
            @Override
            public void god() {
            System.out.println("천둥의 신 토르!!!");
          }
        };

        hello(loki);
        hello(thor);
    }
}

익명 클래스 활용2

package nested.anonymous.ex;

public class Ex1RefMainV4 {

    public static void hello(Process process) {
        System.out.println("프로그램 시작");
        process.run();
        System.out.println("프로그램 종료");
    }

    public static void main(String[] args) {
        //익명 클래스 인스턴스를 바로 매개변수로 전달
        hello(new God() {
            @Override
            public void god() {
            System.out.println("장난의 신 로키!!!");
          }
        });
        hello(new God() {
            @Override
            public void god() {
            System.out.println("천둥의 신 토르!!!");
          }
        });
    }
}

Lambda(java 8 이상)

package nested.anonymous.ex;

public class Ex1RefMainV4 {
    //... 생략
    public static void main(String[] args) {
    	// 메서드의 코드 블럭을 전달
        hello(() -> {
            System.out.println("장난의 신 로키!!!");
        });
        hello(() {
            System.out.println("천둥의 신 토르!!!");
        });
    }
}

reference: https://www.inflearn.com/course/%EA%B9%80%EC%98%81%ED%95%9C%EC%9D%98-%EC%8B%A4%EC%A0%84-%EC%9E%90%EB%B0%94-%EC%A4%91%EA%B8%89-1

 

김영한의 실전 자바 - 중급 1편 강의 | 김영한 - 인프런

김영한 | 실무에 필요한 자바의 다양한 중급 기능을 예제 코드로 깊이있게 학습합니다., 국내 개발 분야 누적 수강생 1위, 제대로 만든 김영한의 실전 자바[사진][임베딩 영상]단순히 자바 문법을...

www.inflearn.com


개인 스터디 기록을 메모하는 공간이라 틀린점이 있을 수 있습니다.

틀린 점 있을 경우 댓글 부탁드립니다.

댓글