목록분류 전체보기 (639)
충분히 쌓여가는
에러 컴퓨터 하드웨어의 고장으로 인해 응용 프로그램 실행 요류가 발생하는 것 예외 잘못된 사용 또는 코딩으로 인한 오류 예외가 발생되면 프로그램은 곧바로 종료된다는 점에서 에러와 동일하지만, 예외 처리를 통해 계속 실행 상태를 유지할 수 있다 Exception 일반 예외 컴파일러가 예외 처리 코드 여부를 검사하는 예외 Runtime Exception 실행 예외 컴파일러가 예외 처리 코드 여부를 검사하지 않는 예외 자바의 예외 자바는 예외가 발생하면 예외 클래스로부터 객체를 생성한다. 이 객체는 예외 처리 시 사용된다 자바의 모든 에러와 예외 클래스는 Throwable을 상속받아 만들어지고, 추가적으로 예외 클래스는 java.lang.Exception 클래스를 상속받는다 실행 예외는 RuntimeExcep..
중첩 클래스 내부에서 this는 해당 중첩 클래스의 객체를 말한다 만약 중첩 클래스 내부에서 바깥 클래스의 객체를 얻으려면 바깥 클래스 이름에 this를 붙여주면 된다 package ch09.sec05.exam02; public class A { String field = "A-field"; void method() { System.out.println("A-method"); } class B { String field = "B-field"; void method() { System.out.println("B-method"); } void print() { //B 객체의 필드와 메소드 사용 System.out.println(this.field); this.method(); //A 객체의 필드와 메소드 사..
중첩 클래스는 바깥 클래스와 긴밀한 관계를 맺으면서 바깥 클래스의 멤버(필드, 메소드)에 접근할 수 있다 하지만 중첩 클래스가 어떻게 선언되었느냐에 따라 접근 제한이 있을 수 있다 바깥 클래스의 멤버 접근 제한 인스턴스 멤버 클래스 바깥 클래스의 모든 필드와 메소드 정적 멤버 클래스 바깥 클래스의 정적 필드와 정적 메소드 정적 멤버 클래스는 바깥 객체가 없이도 사용 가능해야 하므로 바깥 클래스의 인스턴스 필드와 인스턴스 메소드는 사용하지 못한다
로컬 클래스 생성자 또는 메소드 내부에서 선언된 클래스 public class A { //생성자 public A() { class B { } //로컬 클래스 } //메소드 public void method() { class B { } //로컬 클래스 } } 로컬 클래스에는 일반 클래스와 같이 필드, 생성자, 메소드 선언이 올 수 있다 정적 필드와 정적 메소드는 Java 17부터 선언 가능 로컬 변수 생성자 또는 메소드의 매개변수 또는 내부에서 선언된 변수 로컬 변수를 로컬 클래스에서 사용할 경우 로컬 변수는 final 특성을 갖게 되므로 값을 읽을 수만 있고 수정할 수 없게 된다 이것은 로컬 클래스 내부에서 값을 변경하지 못하도록 제한하기 때문 Java 8 이후부터는 명시적으로 final 키워드를 붙이지..