[Kotlin 깃북] Ch3 코틀린 사용을 위한 기본 문법
7. 클래스와 설계 (3)
설계 도구
패키지
- 코딩하며 파일을 이름 짓고, 분류하는 것 -> 설계의 일부분
- 패키지: 클래스와 소스파일을 관리하기 위한 디렉토리 구조의 저장 공간
- 디렉터리가 계층 구조로 만들어진 경우, 온점(.)으로 구분
package 메인 디렉터리.서브 디렉터리
class 클래스 {
}
추상화
- 프로그래밍 전, 개념 설계하는 단계에서 클래스의 이름과 클래스 안 메서드 이름 나열
-> 메서드 블록 안에 직접 코드 작성 or 구현 단계에서 구현하도록 메서드 이름만 작성
-> abstrct 키워드 사용
abstract class Design {
abstract fun drawText()
abstract fun draw()
fun showWindow() {
}
}
class Implements: Design(){
fun drawText() {
}
fun draw() {
}
}
인터페이스
- 인터페이스: 메서드 이름만 가진 추상 클래스
-> interface 예약어를 통해 정의
-> 인터페이스에 정의된 메서드 오버라이드하여 구현
- 인터페이스의 프로퍼티와 메서드 앞 abstract 키워드 생략
interface InterfaceKotlin{
var variable: String
fun get()
fun set()
}
class KotlinImpl: InterfaceKotlin {
override var variable: String = "init value"
override fun get() {
}
override fun set() {
}
}
- 인터페이스를 object 키워드로 소스 코드에서 직접 구현하기
var kotlinImpl = object: InterfaceKotlin {
override var variable: String = "init value"
override fun get() {
}
override fun set() {
}
}
- 인터페이스는 외부의 다른 모듈을 위한 의사소통 방식 정의
-> 혼자/소수의 인원이 하나의 모듈 단위를 개발하는 경우 인터페이스 사용 권장 X