생성의 용도가 아닌 지침서 정도의 용도로 사용하는 생성불가능한 클래스인 추상 클래스에 대해 알아보자.
◆ abstract(추상) 클래스
클래스 앞에 abstract 키워드를 붙이면 추상클래스가 된다.
- 추상클래스는 기본적으로 객체생성이 불가능하다.( 변수는 선언은 가능 )
객체 설계의 목적이 아닌 하위 클래스들의 제어용으로 쓰이는 클래스는 abstract class 로 만드는 것이 좋다.
▶ 추상클래스 설계예제
◆ abstract method ( 추상 메서드 )
추상클래스 안에서 쓰이는 오버라이드가 목적인 메서드 또한 abstract를 붙여서 추상메서드로 만든다.
▶ 추상메서드 설계
중괄호( {} )가 없고 끝에 세미콜론( ; )을 붙인 형태.
추상클래스를 상속받아 사용하는 클래스들은 반드시 추상메서드를 오버라이드 구현해 야한다.
( 추상 클래스가 추상메서드를 꼭 만들 필요는 없음 )
◆ super 와 this 키워드
-
super: 부모클래스를 지칭하는 키워드
=> super() : 부모생성자 호출, super.필드 : 부모의 필드 -
this: 해당 클래스를 지칭하는 키워드
=> this.필드 : 해당 클래스에서의 필드
=> 변수명이나 메서드명이 겹칠때 등등사용…
◆ 분기처리
for문등에서 처리하기 힘든 분기처리를 하기 위해 사용하는 방법으로 continue키워드를 사용하여 원하는 지점으로 이동시킨다.
◆ 객체 비교
객체.compareTo(객체)
이 메소드가 반환하는 int형 정수가 양수일 때는 앞에 객체가 큰 것이고, 음수일대는 매개변수 객체가 더 큰 값을 가진 것이다.
=> 단, 객체 클래스 내부에 compareTo메서드가 오버라이드 되어있어야 한다.
( 보통 라이브러리 API객체들 같은 경우에 대부분 해당 메서드가 오버라이드 되어있다. )
=> 스트링 객체는 맨 앞문자의 크기를 비교하고 같을 경우 그다음 문자 순으로 비교된다.