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


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

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

    반응형

    댓글

    💲 추천 글