자바 소개 및 자바 에 대한 신속 한 이해 (12)

부분 내부 류 부분 내부 류 는 방법 에 정 의 된 내부 류 이다.부분 내부 클래스 는 권한 수식 자 를 추가 할 수 없습니다. 그 범 위 는 코드 블록 을 정의 합 니 다.주의: 국부 내부 클래스 는 외부 클래스 의 개인 실례 변 수 를 방문 할 수 있 을 뿐만 아니 라 외부 클래스 의 국부 상량 (즉 국부 변 수 는 반드시 final 이 어야 하 는) 국부 내부 클래스 의 특징 도 방문 할 수 있다. 국부 내부 클래스 (국부 내부 클래스 가 대외 적 으로 볼 수 없 음 을 보장) 를 직접 방문 할 수 없고 방법 에서 만 국부 내부 클래스 를 방문 할 수 있다.국부 내부 류 의 역할 은 내부 류 와 인 터 페 이 스 를 통 해 강제 적 인 약 한 결합 에 이 르 고 국부 내부 류 로 인 터 페 이 스 를 실현 하 며 방법 에서 인터페이스 유형 을 되 돌려 국부 내부 류 를 보이 지 않 게 하고 차폐 실현 류 의 가시 성 을 실현 한다.부분 내부 클래스 쓰기
public class TestLocalInnerClass{
public static void main(String[] args){
Outer o=new Outer();
final int a=9;
o.print(a);
}
}
class Outer{
private int index=100;
public void print(final int a){
final int b=10;
System.out.println(a);
class Inner{
public void print(){
System.out.println(index);
System.out.println(a);
System.out.println(b);

}
}
Inner i=new Inner();
i.print();
}
}

결 과 는:
 9100910
 
