오늘이라도
24. String ②, static, 상속, 다형성 ① 본문
https://github.com/upcake/Class_Examples
교육 중에 작성한 예제들은 깃허브에 올려두고 있습니다.
- 문자열의 대소 관계는 비교 연산자를 사용할 수 없다.
- 따라서 문자열의 대소를 비교할 때에는 compareTo() 메서드를 사용하게 된다.
- compareTo() 메서드는 문자열을 유니코드 값으로 변환 후 비교하며 양수, 0, 음수 값이 출력된다.
- 문자열의 동등 관계는 equals() 메서드를 사용하며 true, false 값이 출력된다.
- compareToIgnoreCase(), equalsIgnoreCase() 메서드는 대소문자 구분 없이 비교할 때 사용한다.
- static 키워드가 붙은 블록은 프로그램 시작 전에 먼저 메모리에 할당되고 프로그램 종료 시 소멸된다.
- static {}, 블록에 static 키워드만 붙은 블록은 초기화 블록이라 하여 가장 먼저 실행하고 싶을 때 사용한다.
- static이 붙은 메서드는 접근이 편리하지만 메모리를 많이 잡아먹기 때문에 너무 많이 사용하지 않도록 한다.
- 상속을 통해 중복되게 코딩하지 않고 같은 메서드를 여러 클래스에서 사용할 수 있다.
- 상속을 시켜주는 클래스를 상위 클래스, 부모 클래스, 슈퍼 클래스라고 한다.
- 상속을 받는 클래스를 하위 클래스, 자식 클래스, 서브 클래스라고 한다.
- 자식 크래스에서 부모 클래스로부터 상속받은 메서드를 재정의 할 수 있는데 이를 Override라고 한다.
- 오버라이드의 방법엔 3가지가 있다.
① 하드 코딩 후 @Override Annotation 붙이기
② 이클립스 기준, Source - Override/Implement Methods 후 수정
③ 자동 완성 기능(Ctrl + Space) 사용 후 수정
- 상속을 통해 메서드뿐만 아니라 멤버 변수 또한 여러 클래스에서 사용할 수 있다.
- 부모 클래스에 상태 정보를 기록한다. (DTO, VO 클래스)
- 상태 정보 기록은 멤버 변수 선언 - 기본 생성자 메서드 - 매개 변수 초기화하는 생성자 메서드 - 입출력 메서드 순서로 이루어진다.
- 자식 클래스에서 부모 클래스로부터 멤버 변수를 상속받을 수 있다.
- A a = new A(); → 일반적인 객체 생성
- A a = new B(); → 다형성(UpCasting) : B(하위) → A(상위)
- night() 메서드는 상위 클래스인 Animal에서 상속받지 않은 메서드여서 cry() 메서드처럼 일반적인 객체 생성을 통해 사용하려면 작동하지 않는다.
- UpCasting을 통해 이러한 문제를 해결할 수 있다.
- 상속받은 메서드 cry()를 재정의하였다.
- 상속받은 메서드 cry()를 재정의하였다.
- 상속받지 않은 메서드 night()를 추가하였다.
- 업 캐스팅뿐만 아니라 다운 캐스팅을 통해서도 night() 메서드를 사용할 수 있다.
- B b = (B) a : 다운 캐스팅
- 다형성의 전제 조건
① 상속 관계일 것 : public class B extends A
② Override 필수
③ UpCasting으로 객체를 생성하여 부모 클래스 쪽으로 할당한다 : A a = new B();
'취업성공패키지 SW 개발자 교육 > Java' 카테고리의 다른 글
26. 간단한 텍스트 게임 만들기 (0) | 2020.03.25 |
---|---|
25. 다형성 ② (0) | 2020.03.25 |
23. 객체 지향 ③ , String 타입 ① (0) | 2020.03.24 |
22. 객체지향 ② : DAO, DTO 활용 (0) | 2020.03.23 |
혼자 공부하는 자바, Ch. 10-2 예외 처리 (0) | 2020.03.18 |