일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 컬렉션 함수
- 코틀린 컬렉션함수
- kotlin collection
- 코틀린
- 코틀린 문자열
- 프로그래머스 #탐욕법 #큰수만들기 #join #python
- 코틀린 제너릭
- kotlin recyclerview
- lateinit
- 컬렉션함수
- kotlin addview
- add view
- kakao blind
- programmers # 프로그래머스 #큰수비교 #cmp_to_key()
- 코틀린 람다함수
- 코틀린 중첩클래스
- 객체의 동일성
- 코틀린 내부 클래스
- isNullOrBlank
- Kotlin
- Kotlin Generic
- 카카오 순위검색
- kotlin listview
- 코틀린 lateinit
- 프로그래머스
- 내용의동일성
- 해시
- collection function
- 코틀린 data class
- class
- Today
- Total
목록Kotlin (19)
엔지니어 규의 IT 프로그래밍 다이어리

Object 기존에 배웠던 클래스는 단지 인스턴스 객체를 만들기 위한 '틀' 이기 때문에 내부에 있는 속성이나 함수를 사용하려면 생성자를 통해 실체가 되는 인스턴스 객체를 만들어야만 했다. (ex : var a = Person("김종국", 1990) ) 그러나 여러개의 인스턴스 객체가 필요하지 않으며 단하나의 객체만으로 공통적은 속성과 함수를 사용해야 하는 코드에서는 굳이 class를 쓸필요 없이 object를 사용하면 된다. 코틀린에서는 singleton pattern 을 언어 차원에서 지원한다. Singleton Pattern : 클래스의 인스턴스를 단 하나만 만들어 사용하도록 하는 코딩 아키텍쳐 패턴 아래의 소스코드를 보자. fun main(){ println(Counter.count) Counte..
오버라이딩 상속시에는 기본적으로 Super class 에 있는 함수와 같은 이름과 형태를 가진 함수는 Sub class 에서는 만들수 없다. 하지만 Super class 에서 허용만 한다면 overriding 이라는 방법으로 subclass 에서 같은 이름과 형태로 된 함수의 내용을 다시 구현 할 수 있다. 아래의 소스코드를 보자. fun main(){ var a = Animal() var b = Tiger() a.eat() b.eat() } open class Animal{ open fun eat(){ println("음식을 먹는다.") } } class Tiger : Animal(){ override fun eat() { println("고기를 먹는다.") } } 음식을 먹는다. 고기를 먹는다. cs..
생성자(Constructor) 생성자란 뭘까? 새로운 인스턴스를 만들기 위해 호출하는 특수한 함수이며, 생성자를 생성하면 클래스의 인스턴스를 만들어 반환 받을 수 있다. 생성자는 인스턴스의 속성을 초기화 하며, 인스턴스 생성시 구문을 수행 한다. 당최 무슨 말인지 하나도 이해가 가지 않을 수 있다. 우선 인스턴스의 속성을 초기화 한다는 것을 알아보자. 다음 코드를 보자. class PersonA{} class PersonB(){} class PersonC(var name : String){} class PersonD(var name: String, birthyear: Int){} cs 차례로 생성자가 없는 class, 인자가 없는 생성자, 인자가 1개인 생성자, 인자가 2개인 생성자 이다. 이처럼 코틀린..

클래스 클래스란 '값' 과 그 값을 사용하는 '기능' 들을 묶어놓은것이다. 우리가 지금까지 배운 여러가지 자료형 들 역시 Kotlin 내부에서는 모두 class 로 이루어져 있다. 클래스 = 속성(고유의 특징값) + 함수(기능의 구현) 또한 클래스는 '인스턴스' 를 만드는 틀이라는 점을 이해 해야 한다. 인스턴스란 클래스를 이용해서 만들어 내는 서로 다른 속성의 객체를 지칭하는 용어 이다. 갑자기 객체, 인스턴스, 클래스 라는 용어가 등장해서 햇갈릴수 있다. 쉽게 생각하면 속성이 있으며, 행위를 할 수 있는 것들은 객체라고 할 수 있다. 자동차는 객체다. 자동차는 핸들,바퀴,창문 등등.. 의 속성이 있고, 이동,창문내리기,에어컨, 음악틀기, 네비게이션 등등 의 기능이 있다. 신용카드 역시 객체다. 신용카..
흐름제어 코드의 흐름을 제어할수 있는 키워드를 알아보자. 앞에서 우린 return 이라는 키워드를 배웠다. return : 함수를 종료하고 값을 '반환' 하는 역할을 한다. 또한 반복문에서 사용할 수 있는 break 와 continue로 흐름을 제어할 수 있다. break : 반복문 내의 구문이 실행되는 중간에 반복문을 종료하고 즉시 다음구문으로 넘어가는 역할을 함. continue : 다음 반복 조건으로 넘어가는 역할을 함. 1 2 3 4 5 6 7 8 9 10 11 12 fun main(){ for (i in 1..10){ if(i ==3) break print(i) //12 } for (j in 1..10){ if(j==3) continue print(j) //1245678910 } } cs 위 소..
조건문에는 조건형 반복문 과 범위형 반복문이 있다. 조건형 반복문 : 조건이 참인 경우 반복을 유지 범위형 반복문 : 반복 범위를 정해 반복을 수행 조건형 반복문 : While 1 2 3 4 5 6 fun main(){ var a = 0 while(a 5 는 거짓이지만 최초한번 은 실행되어 출력 값은 0 이 나온다. 따라서 조건과 상관없이 반드시 한번은 실행되야 한다면 do while 구문을 사용하면 된다. 범위형 반복문 : For 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 fun main(){ for (i in 1..10){ print(i) //12345678910 } for (j in 1..10 step 3){ print(j) //14710 } for (k in 9 downTo ..
타입 추론이란? 타입추론 : 변수나 함수들을 선언할 때나 연산이 이루어질때 자료형을 모드에 명시하지 않아도 코틀린이 자동으로 자료형을 추론하는 기능 1 2 3 4 fun main(){ var a : Int = 3 var b = 3 // 타입추론을 통해 Int 로 자료형을 지정하지 않아도 자료형을 추론한다. } Colored by Color Scripter cs Int 외에도 String, Double, Float 등 대부분의 자료형은 변수 할당시 추론이 가능하다. 이러한 타입추론을 통해 코드량을 줄일 수 있다. 함수 함수는 특정한 동작을 하거나 원하는 결과값을 연산하는데 사용한다. 아래 소스 코드를 예시로 들어보자. 1 2 3 4 5 6 7 fun main(){ println(add(3,4,5)) } f..
형변환 형변환은 하나의 변수에 지정된 자료형을 호환되는 다른 자료형으로 변경하는기능을 의미한다. 코틀린은 자료형 간의 형변환을 지원하기 위해 형변환 함수들을 제공하고 있다. 이러한 형변환 함수들은 to 뒤에 변환된 자료형을 받아서 사용하고 있다. toByte() toShort() toInt() toLong() toFloat() toDouble() toChar() 1 2 3 4 5 fun main(){ var a : Int = 12345 var b : String = a.toString() // 정수 자료형인 a 를 문자 자료형으로 바꿈 println(b) } Colored by Color Scripter cs 위 코드 처럼 형변환을 하기 위해서는 Int형 변수의 toString() 함수를 호출하여, St..
코틀린의 클래스 이름은 파스칼 표기법(모든 단어를 대문자로 시작) 예: Class Name 함수나 변수 이름은 첫 단어만 소문자로 시작하는 카멜 표기법을 지향한다. 예: functionName 코틀린은 변수를 두가지 방법으로 선언 1 2 3 4 5 6 fun main(){ var a : Int = 4 // 변경가능 val b : Int = 4 // 변경불가능 println(a) println(b) } cs var 변수 : 자료형 = value 형태로 자료를 선언한다. var : 일반적으로 통용되는 변수로 언제든지 읽기 쓰기가 가능함 val : 선언시에만 초기화 가능 하며 중간에 값을 변경할 수 없음 그러므로 runtime 시에 변하지 말아야 할 값은 val 로 선언하는 것이 좋다. 또한 변수는 선언 위치..