본문 바로가기

개발/JAVA

3. 언어특성활용 (3) 다형성, 내부클래스

1. 다형성   개념1, 개념2, 개념3 예제1 

   1) 개념 :  상위 클래스가 동일한 메시지로 하위 클래스들을 서로 다르게 동작시키는 객체 지향 원리
          - 프로그램 언어 각 요소들(상수, 변수, 식, 객체, 메소드 등)이 다양한 자료형(type)에 속하는 것이 허가되는 성질

          - 참조변수의 타입을 자신 또는 상속받는 상위 타입으로 선언

   2) 원리 

          - 다형성이 가능한 이유는 객체 생성시 실제 상속받는 객체가 메모리에 저장되기 때문  

          - Object 클래스 : 모든 JAVA의 루트클래스, 자바의 모든 참조변수는 object타입으로 선언가능  개념1, 개념2

          - 인스턴스 생성 : 메모리에 만들어져 있음  개념1, 예제

   3) 필요성 

         - 다형성을 적용하여 매개변수 타입을 선언한 메소드는 자신뿐아니라 모든 하위객체를 인자로 받아 실행할 수
           있기 때문에 하나의 메소드로 구현이 가능하다. 

         - 배열     예제 

         - instanceof    개념, 예제

         - 타입변경   개념

다형성

 

2. 내부클래스   개념1, 개념2, 개념3, 예시

   1) 개념 : 클래스 선언시 멤버로서 변수, 메소드 뿐만 아니라 클래스를 정의하는 것     

      - 구분 : outer class, inner class 

      - 내부클래스의 파일명은 $가 중간에 붙음. 

    2) 활용 

       - 내부클래스 호출   개념1 

       - 종류 : 일반클래스(인스턴스 클래스), Static 클래스, 메소드 안쪽에 쓰는 로컬 클래스(local class)  

          *인스턴스 클래스는 static으로 선언된 내부class로 외부class 생성 없이 "외부class.내부class.메소드()" 형태로 사용

          *로컬 클래스는 메소드 안에서 선언된 클래스로 메소드 내부에서만 사용  

     3) 익명클래스  개념1

       - 지역클래스와 비슷하지만 이름없는 클래스  활용