Kotlin
-
[Kotlin] 변수, 함수, 클래스의 접근범위와 접근제한자Kotlin 2024. 3. 12. 19:06
scope란?? 말 그대로 범위라는 뜻으로 변수나 함수 클래스 같은 멤버들을 서로 공유하여 사용할 수 있는 범위를 지정해둔 단위이다 패키지안의 변수 함수 클래스는 하나의 스코프이고 함수 클래스 안에 있는 변수 함수는 또 다른 하위 스코프가 됩니다 3가지 규칙 1. 스코프 외부에서는 스코프 내부의 멤버를 참조 연산자로만 참조가 가능하다 - import 또는 a.eat() 의 . 부분 2. var a = "패키지 스코프" class B{ fun print(){ println(a) } } fun main() { println(a) B().print() } 이 코드를 실행해 보면 변수 a는 클래스 B 나 main 함수에 속해 있지는 않지만 동일한 스코프 내에서 변수를 공유하여 사용할 수 있는 것을 볼 수있다. ..
-
[Kotlin] 오버라이딩과 추상화Kotlin 2024. 3. 12. 18:45
오버라이딩 수퍼 클래스에서 정의된 함수와 같은 이름을 가진 함수는 서브 클래스에서 생성하지 못한다 수퍼클래스에 허용만한다면 오버라이딩을 이용하여 서브클래스에서 수퍼클래스에서 정의된 함수를 같은 이름으로 다시 구현할 수있다. fun main() { var tiger = Tiger() tiger.eat() } open class Animal{ //open 붙이면 오버라이드 가능 open fun eat(){ println ("음식을 먹습니다") } } class Tiger : Animal(){ //override 키워드 사용하여 오버라이드 override fun eat(){ println("고기를 먹습니다.") } } 추상화 추상화란? 선언부만 있고 기능이 구현되지 않음 추상함수를 포함한 추상클래스를 만들고 ..
-
[Kotlin] 상속Kotlin 2024. 3. 12. 18:17
상속 클래스를 더 구조적으로 다룰 수 있다. 부모 클래스에 있는 기능과 속성을 자식 클래스에서도 그대로 사용 할 수 있어야한다. 코틀린은 상속 금지가 기본값이기때문에 open 키워드를 이용해 상속을 허용합니다. 부모클래스 open class Animal(var name:String, var age:Int, var type:String){ fun introduce(){ println ("저는 ${type}이고 ${name}이고 ,${age}살 입니다.") } } class Dog , class Cat class Dog (name:String, age:Int) : Animal (name,age,"개"){ fun bark(){ println("멍멍") } } class Cat (name:String, age:..
-
[Kotlin] 8. 클래스 생성, 생성자, init, constructor (보조 생성자 )Kotlin 2024. 3. 12. 17:28
클래스 생성 class Person(var name:String, var birthYear:Int){ } 인스턴스 생성 후 출력 fun main() { var a = Person("박보영",1990) var b =Person("전정국", 1997) var c = Person("장원영", 2004) println("안녕하세요!! 제 이름은 ${a.name} 이고 저는 ${a.birthYear} 년생 입니다.") } 매번 println을 사용하기에 번거로우니 클래스에서 공통적으로 사용한 자기소개 함수를 생성해서 사용하겠습니다. fun main() { var a = Person("박보영",1990) var b =Person("전정국", 1997) var c = Person("장원영", 2004) a.intro..