익명(이름이 없다) = 따로 이름을 부여하여 클래스를 작성 않고
인스턴스를 생성(new)하는 부분에 멤버만 작성하는 클래스
->상속을 받아서 작성하는 클래스
btn.addActionListener(new ActionListener() {...}
익명클래스
클래스 작성. 접근 제어(정보은닉)
부모 자식 관계 형성 extends
코드를 재사용하면서 추가된 부분만 고려하여 새로운 클래스 작성.
여러 클래스의 인스턴스를 하나로 관리 및 처리 instanceof
코드 처리의 규격/규칙을 만드는 작업.
예외란?
프로그램의 오류(Error)
코드를 작성할 때 발생하는 오류(컴파일 안됨)redLine
코드 완료 후 실행 시 발생하는 오류 bug
예외 사항 - 예방 코드로 수습 가능한 오류(정상동작후)
예외 처리란?
예방 코드를 미리 작성하여 예외를 넘어가도록 조치하는 것.
비정상적인 프로그램 종료를 막기위함.
예외 처리용 명령어
try - 예외사항이 발생할 여지가 있는 코드를 묶어 놓는 영역.
catch - 발생된 예외사항을 처리하는 영역.
finally - 예외가 발생하던 안하던 실행해야할 코드를 작성하는 영역.
<생략가능>
catch는..
메소드와 같은 형태를 갖는다. 즉 예외처리 객체를 매개변수로 받는다.
따라서 예외처리 객체에 대한 클래스는 import 해줘야한다.
기본 문법
try{
//예외 사항 발생이 예상되는 문장들 1
//예외 사항 발생이 예상되는 문장들 2
}catch (ExceptionClass1 참조변수){
//예외 조치 문장들...
}catch (ExceptionClass2 참조변수){
}finally{
//예외가 있건 없건 실행할 문장들
**텍스트**
}
두번째 catch 부터 finally는 필요 시만 작성한다.
예외처리 예
메소드내용에 'try catch'가 들어가면은
메소드 제목 끝에 'throws Exception' 안들어간다
Exception 클래스 : 모든 예외 사항 클래스의 부모 클래스.
어떤 예외 사항이던 다 처리할 수 있는 클래스.
그외에 많이 쓰이는 예외사항 클래스
숫자로 변환할 수 없는 문자열 입력 시 발생
ex) Html에서 Java로 보낼때는 문자열로 보낸다 .자주발생한다
산술연산 시 발생(0으로 나누기 등)
배열의 크기 관련 오류
DB 연동 관련
인스턴스 생성에 필요한 클래스가 없을 경우 발생
참조변수에 인스턴스를 넣지않았을 경우(생성하지 않았을 경우)
입출력 관련 오류
예외 처리방식
메소드 내에서 예외처리 완료.
예외 처리를 호출한 메소드에게 위임.
불러온 후
e.printStackTrace(); 을 주석 처리하고 출력문구 작성한다.
예외 처리를 호출한 메소드에게 위임.
메소드 선언부에 위임할 예외사항을 명시
예외사항이 여러개일 경우',' 로 구분하여 나열
예외사항 처리를 활용한 메세지 전송
예외사항 객체(인스턴스)를 만들수 있으며
그 때 만든 객체에 메시지를 담을 수 있다
일부러 예외사항 객체를 전달하는 방법도 있음.
일부러 예외사항 객체를 전달하는 명령어 - throw
Exception = ex new Exception("메시지");
throw ex;//메시지를 담은 예외 객체를 전송
throw new Exception("메시지");
예외사항 처리를 활용한 메세지 전송
return 값(변수)
필드를 사용.(공통적으로 사용할수있는 공간)
예외 객체에 값(문자열)을 담아서 전달.
Collection
여러 객체(데이터)를 모아 놓는 것.
Framework
표준화, 정형화된 프로그래밍 도구(방식) - 라이브러리
Java.util 패키지 소속
1. List - 순서가 있는 객체의 집합을 정의하기 위한 인터페이스.
구현된 클래스 : ArrayList, LinkedList, Stack, Vector, Queue
2. Set - 순서가 없이 모아놓은 객체의 집합을 정의하기 위한 인터페이스
"중복된 데이터는 저장 불가"
구현된 클래스 : HashSet, TreeSet
3. Map - 키(key)와 값(Value)의 쌍으로 구성되는 데이터 집합을 정의하기 위한 인터페이스
"키는 중복값이 허용되지 않으나, 값은 중복을 허용"
구현된 클래스 : HashMap, TreeMap, HashTable, Properties 등
클래스 코드 작성 시 자료형을 지정하지않고, 컴파일 시 자료형을 체크하여 지정하는 기능
장점 : 객체의 타입의 안정성을 높이고, 형 변환의 번거로움을 줄여준다.