익명 클래스(anonymous inner class)
이름이 없는 클래스
익명클래스는 앞에 있는 생성자의 클래스를 상속받고 있는 이름 없는 자식 클래스
일회용 클래스
그 앞에있는 생성자를 통해 만드는 객체 딱 하나만을 위한 클래스
그 때 만들어지는 객체는 익명 클래스 안에서 구현한 메소드의 내용을 가진다
이렇게 만들어지는 객체는 익명구현객체 라고 한다
package road;
public class Road {
public static void main(String[] args) {
Car myCar = new Car("Ferrari") {
@Override
void engineStart() {
System.out.println(brand + "터치로 시동켜기 ");
}
void f() {
System.out.println("새로운 메소드");
}
};
myCar.engineStart();
// ()myCar.f();
Car my = new Car("kia") {
@Override
void engineStart() {
System.out.println(brand + "터치로 시동켜기 ");
}
};
}
}
새로운 메소드를 구현하게 되면 자식에서 내용을 추가하는 것이나 마찬가지고
만들어지는 객체를 이 익명클래스 타입으로 다운캐스팅 해야만 사용 가능
하지만 익명클래스는 일회용으로 이름이 없기 때문에 다운캐스팅이 불가
따라서 새로운 메소드는 이 익명 내부에서만 사용 가능
예외 처리
에러 : 심각한 오류
예외 : 덜 심각한 오류
try ~ catch ~ finally
try{
예외가 발생할 수 있는 문장
}
catch(예외클래스 객체명){
예외 발생시 실행할 문장
}
finally{
예외 발생 여부에 상관없이 실행할 문자
}
Exception 클래스
모든 예외들의 부모클래스
throws
메소드 선언부 내부에서 발생하는 예외를 무시하고 호출하는 곳으로 떠넘기는 문법
호출하는 곳에서 예외가 발생할 수 있기 때문에 try~catch로 잡아준다
리턴타입 메소드명() throws 예외1, 예외2, .. {
예외1, 예외2, ... 무시하는 구역
}
매번 try catch로 묶기 귀찮을 때
예외처리를 다른곳에서 해줄 때
'언어의 기초 > 자바(JAVA)' 카테고리의 다른 글
[JAVA] Object클래스, Wrapper, Generic (0) | 2021.12.06 |
---|---|
[coolsms] java로 문자 보내기 (0) | 2021.12.02 |
[JAVA] 클래스 다형성, 상속성 , 추상화 ,업캐스팅/ 다운캐스팅 (0) | 2021.11.29 |
[JAVA] 조건문과 반복문 (0) | 2021.11.24 |
[Java] 변수와 자료형 (0) | 2021.11.23 |