JAVA 공부 22.11.06

Kim yohan·2022년 11월 6일
0

TIL

목록 보기
7/16

17단원 클리어~!

1.interface
규약의 용도로 사용됨.
변수는 public static final로 -> 해당 변수를 다른 클래스에서 그냥 사용가능!
메소드는 abstract로 선언됨.

interface class를 상속받기 위해서는 implements를 사용한다.

다른 클래스와의 구별을 위해 사용될 수도 있음.
(instanceof를 활용하면)

2.Inner 클래스
클래스 내부에 또 다른 클래스를 두는 방식.
특징
1) Outer 클래스의 인스턴스 생성 후에야 Inner 클래스의 인스턴스 생성이 가능
2) Inner 클래스 안에서 Outer클래스의 변수에 접근 가능.
3) Innere 클래스의 인스턴스는 자신이 속할 Outer클래스의 인스턴스를 기반으로 생성됨.

클래스들을 논리적으로 묶으면서 가독성이 향상되고, 유지보수성이 좋아진다는 장점.

3.Local 클래스
Inner 클래스와 비슷.
Inner 클래스는 그냥 클래스 하위에 클래스가 있지만, Local 클래스는 메소드 안에 클래스가 있는 방식.

반환되는 참조 값을 저장할 수 있는 변수의 선언이 불가능하기 때문에 interface 클래스를 해당 메소드의 반환형으로 넣어서 해결한다. 그래서 항상 Local 클래스와 interface는 같이 다님.
그리고 매개변수를 받고자 하는 경우엔 메소드를 나가는 순간 데이터가 사라지기 때문에, 변수를 final 형식으로 받아야 한다!

4.Anonymous 클래스
Local, inner 클래스와 비슷.
Local 클래스는 이름이 중요하지 않기 떄문에 생략한 구조가 Anonymous 클래스

메소드 내에 local 클래스를 선언하는 대신 interface 인스턴스를 바로 리턴한다. 원래 인터페이스는 인스턴스 생성이 불가능하지만, 이는 메소드가 완전히 정의되지 않아서이고, 따라서 해당 메소드의 몸체를 채워 넣는 방식은 가능하다!

profile
꾸준히 성실하게

0개의 댓글