익명 내부 류 익명 내부 류 는 특수 한 부분 내부 류 로 익명 류 암시 적 인 인 터 페 이 스 를 통 해 이 루어 질 수 있다.익명 내부 클래스 의 특징: 1. 하 나 는 다른 클래스 를 계승 하거나 인 터 페 이 스 를 실현 하 는 데 사용 되 며 추가 적 인 방법 을 추가 할 필요 가 없습니다. 다만 계승 방법 에 대한 사전 또는 덮어 쓰기 입 니 다.2. 대상 의 인 스 턴 스 를 얻 기 위해 서 만 실제 유형 을 알 아 서 는 안 된다.3. 유형 명 은 의미 가 없다. 즉, 사용 할 필요 가 없다.주: 익명 의 내부 클래스 는 반드시 new 뒤에 있 을 것 입 니 다. 하나의 인 터 페 이 스 를 포함 하거나 하나의 클래스 를 실현 할 것 입 니 다. 유형 이름 이 없습니다. 다 형 에 따라 우 리 는 아버지 이름 을 사용 합 니 다.익명 내부 류 의 특징 1) 국부 내부 류 이기 때문에 국부 내부 류 의 모든 제한 이 효력 이 발생 한다.2) 익명 내부 류 는 유일한 무 구조 방법 류 이다.3) 대부분의 익명 내부 클래스 는 인터페이스 리 셋 에 사용 된다.4) 익명 내부 클래스 는 컴 파일 할 때 시스템 에서 자동 으로 Out $1. class 라 고 이름 을 짓 습 니 다.5) 한 대상 이 컴 파일 할 때의 유형 은 인터페이스 이 며, 실행 하 는 유형 은 이 인 터 페 이 스 를 실현 하 는 클래스 입 니 다.6) 익명 내부 류 의 구조 적 방법 이 없 기 때문에 사용 범위 가 매우 제한 적 이다.익명 내부 류 와 국부 내부 류 의 차 이 는 여러 대상 으로 돌아 가 야 할 때 국부 내부 류 를 사용 하고 국부 내부 류 의 응용 이 상대 적 으로 많다.익명 내부 클래스 에 구조 방법 을 쓰 지 않 습 니 다.익명 내부 클래스 의 쓰기:
interface A{
void ia();
}
class B{
public A bc(){
return new A{
void ia(){

System.out.println(“ia”)
}
};
}
}

 
익명 내부 클래스 사용:
public class Test{
public static void main(String[] args){
B b=new B();
A a=b.bc();
a.ia();
}
}

 
Exception (예외 / 이상) 은 프로그램 에 발생 할 수 있 는 오류 에 대해 예 안 을 내 려 야 합 니 다.이상 은 프로그램의 모든 예상 치 못 한 결과 이다.(시스템 의 건장 성에 관계 되 는) JAVA 는 모든 이상 을 하나의 대상 으로 봉 하고 그 근본 적 인 부 류 는 Throwable 이다.이상 한 분류 Throwable 은 두 가지 종류 가 있 습 니 다. Error 와 Exception 입 니 다.Error 대상 은 프로그램 오 류 를 표시 합 니 다. 바 텀, 저급, 복구 할 수 없 는 심각 한 오류 입 니 다.이 때 프로그램 은 반드시 종료 되 고 실행 에 필요 한 물리 적 환경 을 잃 었 습 니 다.에 러 오 류 를 처리 할 수 없습니다.우 리 는 프로그램 을 통 해 오 류 를 대 처 했 지만 프로그램 이 종료 되 어 처리 할 수 없 었 기 때문이다.우리 가 처리 할 수 있 는 것 은 Exception 류 의 대상 이 표시 하 는 프로그램 이상 (예외 / 이상) 일 뿐이다.exception 은 두 가지 하위 클래스 가 있 습 니 다. Runtime exception: (이상 검사 하지 않 음) 프로 그래 밍 할 때 피 할 수 있 습 니 다. 처리 할 수 있 습 니 다. 비 Runtime exception: (이상 검사 됨) 처리 하지 않 으 면 처리 해 야 합 니 다.주의: 이상 이 검사 되 지 않 았 든 검사 되 지 않 았 든 컴 파일 할 때 발견 되 지 않 습 니 다. 컴 파일 하 는 과정 에서 프로그램의 문법 오 류 를 검 사 했 습 니 다. 이상 은 실행 할 때 프로그램 이 잘못 되 었 다 는 개념 입 니 다.검사 되 지 않 은 이상 은 프로그래머 가 필요 한 검 사 를 하지 않 아 소홀 함 과 오류 로 인 한 이상 이다.가상 컴퓨터 내부 에 속 하 는 이상 (예 를 들 어 빈 포인터).검사 되 지 않 은 이상 에 대처 하 는 것 은 좋 은 검사 습관 을 기 르 는 것 이다.검사 이상 은 불가피 하 며, 검사 이상 에 대해 서 는 사전에 처리 방법 을 정의 해 야 한다.이상 이 검 사 된 것 은 가상 컴퓨터 의 범 위 를 뛰 어 넘 은 이상 입 니 다.(예 를 들 어 '파일 을 찾 지 못 했 습 니 다') 이상 한 전달 은 검사 이상 을 어떻게 처리 하 는 지 (모든 검사 이상 에 대해 처리 해 야 합 니 다): 먼저 이상 이 형 성 된 체 제 를 파악 합 니 다. 한 방법 에서 한 문장 에 이상 이 생 겼 습 니 다. throw (던 지기) 예외 대상 (throw 이상 대상) 이 있 습 니 다. 그 후의 문 구 는 실행 되 지 않 고 이상 을 이전 단계 로 되 돌려 줍 니 다.상급 방법 은 예외 대상 을 받 아들 인 후 이 이상 을 처리 할 수도 있 고 이 이상 을 계속 위로 전달 할 수도 있다.주의: 한 방법 에 이상 이 생 겨 이상 처 리 를 하지 않 으 면 이상 대상 을 반환 값 으로 되 돌려 줍 니 다.가상 컴퓨터 에 이상 이 들 어가 면 가상 컴퓨터 는 즉각 프로그램의 실행 을 중단 할 것 이다.이상 한 처리 방식 은 Runtime Exception 이 검사 한 이상 이 아 닙 니 다. 처리 하지 않 으 면 컴 파일 이 통과 되 지 않 습 니 다.이상 처리 방식 검사: throws 와 try. catch (...) {} 방법.메모: 이상 을 던 지 는 방법 은 JDK 가 정의 한 것 일 수도 있 고 프로그래머 가 쓴 프로그램 일 수도 있 습 니 다. 누가 썼 든 던 던 지 는 것 은 반드시 throw 를 사용 합 니 다.방법의 정의 에서 설명 방법 이 던 질 수 있 는 이상 은 (throws 이상 유형, 이상 유형) 으로 이 방법 이 이상 을 처리 하지 않 고 이상 을 이전 단계 방법 으로 처리 하 는 것 을 설명 합 니 다.실제 이상 이 생기 거나 아버지 류 의 이상 대상 을 던 질 수 있다.예: Public void print () throws Exception {} 방법 a 에 대해 throws Exception 을 정의 합 니 다.이것 이 호출 한 방법 b 가 이상 대상 을 되 돌 릴 때 방법 a 는 처리 하지 않 습 니 다. 이 이상 대상 을 이전 단계 로 되 돌려 줍 니 다. 모든 방법 은 처리 하지 않 고 이상 을 주 방법 으로 되 돌려 줍 니 다. 프로그램 이 중 단 됩 니 다.(모든 방법 이 상부 에 이상 을 던 지 는 것 을 피해 야 한다. 작은 이상 이 생기 면 프로그램 이 중단 되 기 때문이다.)throws (던 지기) 이상 시 다 중 을 사용 할 수 있 습 니 다. 한 방법 으로 이상 을 던 졌 을 때 이 방법 을 사용 하 는 방법 은 이 이상 (이상 검사) 을 처리 하거나 호 환 유형의 이상 (호출 방법 으로 이상 한 부모 클래스 나 같은 유형 을 던 집 니 다) 예 를 던 집 니 다.
public class Test{
public static void main(String[] args)throws Exception{
Test t=new Test()
t.a()
}
public void a()throws IOException,EOFException{
b();
……
}
public void b()throws EOFException{
……
}
}

 방법 프로그램 에 throw new Exception () 이 있 습 니 다. 이상 을 던 지고 그 후의 프로그램 은 더 이상 실행 되 지 않 습 니 다.이상 대상 을 던 지면 뒤에 있 는 프로그램 은 실행 기회 가 없 으 며, JAVA 는 이상 발생 후 프로그램 이 존재 할 필요 가 없다 고 판단 했다.try. catch 캡 처 이상 은 try... catch 형식: try {오류 가 발생 할 수 있 는 코드 블록} catch (Exception e) {처리 하 는 코드} 이 방법 으로 코드 가 정확 하고 프로그램 이 catch 문 구 를 거치 지 않 고 직접 아래로 실행 합 니 다.코드 가 정확 하지 않 으 면 던 진 이상 대상 과 e 의 유형 을 일치 시 키 고 일치 하 며 해당 하 는 이상 처리 코드 인 catch 블록 에서 코드 를 실행 합 니 다.(Exception 으로 e 를 설명 하면 Exception 은 모든 이상 대상 의 부모 클래스 로 모든 것 이 성공 할 것 입 니 다).코드 를 처리 한 후 이 예 외 는 완전히 처 리 됩 니 다. 프로그램 은 이상 한 catch 블록 을 캡 처 한 곳 에서 아래로 실행 되 고 마지막 으로 프로그램 이 정상적으로 종 료 됩 니 다.try 블록 에 있 는 코드 에 이상 이 없 으 면 catch 를 건 너 뛰 고 정상적으로 실 행 됩 니 다.try 블록 에서 이상 을 던 졌 습 니 다. 즉, try 블록 에서 catch 블록 과 일치 하도록 뛰 어 내 렸 습 니 다. try 블록 에서 이상 을 던 진 후의 문 구 는 실행 되 지 않 고 try 블록 에서 return 문 구 를 쓸 수 없습니다.하나의 try 블록 은 여러 catch 블록 과 다른 상황 을 처리 할 수 있 습 니 다.try 블록 에서 이상 을 던 진 후 유형 이상 호 환 을 처리 하 는 catch 블록 만 일치 합 니 다.우 리 는 여러 개의 catch 블록 을 쓸 수 있 습 니 다. try 블록 에서 실제 이상 유형의 부모 형식 이상 catch 블록 을 던 져 서 는 안 됩 니 다. try 블록 에서 던 진 실제 유형 이상 catch 블록 을 처리 하기 전에 쓰 십시오.try 블록 에서 던 진 이상 은 실제 이상 유형 을 처리 하 는 부모 형식의 catch 블록 과 일치 합 니 다. 실제 유형 이상 을 던 진 catch 블록 을 처리 하 는 것 은 영원히 실행 되 지 않 는 코드 가 되 었 습 니 다. 자바 에 서 는 이러한 코드 를 쓸 수 없고 컴 파일 이 통과 되 지 않 습 니 다.예: EOFException 은 IOException 의 하위 클래스 이 며, 아래 의 쓰 기 는 잘못된 것 이 며, 컴 파일 은 통과 되 지 않 습 니 다.
try{
……
}catch(IOException e){
……
}catch(EOFException ex){
……
}

좋은 웹페이지 즐겨찾기