본문 바로가기

전체 글533

[코틀린] 정보은닉, 캡슐화 그리고 가시성 지시자 캡슐화 (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.
[코틀린] 상속 상속 기본적으로 코틀린의 모든 클래스는 Any 클래스의 하위 클래스가 되며, 상위 클래스를 따로 명시하지 않으면 Any클래스를 상속받게 됨. 코틀린에서는 상속 가능한 클래스(상위 클래스)를 선언할 때 open이라는 키워드를 사용한다. 자바에서는 final 키워드를 사용하지 않는 이상 기본적으로 모두 상속 가능한 클래스이다. ​ open class Person { //묵시적으로 Any로부터 상속된다. } class Student : Person() { //기반 클래스로부터 상속됨, 다른 클래스로 상속 불가 } 다형성 메소드들이 같은 이름을 사용하지만 매개변수가 다르거나 구현 내용이 달라서 다양한 기능을 수행할 수 있게 하는 것 1. 오버로딩 (Overloading) - 동일 클래스의 같은 이름의 메소드를 .. 2020. 9. 18.