๋ฉ์ธํจ์
fun main() {
print("Hello")
}
๋ณ์&์์
fun main() {
var i = 10
var name = "ํด"
var point = 3.14
}
์ฝํ๋ฆฐ์ ํ์ ์ถ๋ก ์ด ๋๋ค. ์๋์ ๊ฐ์ ์ฝ๋
fun main() {
var i:Int =10
var name:String ="ํด"
var point:Double = 3.14
//์์๋ var ๋์ val
val num = 20
}
ํฑ ๋ ๋ฒจ ์์ const val
์๋ฐ์ ๋ฌ๋ฆฌ mainํจ์๋ฐ์ผ๋ก ์์๋ฅผ ๋บ ์ ์๋ค.
์ด๋ฅผ ํฑ ๋ ๋ฒจ ์์๋ผ ํ๋ค. main()๋ณด๋ค ์ฐ์ ์ผ๋ก ์ปดํ์ผ ๋๋ค.
const val num = 20
fun main() {
}
ํ๋ณํ
fun main() {
var i = 10
var l = 20L
l = i //์ค๋ฅ. ํ์
์ด ๋ค๋ฅด๋ฉด ๋ค์ด๊ฐ์ง ์๋๋ค.
//ํ์
์บ์คํ
์ด ํ์ํ๋ค
l = i.toLong()
i = l.toInt()
}
fun main() {
var i = 10
var name = "10"
name = i.toString()
}
String
fun main() {
val name = "hello"
println(name)
println(name.uppercase())
println(name.lowercase())
println(name[0])
println("์ ์ด๋ฆ์ ${name+10} ์
๋๋ค.")
}
์คํ๊ฒฐ๊ณผ
hello
HELLO
hello
h
์ ์ด๋ฆ์ hello10 ์
๋๋ค.
max,min
import kotlin.math.max
fun main() {
val i = 10
val j = 20
print(max(i,j))
}
random
import kotlin.random.Random
fun main() {
val randomNumber = Random.nextInt()
print(randomNumber)
}
์คํ๊ฒฐ๊ณผ
1263993763
fun main() {
//from 0 until 100
//from์ inclusive, until์ exclusive
//๋ฐ๋ผ์ 0~99๊น์ง ์ ์ค ๋ ๋ค
val randomNumber = Random.nextInt(0,100)
print(randomNumber)
}
ํค๋ณด๋ ์ ๋ ฅ
์๋ ๋ ์ฝ๋๋ ๊ฐ์ ๊ฒฐ๊ณผ์ง๋ง, ์ธ๋ถ์ ์ธ ์ฐจ์ด๊ฐ ์๋ค.
Scanner๋ 'java.util'ํจํค์ง์ ์ํ๋ ์๋ฐ ํด๋์ค, ์ฝ๋ ๋ถ๋ถ๊ณผ ํ์ ๋ณํ ๋ฐ๋ก ํด์ผํจ
readln().toInt()์ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ํธ๋ฆฌํ๊ณ ๊ฐ๊ฒฐํ ๋ฐฉ๋ฒ์ผ ์ ์์ต๋๋ค.
fun main() {
print("A์
๋ ฅ")
val a:Int = readln().toInt()
print("B์
๋ ฅ")
val b:Int = readln().toInt()
print(a+b)
}
fun main() {
//in์ ์ฝํ๋ฆฐ์์ ์ฌ์ฉ ๋ชปํ๋ ํค์๋์ด๋ฏ๋ก `` ๋ก ๋ฌถ์ด์ค๋ค.
val reader = Scanner(System.`in`)
reader.nextInt()
reader.next()
}
์กฐ๊ฑด๋ฌธ
fun main() {
var i = 5
if (i > 10) {
print("10๋ณด๋ค ํฌ๋ค")
}else if ( i > 5){
print("5๋ณด๋ค ํฌ๋ค")
} else{
print("x")
}
}
//Commandํค๋ก if<->when ๋ณํ ๊ฐ๋ฅํ๋ค.
fun main() {
var i = 5
when {
i > 10 -> {
print("10๋ณด๋ค ํฌ๋ค")
}
i > 5 -> {
print("5๋ณด๋ค ํฌ๋ค")
}
else -> {
print("x")
}
}
}
์กฐ๊ฑด์ ์์ฒด๋ฅผ ๊ฐ์ ๋ฃ์ ์ ์๋ค. if๋ฌธ์ด ์๋๋ผ ์!! ์๋ฐ์์๋ ๋ถ๊ฐ๋ฅํ๋ค
fun main() {
var i = 5
var result = if (i > 10) {
"10๋ณด๋ค ํฌ๋ค"
}
else if (i > 5) {
"5๋ณด๋ค ํฌ๋ค"
}
else {
"x"
}
print(result)
}
fun main(){
//boolean result = i > 10 ? true : false; //์๋ฐ์์ ์ผํญ์ฐ์ฐ
val i = 5
val result = if ( i > 10 ) true else false
}
๋ฐ๋ณต๋ฌธ
fun main(){
val items = listOf(1,2,3,4,5)
for(item in items){
print(item)
}
}
์๋์ ๊ฐ์ ์ฝ๋
fun main(){
val items = listOf(1,2,3,4,5)
items.forEach { item ->
print(item)
}
}
fun main(){
for ( i in 0..3 ){
print(i)
}
}
์คํ๊ฒฐ๊ณผ
0123
fun main(){
val items = listOf(1,2,3,4,5)
for ( i in 0..(items.size-1)){
print(i)
}
}
์คํ๊ฒฐ๊ณผ
01234
while, break, continue๋ ์๋ฐ์ ๋์ผํ๋ค
List
fun main(){
//๋ฆฌ์คํธ๋ ๋ถ๋ณ. ๊ฐ์ ธ๋ค ์ธ ์๋ง ์๋ค.
val items = listOf(1,2,3,4,5)
//๊ฐ๋ณ
val item = mutableListOf(1,2,3,4,5)
//์ ์ฝ๋์ ๊ฐ๋ค. ์ฝํ๋ฆฐ์ ํ์
์ถ์ ์ ํ ์ ์์ผ๋ฏ๋ก ์๋์ ๊ฐ์ ๋ถ๋ถ์ ์๋ตํ๋ค.
val item : MutableList<Int> = mutableListOf<Int>(1,2,3,4,5)
item.add(6)
item.remove(3)
}
Array
fun main(){
//๋ฐฐ์ด์ ๊ฐ๋ณ
val items = arrayOf(1,2,3)
items[0] = 10
for( i in items) {
println(i)
}
}
์คํ๊ฒฐ๊ณผ
10
2
3
์์ธ์ฒ๋ฆฌ
fun main(){
val items = listOf(1,2,3)
try{
val item = items[4]
}catch(e: Exception){
print(e.message)
}
}
์คํ๊ฒฐ๊ณผ
Index 4 out of bounds for length 3
Null Safety
fun main(){
var name: String = null //์ค๋ฅ
๋์ ๋ฃ์ ์ ์๋ ํ์
์ ํ์
๋ค์ ? ๋ฃ์ด์ผํจ
var name: String? = null
name = "kim"
name = null
}
fun main(){
var name: String? = null
var name2: String = ""
//?๊ฐ ๋ถ์๊ฑฐ์ ์๋ถ์๊ฑฐ๋ ๋ณ๋ ํ์
์ผ๋ก ์ฒ๋ฆฌ. ๋ฐ๋ผ์ ์๋๋ฌธ์ฅ์ ์๋ฌ
name2 = name //์๋ฌ
name = name2 //์ด๊ฑฐ๋ ์ ์ ๋์, name์ด ๋ ํฐ ๋ฒ์์. ์ ์๊ฐํด๋ณด์
}
if๋ฌธ์ผ๋ก nullCheck
fun main(){
var name: String? = null
var name2: String = ""
//์๋์ ๊ฐ์ด nullCheck๋ฅผ ํด์ค์ผํ๋ค.
if (name != null) {
name2 = name //name์ด Stringํ์
์ผ๋ก ๋ณํ๋๋ ๊ฒ
}
}
!!์ผ๋ก ๋์ฒดํฌ
fun main() {
var name: String? = null
var name2: String = ""
// ?๋ฅผ ๋ผ๋๋ฐฉ๋ฒ '!!'
//ํ์ง๋ง ์ด ์ฝ๋๋ ๊ฐ๋ฐ์๊ฐ ์์๋ก null์ด ์๋์ ๋ณด์ฆํ๊ธฐ์ ์ข์ง ์์ ์ฝ๋
name2 = name!!
}
์ฝํ๋ฆฐ์์ ์ ๊ณตํ๋ ๋ด์ฅํจ์ ์ด์ฉ
fun main() {
var name: String? = null
name = "kim"
name = null
var name2: String = ""
//"null์ด ์๋๋ผ๋ฉด ์ด ๋ธ๋ก์ ์คํํ์"๋ผ๋ ๋ฌธ์ฅ
name?.let{
name2 = name
}
}
ํจ์
ํ ๋ ๋ฒจ ํจ์: ๋งจ ๋ฐ๊นฅ์ ์ ์ธํ ํจ์๋ก ์ด๋ ํ์ผ์์๋ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
fun main(){
print(sum(10,20))
}
fun sum(a: Int, b: Int) : Int {
return a + b
}
ํ์ค์ฝ๋๋ ์๋์ฒ๋ผ ์ฌ์ฉ๊ฐ๋ฅํ๋ค.
fun sum(a: Int, b: Int) : Int = a + b
์ถ๋ก ๊ฐ๋ฅํ ๊ฒฝ์ฐ ๋ฆฌํด ์๋ต ๊ฐ๋ฅ, inputํ์
์ ๋ฐ๋์ ์ง์ ํด์ผํ๋ค.
fun sum(a: Int, b: Int) : Int = a + b
์ค๋ฒ๋ก๋ฉ
fun main(){
print(sum(10,20))
}
fun sum(a: Int, b: Int, c:Int = 0) : Int = a + b +c
------------------------------------------------------
๋ฉ์๋๋ฅผ ์ฌ๋ฌ ๊ฐ ๋ง๋๋ ๊ฒ์ด ์๋, ํ๋ผ๋ฏธํฐ๋ฅผ ์กฐ์ ํด์ ์ฌ์ฉํ๋ค.
์๋,์ ์ฝ๋ ๋ชจ๋ ๊ฐ๋ฅํ๋ค.
fun main(){
print(sum(10,20,30))
}
fun sum(a: Int, b: Int, c:Int = 0) : Int = a + b +c
fun main(){
print(sum(a=10,b= 20)) //์์ ์ค์x. b=10,a=20 ๋ฃ์ด๋ ๋๋ค.
}
fun sum(a: Int, b: Int, c:Int = 0) : Int = a + b +c
class
fun main(){
val john = Person("John",20)
print(john.name)
print(john.age)
}
ํด๋์ค์ ๊ธฐ๋ณธ์์ฑ์๋ฅผ ๋ฐ๋ก ์์ฑํ๋ค.
class Person(val name: String, var age: Int){
}
fun main(){
val john = Person("John",20)
print(john.name)
print(john.age)
}
์ฒ์์ ์์ฑ์์์ ์ ๋ฌํ๊ณ ์ธ๋ถ์ ๋
ธ์ถ ์ํค์ง ์๊ฒ ๋ค.: private
class Person(
private val name: String,
var age: Int
)
data class
fun main(){
val john = Person("John",20)
val john2 = Person("John",20)
print(john == john2) //๋ค๋ฅธ ๊ฐ์ฒด์ด๋ฏ๋ก '==' ์ false
}
class Person(
val name: String,
var age: Int
)
์๋ฐ์ฒ๋ผ ๋ด์ฉ์ด ๊ฐ์ผ๋ฉด ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋ด๋๋ก ํ๋ ค๋ฉด eqauls์ hashcode๋ฅผ ์ฌ์ ์ ํ๋ฉด ๋๋ค.
fun main() {
val john = Person("John", 20)
val john2 = Person("John", 20)
println(john)
println(john2)
println(john == john2)
}
class Person(
val name: String,
var age: Int
)
์คํ๊ฒฐ๊ณผ
Person@33c7353a
Person@681a9515
false
๋์ด ๋ค๋ฅธ ๊ฐ์ฒด์์ ์ ์ ์๋ค.
์ฌ์ ์ ๊ท์ฐฎ๋ค. ์ฝํ๋ฆฐ์ ์์ฃผ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ด ์๋ค. ๊ทธ๊ฒ์ data class
fun main() {
val john = Person("John", 20)
val john2 = Person("John", 20)
println(john)
println(john2)
println(john == john2)
}
data class Person(
val name: String,
var age: Int
)
์คํ๊ฒฐ๊ณผ
Person(name=John, age=20)
Person(name=John, age=20)
true
fun main() {
val john = Person("John", 20)
val john2 = Person("John", 20)
println(john)
println(john2)
println(john == john2)
}
class Person(
val name: String,
var age: Int
)//์์ฑ์๋ก ํ๋ผ๋ฏธํฐ ๋ฐ๊ณ ๋์ด ์๋๋ผ ์์
์ ๋ ํ๊ณ ์ถ๋ค๋ฉด
{
init{
print("init")
}
}
fun main() {
val john = Person("John", 20)
val john2 = Person("John", 20)
println(john)
println(john2)
println(john == john2)
john.hobby ="ddd" //์ธ๋ถ์์ ๋ณ๊ฒฝ๊ฐ๋ฅ
}
class Person(
val name: String,
var age: Int
)//์์ฑ์๋ก ํ๋ผ๋ฏธํฐ ๋ฐ๊ณ ๋์ด ์๋๋ผ ์์
์ ๋ ํ๊ณ ์ถ๋ค๋ฉด
{
var hobby = "์ถ๊ตฌ"
init{
print("init")
}
fun some(){
hobby = "๋๊ตฌ"
}
}
getter,setter
fun main() {
val john = Person("John", 20)
val john2 = Person("John", 20)
println(john)
println(john2)
println(john == john2)
john.hobby ="ddd" //private set์ด๋ฏ๋ก ์ค๋ฅ
}
class Person(
val name: String,
var age: Int
)
{
var hobby = "์ถ๊ตฌ"
private set //setter
init{
print("init")
}
fun some(){
hobby = "๋๊ตฌ"
}
}
fun main() {
val john = Person("John", 20)
val john2 = Person("John", 20)
println(john)
println(john2)
println(john == john2)
println(john.hobby)
}
class Person(
val name: String,
var age: Int
)//์์ฑ์๋ก ํ๋ผ๋ฏธํฐ ๋ฐ๊ณ ๋์ด ์๋๋ผ ์์
์ ๋ ํ๊ณ ์ถ๋ค๋ฉด
{
var hobby = "์ถ๊ตฌ"
private set //setter
get() ="์ทจ๋ฏธ: $field" //getter
init{
print("init")
}
fun some(){
hobby = "๋๊ตฌ"
}
}
์คํ๊ฒฐ๊ณผ
initinitPerson@33c7353a
Person@681a9515
false
์ทจ๋ฏธ: ์ถ๊ตฌ
์์,extends
์๋ฐ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฉ๋๋ ์ปจ์ , ์ฝํ๋ฆฐ์ ๋ฐ๋
์์์ ๋ฐ์๋ ์ค๋ฒ๋ผ์ด๋ฉ์ด ์๋๋ค.
fun main() {
}
abstract class Animal{
fun move(){
print("์ด๋")
}
}
class Dog: Animal(){
move //์๋ฌ
}
class Cat: Animal(){
}
openํค์๋๋ฅผ ์ฌ์ฉํด์ ํ์ฉํด์ค๋ค. ๊ทธ ํ ์ค๋ฒ๋ผ์ด๋ฉ ์งํ
fun main() {
}
abstract class Animal{
open fun move(){
print("์ด๋")
}
}
class Dog: Animal(){
override fun move() {
println("๊ป์ถฉ")
}
}
class Cat: Animal(){
override fun move() {
println("์ด๊ธ")
}
}
๊ธฐ๋ณธ์ ์ผ๋ก ์ผ๋ฐ ํด๋์ค๋ ์์์ด ๋ถ๊ฐ ->openํค์๋
fun main() {
}
class Person
class SuperMan: Person() //์๋ฌ
fun main() {
}
open class Person
class SuperMan: Person()
interface
fun main() {
}
interface Drawable{
fun draw()
}
abstract class Animal{
open fun move(){
print("์ด๋")
}
}
class Dog: Animal(),Drawable{ //์ธํฐํ์ด์ค๋ ()๊ฐ ์ ๋ถ๋๋ค.
override fun move() {
println("๊ป์ถฉ")
}
override fun draw() { //๋ฏธ๊ตฌํ๋ ๋ฉ์๋ ์ค๋ฒ๋ผ์ด๋ฉ
TODO("Not yet implemented")
}
}
ํ์ ์ฒดํฌ is
fun main() {
val dog = Dog()
val cat = Cat()
if(dog is Dog){
println("๋ฉ๋ฉ์ด")
}
}
์คํ๊ฒฐ๊ณผ
๋ฉ๋ฉ์ด
fun main() {
val dog:Animal = Dog()
val cat = Cat()
if(dog is Dog){
println("๋ฉ๋ฉ์ด")
}
}
์คํ๊ฒฐ๊ณผ
๋ฉ๋ฉ์ด
์ค์ ๋ก Dog()๋ก ๋ง๋ค์์ผ๋ฏ๋ก ๊ฐ๋ฅํ๋ค.
fun main() {
val dog:Animal = Dog()
val cat = Cat()
if(dog is Animal){
println("๋ฉ๋ฉ์ด")
}
}
์คํ๊ฒฐ๊ณผ
๋ฉ๋ฉ์ด
์ด๊ฒ๋ ๋ง๋ค.
๊ฐ์ ํ์ ๋ณํ as
fun main() {
val dog:Animal = Dog()
val cat = Cat()
cat as Dog
if(dog is Dog){
println("๋ฉ๋ฉ์ด")
}
}
์ ๋๋ฆญ
fun main(){
val box = Box(10)
val box2 = Box("dfdf")
print(box.value)
}
class Box<T>(var value: T){
}
์ฝ๋ฐฑํจ์(๊ณ ์ฐจํจ์)
fun main(){
myFunc ({
println("ํจ์ ํธ์ถ")
})
}
fun myFunc(callBack: () -> Unit){ //์ธํ, ์์ํ ๋ชจ๋ ์๋ ํจ์
println("ํจ์ ์์")
callBack()
println("ํจ์ ๋")
}
์คํ๊ฒฐ๊ณผ
ํจ์ ์์
ํจ์ ํธ์ถ
ํจ์ ๋
์ฝํ๋ฆฐ์์ ์ ๋ฌํ๋ ์ธ์๊ฐ ํจ์์ธ ๊ฒฝ์ฐ -> ๊ทธ ํจ์๋ ๋ฐ์ผ๋ก ๋บ ์ ์๋ค.
fun main(){
myFunc ({
println("ํจ์ ํธ์ถ")
})
}
๊ฐ์ ์ฝ๋
//๋๋ค์
fun main(){
myFunc (){
println("ํจ์ ํธ์ถ")
}
}
suspendํจ์
ํจ์์์ suspendํค์๋ : ์ ์งํจ์
suspendํจ์๊ฐ ๋๋ฉด โถ๋ฐ์ →๊ฐ ์๊ธด๋ค.
์ผ๋ฐ์ ์ธ ๋ฉ์ธ ํจ์์์ ์คํ ์๋๋ค.
suspendํจ์๋ ๋ค๋ฅธ suspendํจ์ ์์์ ์คํ ๊ฐ๋ฅํ๋ค.
main์ suspend๋ก ๋ง๋๋๊ฑด ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ์ด ์๋๋ฏ๋ก ์ฝ๋ฃจํด ์ค์ฝํ(CoroutineScope)๋ฅผ ๋ง๋ค์ด ์ฌ์ฉํ๋ค.
'๐ปโโ๏ธ์ ๊ณต๊ณต๋ถ > ๊ฐ์ฒด์งํฅํ๋ก๊ทธ๋๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋กํผํฐ (0) | 2023.09.15 |
---|---|
ํด๋์ค (0) | 2023.09.09 |
ํจ์ (2) | 2023.09.02 |
์ฝํ๋ฆฐ ๊ธฐ์ด (0) | 2023.09.02 |