Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 인스턴스
- 백준
- 클라이언트
- 카카오코딩테스트
- 생성자
- Swing
- 템플릿엔진
- JPA Auditing
- 클래스
- 자바
- Spring
- 상속
- 서버
- socket
- java
- Oracle
- 바인드변수
- HTML모드
- jcenter
- 코딩
- 깃허브
- springDataJPA
- 컬렉션프레임워크
- 사용자관리프로그램
- SwingCalendar
- springboot
- 메소드
- JavaScript
- 멀티쓰레드
- mavenCentral
Archives
- Today
- Total
프리 정보 컨텐츠
자바 익명 클래스란? 본문
자바가 사용하는 InnerClass 중의 한 종류인 익명 클래스라는 것은 자주 사용하게 된다.
익명 클래스는 부모 클래스를 상속받는 클래스를 따로 생성하지 않아도 단일 객체를 통해서 사용할 수 있다.
익명 클래스는 클래스와 인터페이스로부터 만들 수 있다.
익명 클래스를 사용하는 이유?
익명 클래스가 클래스를 따로 생성하지 않아도 사용할 수 있다는 것을 알았다.
하지만 익명 클래스를 굳이 왜 사용해야되는걸까?
익명클래스는 1회용 자식 클래스 사용하므로 불필요한 클래스를 만들지 않아도 된다.
불필요한 클래스를 만들지 않음으로써 코드의 가독성, 유지보수, 길이를 줄일 수가 있다.
class Inner4 {
// 익명 클래스는 자주 쓰이고 중요하니 숙지 필요
int x = 40;
int y = 50;
public void disp() {
System.out.println("x = " + x);
}
}
// 일반 상속 자식 클래스 만드는 방법1
class Inner44 extends Inner4{
@Override
public void disp() {
System.out.println("y = " + y);
}
}
public class Exam4 {
public static void main(String[] args) {
// 자식 기준 사용법
Inner44 inner44 = new Inner44();
inner44.disp();
// 부모 기준 사용법
Inner4 inner4 = new Inner44();
inner4.disp();
int a = 100;
// 익명 클래스 사용 -> 부모 기준 사용법 사용빈도수가 높음
Inner4 inner = new Inner4() {
@Override
public void disp() {
System.out.println("익명 클래스, y =" + y);
System.out.println("a = " + a); // 함수안에서 지정한 지역변수는 final 로 a값 전환 불가
}
};
inner.disp();
}
}
위의 예시를 통해 상속할 때 부모 클래스의 사용법과 익명 클래스를 사용할 때의 차이점을 알아볼 수 있다.
익명클래스의 형식은 다음과 같다.
부모클래스 인스턴스 = new 부모클래스() {
};
익명클래스는 별도의 생성자를 작성하지 않으며, 생성자와 동일하게 객체를 생성할 뿐이다.
Comments