분류 전체보기
-
[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..
-
[Kotlin] 7. 흐름제어와 논리연산자Kotlin 2024. 3. 12. 17:16
흐름제어 break 구문이 실행되는 중간에 반복문을 종료하고 for(i in 1..9){ if(i == 3)break println(i) } continue 건너뛰고 반복문 계속 진행 for(i in 1..9){ if(i == 3)continue println(i) } 레이블 loop@for(i in 1..10){ for(j in 1..10){ if(i == 1 && j == 2)break@loop println("i : $i, j : $j") } } loop@ 이 부분이 레이블이며 고전 언어에서는 수동으로 하나씩 반복문을 종료해줘야했지만 kotlin에선 레이블을 이용해 반복문을 한번에 종료할 수 있습니다. println("i : $i, j : $j"): " " 안에 변수를 사용할 때 $ 표시와 함께 사..