테크과학! DiMo
개발자가 얘기하는 생활 속 IT기술에 대한 과학! 여러분이 몰랐던, 혹은 정확히 알지 못했던 IT 테크놀러지를 파드립니다! 좋은 영상을 위한 채널 후원, 투네이션을 통해서 해주세요! 후원링크 htt
www.youtube.com
디모님의 코틀린 강좌 영상을 보고 포스팅 작성 예정이며, 현재는 유튜브 활동을 안하고 계시지만 올려주신 영상 복기하며 항상 배우고 있습니다.
Kotlin Playground: Edit, Run, Share Kotlin Code Online
play.kotlinlang.org
별도의 설치 없이 코틀린 시뮬레이션을 이용하실 분은 위 링크를 이용하세요.
Kotlin 강좌 #6 - 반복문과 증감연산자
1. 증감연산자
1) 증감연산자에는 전위, 후위 연산자가 있으며 ++,--가 변수의 앞에 붙는지 뒤에 붙는지에 따라
증가하는 시기가 다른것을 뜻한다. 아래 그림으로 나름 간단히 그려보았다.
Kotlin 강좌 #7 - 흐름제어와 논리연산자
1. label
1) 코틀린에는 총 세가지의 표현식이 있습니다. return / break / continue
코틀린은 모든 표현식에 @를 이용하여 label(라벨, 레이블)이 될 수 있습니다.
원하는 위치에 label을 설정해주면 원하는 루프의 흐름을 제어할 수 있습니다.
fun main() {
repeatExample()
labelExample()
}
fun repeatExample(){
for(i in 1..100){
for (j in 1..100){
if(j==15)break
println("i=$i / j=$j")
}
}
}
fun labelExample(){
loop@ for(i in 1..100){
for (j in 1..100){
if(j==15)break@loop
println("i=$i / j=$j")
}
}
println("-------end repeatExample-------")
}
정답은 드래그 하시면 나옵니다.
labelExample은 i=1, j=14 를 마지막 출력으로 모든 반복문이 종료됩니다. label을 i 반복문에 걸어뒀기 때문이죠.
반면 repeatExample 은 j는 최대 14의 값을 가진채로 i=100, j=14를 마지막 출력으로 반복문이 종료됩니다.
Kotlin 강좌 #8~9 - 클래스의 기본 구조, 생성자
1. init, constructor
1) init은 인스턴스 생성시 초기화 함수 라고 보시면 됩니다. 하지만 아래 예제처럼 6개의 인물이 아닌 수백명의 인물중 90%가 1997년생이고 나머지 10%가 다른년생이라면 클래스 생성하여 변수에 넣어줄 때 90%만큼 1997을 생략 시킬 수 있는 방법이 있습니다.
constructor는 예제에 나와있듯 보조생성자는 반드시 기본 생성자를 통해 속성을 초기화 해줘야 하므로 : this(name, 1997)을 작성하였습니다.
fun main() {
var a = Person("홍길동", 1990)
var b = Person("아무개", 1997)
var c = Person("김철수", 2003)
var d = Person("이루다")
var e = Person("샘성김")
var f = Person("애플최")
}
class Person (var name:String, val birthYear:Int){
init { // init은 생성자를 통해 인스턴스가 만들어 질 때 호출되는 함수
println("${this.birthYear}년생 ${this.name}님이 생성되었습니다.")
}
constructor (name:String) : this(name, 1997){//보조 생성자 (secondary constructor) : 다양하게 인스턴스를 생성하는 법을 제시함으로써 편의를 제공하는 기능
println("보조 생성자 생성")
}
}
Kotlin 강좌 #10 - 클래스의 상속
1. 실무자의 관점에서의 상속이 필요한 경우 두가지
1) 첫번째는 이미 존재하는 클래스를 확장하여 새로운 속성이나 함수를 추가한 클래스를 만들어야 할때
두번째는 클래스들의 공통점을 뽑아 코드관리를 편하게 해야 할때
fun main() {
var a = Animal("별이",5,"개")
var b = Dog("별이",5)
var c = Cat("보리",8)
a.introduce()
b.introduce()
c.introduce()
b.bark()
c.meow()
}
open class Animal (var name:String, var age:Int, var type:String)
{
fun introduce(){
println ("저는 ${type} ${name}이고, ${age}살 입니다.")
}
}
class Dog (name:String, age:Int) : Animal (name,age,"개")
{
fun bark() {
println("멍멍")
}
}
class Cat (name:String, age:Int) : Animal (name,age,"고양이")
{
fun meow(){
println("야옹")
}
}
아직은 상속에 대한 정확한 개념이 잡히지 않아 추후 실무에 이용해보고 코멘트를 추가 할 계획입니다.
'공부 > Kotlin & Android' 카테고리의 다른 글
안드로이드 스튜디오 style.xml 파일이 없음 (0) | 2021.07.12 |
---|---|
Kotlin #11~#15 강좌 모르는 단어 정리 😋 (0) | 2021.07.02 |
Kotlin #1~#5 강좌 모르는 단어 정리 😋 (0) | 2021.05.27 |
Kotlin 자료형 및 타입추론 (0) | 2020.04.29 |