본문 바로가기
JAVA/객체지향

내부 클래스

by chogigang 2023. 2. 23.

내부 클래스

 

내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근할 수 있습니다.

코드의 복잡성을 줄일 수 있습니다(캡슐화)

 

 

내부 클래스의 선언

class Outer {
        int iv = 0;
        abstract int cv = 0;
        
        void myMethod() {
            int lv = 0;
        }
}

 

 

class Outer {
        class InstanceInner {}
    static class StaticInner{}

    void myMethod(){
            class LocalInner {}
    }
}

 

이렇게 변경 가능합니다.

 

 

내부 클래스의 제어자와 접근성

 

 

내부 클래스도 클래스이기 때문에 abstract나 final과 같은 제어자를 사용할 수 있을뿐 아니라 멤버변수들처럼 private.protected과 접근제어자도 사용이 가능합니다

 

 

익명 클래스

 

이름이 없으며  클래스의 선언과 객체의 생성을 동시에 하기 때문에 단 한번 만 사용 될 수 있고 오직 하나의 객체만을 생성할 수 있는 일회용 클래스 입니다.

 

단 하나의 클래스를 상속받거나 단 하나의 인터페이스만을 구현할 수 있습니다.

 

new 조상클래스명() {
        // 멤버 선언
    }

    또는

new 구현할인터페이스명() {
        // 멤버 선언
    }

 

import java.awt.*;
import java.awt.event.*;

    class  InnerEx7{
        public static void main(String[] args) {
            Button b = new Button("Start");
            b.addActionListener(new EventHandler());   // EventHandler 클래스 선언
        }
    }

    class EventHandler implements ActionListener { // EventHandler 클래스 코드
        public void actionPerformed(ActionEvent e) {
            System.out.println("ActionEvent occurred!!!");
        }
    }

 

 

 

'JAVA > 객체지향' 카테고리의 다른 글

hashCode(),toStirng()  (0) 2023.02.23
예외처리  (0) 2023.02.23
인터페이스  (0) 2023.02.23
추상 클래스  (0) 2023.02.23
다형성  (0) 2023.02.23