본문 바로가기

Kotlin32

[코틀린] 프로퍼티의 접근 프로퍼티의 접근 자바의 필드에 접근하기 위해선 일일이 setter와 getter 접근 메소드를 구현해야함 코틀린의 프로퍼티는 변수 선언 시 접근 메소드가 이미 구현되어 있음 class Test{ val a = 10//상수로 선언되었기에 setter 사용 불가 var b = 11//getter, setter 둘 다 사용 가능 constructor() { b = a//정상적 처리 a = b//에러 발생 } } 기본 getter, setter 지정 (Custom getter, setter) field : 프로퍼티를 참조하는 변수 value : setter의 매개변수, 외부로부터 값을 가져옴 class Test{ val a = 10//상수로 선언되었기에 setter 사용 불가 get() = field var b.. 2020. 9. 18.
[코틀린] 정보은닉, 캡슐화 그리고 가시성 지시자 캡슐화 (Capsulation) - 클래스 작성 시 필요한 기능만 외부로 노출시키고 나머지 속성, 메소드는 숨김 ​ 가시성 지시자(Visibility Modifier) - 가시성(Visibility) : 클래스, 메소드, 프로퍼티의 접근 범위 - 불필요한 부분은 숨기고 필요한 부분만 공개하기 위해 객체들의 접근 범위를 결정해줌 지시자 같은 클래스 하위 클래스 같은 모듈 다른 모듈 특징 private O X X X 제일 엄격한 제한 protected O O X X 최상위 클래스에는 protected 사용 불가 internal O O O X 같은 모듈 내에서만 public (기본값) O O O O 접근 범위 제한 x Visibility Modifiers - Kotlin Programming Language .. 2020. 9. 18.
[코틀린] 인터페이스 (Interface) 인터페이스 (Interface) 일종의 구현 약속으로 인터페이스를 구현하는 클래스들은 인터페이스가 가지고 있는 내용을 구현해야함 클래스의 형태를 규정한다. 추상 클래스와는 다르게 추상 프로퍼티만 가질 수 있다. 자바와는 다르게 코틀린의 인터페이스에는 메서드에 구현 내용을 넣을 수 있다. 인터페이스 자체로는 객체 생성 x ​ 인터페이스 접근 코틀린에선 다중 상속을 지원하지 않음 but 여러 개의 인터페이스를 구현하는 것은 가능 그렇기 때문에 여러 개 인터페이스에 중복되는 메서드나 프로퍼티에 접근 시도할 때는 앵글 브리켓을 사용하여 접근하려는 인터페이스를 명시해줌 open class TestParent{ //open class는 open 사용안하면 오버라이드 x (final로 설정됨) open fun int.. 2020. 9. 18.
[코틀린] inner 클래스 inner 클래스 특정 클래스 안에 선언된 클래스 앞에 inner 키워드를 붙이지 않으면 외부에서 접근 못함 바깥 클래스 접근법 : 바깥클래스명().메소드명() 바깥 클래스의 상위클래스 접근법 : Super@바깥클래스명().메소드명() open class TestParent { fun introduce() { println("it's test parent") } } class Test : TestParent() { fun introduce() { println("it's test") } inner class TestChild{ fun introduce() { println("it's test child") Test().introduce() //inner 클래스(TestChild)에서 바깥 클래스(Test.. 2020. 9. 18.