객체 지향 프로그래밍에서의 '상속(inheritance)'은 현실에서 부모가 자식에게 물려주듯 부모 클래스의 멤버를 자식 클래스에게 물려줄 수 있다.이미 필요한 필드와 메소드를 가진 클래스가 있다면, 처음부터 모두 작성하는 것보다 필요한 멤버를 가진 클래스를 상속하여
다형성이란 '사용법은 같지만 다양한 객체를 이용해서 다양한 실행결과가 나오도록 하는 성질'이다. ex)타이어 사용법은 모두 같지만 자동차에 어떤 타이어(객체)를 사용하느냐에 따라 성능이 달라짐. > 다형성을 구현하기 위해선 '메소드 재정의'와 '타입 변환'이 필요하
객체를 직접 생성할 수 있는 클래스를 실체 클래스라고 한다면 이 클래스들의 공통적인 특성을 추출해서 선언한 클래스를 '추상 클래스'라고 한다. 추상 클래스(부모)와 실체 클래스(자식)는 '상속'의 관계를 가지고 있는데, 실체 클래스는 추상 클래스의 모든 특성(필드,
인터페이스(Interface)는 개발 코드와 객체가 서로 통신하는 접점 역할을 한다. 개발 코드가 인터페이스의 메소드를 호출하면 인터페이스는 객체의 메소드를 호출하여 리턴값을 얻는다. 따라서 개발 코드는 객체의 내부 구조를 알 필요가 없고 인터페이스의 메소드만 알고
프로그램을 개발할 때 인터페이스를 사용해서 메소드를 호출하도록 코딩하면 구현 객체를 매우 손쉽고 빠르게 교체할 수 있다. > 프로그램 소스 코드는 변함이 없는데, 구현 객체를 교체함으로써 프로그램의 실행결과가 다양해지는 것을 '인터페이스의 다형성'이다. 자동 타입
중첩 클래스(Nested class)란 클래스 내부에 선언한 클래스를 말한다.중첩 클래스를 사용하면 두 클래스의 멤버들을 서로 쉽게 접근할 수 있고, 외부에는 불필요한 관계 클래스를 감춤으로써 코드의 복잡성을 줄일 수 있다는 장점이 있다.클래스 내부에 선언한 인터페이스
익명(Anonymous)객체는 이름이 없는 객체를 말한다. 익명 객체를 만들기 위해서는 어떤 클래스를 상속하거나 인터페이스를 구현해야만 한다. 일반적인 경우에는 다음과 같이 명시적으로 클래스 이름을 주고 선언한다. 이 경우 부모 클래스 변수는 클래스이름1의 객체를
예외(Exception)란 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류를 말한다.예외가 발생하면 프로그램은 곧바로 종료된다는 점에서 에러와 비슷하지만 예외는 예외 처리(Exception handling)를 통해 프로그램을 종료하지 않
자바 컴파일러는 소스 파일을 컴파일할 때 일반 예외가 발생할 가능성이 있는 코드를 발견하면 컴파일 에러를 발생시켜 개발자가 강제적으로 예외 처리 코드를 작성하도록 요구한다. 그러나 실행 예외는 컴파일러가 체크해주지 않기 때문에 개발자의 경험을 바탕으로 예외 처리 코드
java.lang 패키지는 자바 프로그램의 기본적인 클래스를 담고 있는 패키지이다. 그래서 java.lang 패키지에 있는 클래스와 인터페이스는 import 없이 사용할 수 있다.이번 파트에서는 java.lang 패키지에 속하는 주요 클래스에 대해 공부해볼 것이다.Ob