본문 바로가기

코틀린22

코틀린(12) - 스코프, 접근제한자 스코프 스코프가 지정되는 범위는 패키지내부, 클래스내부, 함수내부 등이 있다 스코프에 대한 3가지 규칙 스코프 외부에서는 스코프 내부의 멤버를 '참조연산자'로만 참조가 가능하다 a.eat( ) *클래스의 멤버 참조할 때 클래스 외부에서 인스턴스명의 참조연산자(.) 사용하여 접근하는것, 생각해보면 하나의 패키지에서 다른 패키지 내의 멤버를 참조 할 때도 import.com.google.dimo improt연산자와 참조연사자를 사용했어야 했다. 동일 스코프 내에서는 멤버들을 '공유'할 수 있다. 하위 스코프에서는 상위 스코프의 멤버가 가려진다. 접근제한자 접근제한자는 스코프 외부에서 스코프 내부에 접근할 때 그 권한을 '개발자가 제어'할 수 있는 기능이다. 접근제한자에는 4가지가 존재한다. public in.. 2022. 3. 21.
코틀린(11) - 코틀린의 기본적인 프로젝트 구조 정의 위주의 내용 프로젝트 : 코틀린으로 어플리케이션을 짤 때 관련한 모듈 내용을 담는 "큰 틀" 모듈 : 하나의 프로젝트는 여러개의 모듈로 이루어져 있다. 이 모듈은 '직접' 만들 수도 있고 필요한 기능을 이미 구현해 둔 "라이브러리 모듈"을 가져와 붙일 수도 있기 때문에 굉장히 편리한 기능 단위이다. 모듈 안 : 모듈안에는 다수의 폴더와 파일이 들어갈 수 있다. 여기에는 코틀린 코드파일(.kt)뿐만 아니라 모듈과 관련된 설정 및 리소스 파일 등도 포함 될 수 있다. 이렇게 프로젝트, 모듈, 폴더 및 파일들이 실제 파일시스템에 기반한 물리적인 구조를 담당한다고 하면 논리적인 구조로는 "패키지"라는 것이 있다. 패키지는 개발시에 소스 코드의 '소속'을 지정하기 위함이다. 코드를 작성할 때는 코드내에서 사.. 2022. 3. 21.
코틀린(10) - 오버라이딩 , 추상화, 인터페이스 오버라이딩 상속시에는 기본적으로 슈퍼클래스에 있는 함수와 같은 이름과 형태를 가진 함수는 서브클래스에서 만들 수 없다. 하지만 수퍼클래스에서 허용만 한다면 "오버라이딩"이라는 방법으로 서브클래스에서 같은 이름과 형태로 된 함수의 내용을 다시 구현할 수 있다. fun main() { var t = Tiger() t.eat() } open class Animal{ open fun eat(){ println("음식을 먹습니다.") } } class Tiger : Animal(){ override fun eat(){ println("고기를 먹습니다.") } } 추상화 수퍼클래스에서는 함수의 구체적인 구현은 없고 단지 Animal의 모든 서브클래스는 eat이라는 함수가 "반드시 있어야 한다"는 점만 명시하여 각 .. 2022. 3. 21.
코틀린(9) - 상속, 상속으로 속성과 기능을 확장 실무자 관점에서 볼 때 상속이 필요한 경우는 두 가지가 있다. 이미 존재하는 클래스를 확장하여 새로운 속성이나 새로운 함수를 추가한 클래스를 만들어야 할 때 여러개의 클래스를 만들었는데 클래스들의 공통점들을 뽑아 코드관리를 편하게 해야 할때 속성과 함수를 물려주는 쪽을 '슈퍼 클래스' 물려 받는 쪽을 '서브 클래스'라고 한다. *코틀린은 상속 금지가 기본값이다 *open은 클래스가 상속해 줄 수 있도록 클래스 선언시 붙여줄 수 있는 키워드이다. 상속에 대한 두 가지 규칙 서브 클래스는 슈퍼 클래스에 존재하는 속성과 '같은 이름'의 속성을 가질 수 없다. 서브 클래스가 생성될 때는 반드시 수퍼클래스의 생성자까지 호출되어야 한다. 서브 클래스를 만들 때는 생성자에서 파라미터값을 받긴 하지만 클래스의 자체 속.. 2022. 3. 21.
코틀린(8) - 생성자 생성자 class Person (var name:String, val brithYear:Int) // 2022. 3. 21.