반응형 프로그래밍36 JAVA :: 자바 문법 정리(9) JAVA :: 자바 문법 정리(9) 디폴트 메서드 조상 클래스에 새로운 메서드를 추가하는 것은 별 일이 아니지만, 인터페이스의 경우에는 보통 큰 일이 아니다. 인터페이스에 메서드를 추가한다는 것은, 추상 메서드를 추가한다는 것이고, 이 인터페이스를 구현한 기존의 모든 클래스들이 새로 추가된 메서드를 구현해야 하기 때문이다. 디폴트 메서드는 추상 메서드의 기본적인 구현을 제공하는 메서드로, 추상 메서드가 아니기 때문에 디폴트 메서드가 새로 추가되어도 해당 인터페이스를 구현한 클래스를 변경하지 않아도 된다. 디폴트 메서드는 메서드 앞에 키워드 default 를 붙이며, 추상 메서드와 달리 일반 메서드처럼 몸통{}이 있어야 한다. 디폴트 메서드 역시 접근 제어자가 public 이며, 생략가능하다. 내부 클래스.. 2023. 4. 28. JAVA :: 자바 문법 정리(8) JAVA :: 자바 문법 정리(8) 참조변수(형변환) 컴파일 시에는 참조변수간의 타입만 체크하기 때문에 실행 시 생성될 인스턴스의 타입에 대해서는 전혀 알지 못한다. 그래서 컴파일 시에는 문제가 없었지만, 실행 시에는 에러가 발생하여 실행이 비정상적으로 종료될 수 있다. 참조변수가 참좋고 있는 인스턴스의 실제 타입을 알아보기 위해 instance 연산자를 사용한다. 실제 인스턴스와 같은 타입의 instanceof 연산 이외에 조상타입의 instance 연산에도 true 를 결과로 얻으며, instanceof 의 연산의 결과가 true 라는 것은 검사한 타입으로의 형변환을 해도 아무런 문제가 없다는 뜻이다. 참조변수와 인스턴스의 연결 멤버변수가 조상 클래스와 자손 클래스에 중복으로 정의된 경우, 조상 타입.. 2023. 4. 27. JAVA :: 자바 문법 정리(7) JAVA :: 자바 문법 정리(7) import 문 클래스의 코드를 작성하기 전에 import 문으로 사용하고자 하는 클래스의 패키지를 미리 명시해주면 소스코드에 사용되는 클래스이름에서 패키지명은 생략할 수 있다. import 문의 역할은 컴파일러에게 소스파일에 사용된 클래스의 패키지에 대한 정보를 제공하는 것이다. import 문에서 클래스의 이름 대신 ‘*’을 사용하는 것이 하위 패키지의 클래스까지 포함하는 것은 아니라는 것이다. import 문으로 패키지를 지정하지 않으면 위와 같이 모든 클래스이름 앞에 패키지명을 반드시 붙여야 한다. 단, 같은 패키지 내의 클래스들은 import 문을 지정하지 않고도 패키지명을 생략할 수 있다. 제어자 생성자가 private 인 클래스는 다른 클래스의 조상이 될 .. 2023. 4. 26. JAVA :: 자바 문법 정리(6) JAVA :: 자바 문법 정리(6) 오버라이딩의 조건 오버라이딩시 접근 제어자와 예외는 제한된 조건 하에서만 다르게 변경할 수 있다. ✔️ 접근 제어자는 조상 클래스의 메서드보다 좁은 범위로 변경 할 수 없다. 접근범위는 public, protected, (default), private 이다. ✔️ 조상 클래스의 메서드보다 많은 수의 예외를 선언할 수 없다. Object 클래스를 제외한 모든 클래스의 생성자는 첫 줄에 반드시 자신의 다른 생성자 또는 조상의 생성자를 호출해야 한다. 그렇지 않으면 컴파일러는 생성자의 첫 줄에 ‘super();’를 자동적으로 추가한다. 어떤 클래스의 인스턴스를 생성하면, 클래스 상속관계의 최고조상인 Object 클래스까지 거슬러 올라가면서 모든 조상클래스의 생성자가 순서대.. 2023. 4. 25. 이전 1 2 3 4 5 ··· 9 다음 반응형