티스토리 뷰

Java의 정석_기초편

String생성자

DJDU 2022. 10. 26. 19:39

String클래스의 생성자와 메서드

더보기

CharSequence

CharSequence는 인터페이스다. 인터페이스의 장점 중 하나는 서로 관계 없는 클래스들의 관계를 맺어줄 수 있다는 것이다. 

 문자형 배열(문자열)을 다루는 클래스들이 위의 클래스들이다. StringBuffer와 StringBuilder는 거의 같은 클래스다. String, CharBuffer, Segment도 문자열을 다룬다. 이런 것들이 문자형 배열을 다룬다는 공통점이 있다. 

그런데 이 클래스들은 상속계층도가 다 다르다. 공통 조상이 없다. 공통 조상이 있다면, 다형성을 이용해서 그것을 매개변수 타입으로 하면 좋겠지만, 공통 조상이 없기 때문에 CharSequence인터페이스를 만들고 이 클래스들이 다 구현하게 만들면 된다.

 그렇게 하면, CharSequence인터페이스를 구현한다는 공통점이 생긴다.

'All Known Implementing Classes'란 CharSequence인터페이스를 구현한 클래스들이라는 뜻이다. 그래서 CharSequence인터페이스를 매개변수 타입으로 하면, CharBuffer, Segment, String, StringBuffer, String Builder 클래스들이 다 매개변수로 들어올 수 있다. 이게 안 되면 각각의 클래스 타입으로 하는 매개변수를 가진 메서드로 오버로딩을 해야 할 것이다.

 그럴 필요 없이 인터페이스를 만들고 클래스들이 구현하게 해놓은 다음에 그것을 매개변수로 하면, 인터페이스를 구현한 클래스들이 상속계층도 관계 없이 매개변수로 들어갈 수 있다. 이렇게 하면, 한 개의 메서드로 여러 종류의 클래스들이 들어올 수 있게 만들 수 있다.

 

| 참고 | Repairable인터페이스를 공부했던 내용을 복습해보자.

'Java의 정석_기초편' 카테고리의 다른 글

StringBuffer클래스  (0) 2022.10.27
StringJoiner, 문자열과 기본형 변환  (0) 2022.10.27
String클래스, 문자열 비교, 빈 문자열  (0) 2022.10.26
hashCode(), toString()  (0) 2022.10.26
Object클래스와 equals()  (0) 2022.10.26
댓글
공지사항