자바

코딩공부 26일차: 프로그래머스 자바 입문 - 8. 인터페이스와 다른 형식의 클래스(2)

김발자~ 2022. 8. 26. 21:09
반응형

#비전공자개발 공부 26일차

프로그래머스 자바 입문 강의를 듣는 중이다

https://school.programmers.co.kr/learn/courses/5

 

자바 입문

자바 입문 가장 널리 쓰이는 프로그래밍 언어 Java로 프로그래밍의 기초를 다져보세요. 이 강의의 내용을 책으로 만나고 싶으시면 여기를 눌러 책 정보를 확인하세요. 강의를 다 들었는데, 지금

school.programmers.co.kr

 

 

 


파트8 인터페이스와 다른 형식의 클래스:

인터페이스의 default method

 

자바8부터는 메소드에 대한 변경점이 있다

추상메소드가 아니라, default, static를 붙인 메소드라면 인터페이스에서도 구현 가능하다

 

 

static메소드는 인터페이스명.static메소드이름();으로만 호출 가능하다

 

 

실습에서는 인터페이스에 default로 구현된 메소드를

클래스에서 오버라이딩(덮어쓰기)하면 된다

 

 

 

 


파트8 인터페이스와 다른 형식의 클래스:

내부클래스

 

내부클래스는 클래스 안에 선언되는 클래스다

내부클래스 ①: 중첩 클래스/인스턴스 클래스

클래스 안에 인스턴스 변수, 즉 필드를 선언하는 위치에 선언되는 경우(예시에서 class Cal 뭉치)

내부에 있는 Cal객체를 생성하기 위해서는, 밖에는 InnerExam1의 객체를 만든 후에 InnerExam1.Cal cal = t.new Cal();과 같은 방법으로 Cal객체를 생성한 후 사용

 

내부클래스 ②: 정적 중첩 클래스/스태틱 클래스

똑같이 필드를 선언하는 위치에 선언되지만 static을 붙인다

InnerExam2의 객체를 만들지 않아도 바로 InnerExam2.Cal cal = new InnerExam2.Cal();로

객체를 생성할 수 있다

 

내부클래스 ③: 지역 중첩 클래스/지역 클래스

메소드 안에 클래스를 선언하고 사용한다

 

내부클래스 ④: 익명 중첩 클래스/익명 클래스

다음 강의에서 설명할 예정

 

 

 


파트8 인터페이스와 다른 형식의 클래스:

익명클래스

 

보통 추상클래스를 사용하려면 위처럼 해당 추상클래스를 상속받는 클래스를 하나 생성하고

거기서 메소드를 구현하여 실행해야 한다

 

하지만 이렇게 추상클래스를 상속받는 익명클래스를 사용해 따로 자식클래스를 만들지 않고도

추상클래스의 메소드를 사용할 수 있다

메소드 추가도 가능

이렇게 생성된 이름 없는 객체를 action이라는 참조변수가 참조하도록 하고, exec()메소드를 호출

 

익명클래스를 만드는 때는

Action을 상속받는 클래스를 만들 필요가 없을 경우

Action을 상속받는 클래스가 해당 클래스에서만 사용되고 다른 클래스에서는 사용되지 않는 경우

 

 

 


이해는 했는데 왜 내부클래스를 써야하는 건지 모르겠다

반응형