Kotlin for문 index 포스팅 썸네일 이미지

Kotlin/Syntax

Kotlin for문 index

Kotlin서 List를 사용할 때 For문을 index를 기준으로 반복하는 방법 https://play.kotlinlang.org/ 1. withIndex 사용 withIndex를 사용하면 (index, value) 쌍값을 얻을 수 있다. index와 value 2개의 값을 읽을 수 있으므로 2개의 값을 이용해야만 할 때 유용하게 사용 가능하다. 여기서 생성된 index와 value는 read only로써 값 변경은 불가능 하다. 2. indices 사용 i라는 index값을 사용하여 for문을 반복하며 기존의 변수 i를 선언 후 list의 size만큼 반복문을 돌리던 기존 방식과 유사하다. 위 withIndex와 달리 value값을 위해서는 index를 사용하여 list2를 읽어야 한다. 또한. 1번..

2022.03.22 게시됨

Kotlin Java equals() 포스팅 썸네일 이미지

Kotlin/Syntax

Kotlin Java equals()

Java ==, Kotlin === 동일 둘은 참조 대상을 비교하는 동일한 동작을하며, 비교대상끼리 같은 객체를 참조하는 경우 true를 반환 Java equals(), Kotlin == 동일 둘은 동일하게 참조 대상의 구조(값)을 비교하여 동일할 경우 true를 반환 단, Java의 equals와 다르게 Kotlin의 ==는 비교 동작하기 전 비교 대상들의 null 체크를 수행하여 null값이 있을 경우 NullPointerException이 발생하는 Java의 equals 메서드와 차이를 갖는다. 예시) 다음과 같은 경우 B와 C는 동일한 객체를 참조함으로써 Kotlin에서 B===C는 true를 갖는다. 반면에 A와 B는 "Lee"라는 동일한 문자열값을 갖고 있지만 다른 객체를 참조하고 있으므로 A..

2022.03.21 게시됨

Kotlin 클래스 비교하기 compareTo 포스팅 썸네일 이미지

Kotlin/Syntax

Kotlin 클래스 비교하기 compareTo

1. 클래스 특정 프로퍼티에 따라 비교 - compareTo 예를들어 Book 이라는 클래스가 존재한다. 이는 name이라는 String 타입 프로퍼티와 price라는 Int 타입의 프로퍼티를 갖는다. 이럴 경우 price 값에 따라 인스턴스를 비교하고 싶다고하면 이럴 때 compareTo를 사용할 수 있다. (직접 수정해보며 실행해볼 수 있다. 로드가 안된다면 새로고침 or play.kotlinlang.org/) operator fun compareTo로 비교 연산자를 사용할 때 price를 기준으로 비교하도록 하였다. 비교 대상과 같다면 0 비교 대상보다 큰값을 같고 있다면 양수(1) 비교 대상보다 작은값을 같고 있다면 음수(-1) 반환해주며 이에따라 따라 결과를 얻을 수 있다. 이 compareTo..

2020.10.07 게시됨

Kotlin 중첩, 내부, 데이터 클래스 포스팅 썸네일 이미지

Kotlin/Syntax

Kotlin 중첩, 내부, 데이터 클래스

1. 중첩 클래스(Nested class) 중첩 클래스(Nested class)는 클래스 안에서 클래스를 선언하는 것이다. 클래스 안에서 선언을하므로 생성하기 위해서는 "바깥 클래스.중첩 클래스" 식으로 생성자를 호출하여야 한다. class One { var one: String = "one" fun print() { println("One") //println("$two") error } class Two { var two: String = "two" fun print() { println("Two") //println("$one") error } } } fun main() { var one = One() one.print() var two = One.Two() two.print() } 여기서 중요한점..

2020.10.06 게시됨

Kotlin 추상 클래스(Abstract class), 인터페이스(Interface) 포스팅 썸네일 이미지

Kotlin/Syntax

Kotlin 추상 클래스(Abstract class), 인터페이스(Interface)

1. 추상 클래스(Abstract class) 추상 클래스는 동일하게 사용되는 프로퍼티나, 멤버함수는 사용할 수 있으며 동일한 기능의 다른 동작을하는 프로퍼티나 멤버함수는 오버라이딩하여 클래스의 따라 맞게 사용할 수 있다. 단, 추상 프로퍼티, 추상 멤버함수들을 모두 반드시 오버라이딩 해야만 한다. abstract class Animal { abstract var name: String var sex: String = "male" abstract fun howling(): String } class Dog : Animal() { override var name: String = "gogy" override fun howling() = "war" } class Cat : Animal() { override..

2020.10.04 게시됨

Kotlin static 이용 Companion Object 포스팅 썸네일 이미지

Kotlin/Syntax

Kotlin static 이용 Companion Object

1. static 역할 - Companion Object 기존 Java에서 사용하였던 static은 Kotlin에서는 존재하지 않는다. 하지만 Companion Object를 사용한다면 static 역할을 해낼 수 있다. 여기서 중요한 점은 static의 역할을 할 수 있다는 것이지 static인것은 아니다. class Book private constructor(var name: String) { companion object { var count: Int = 0 private set fun create(name:String) : Book { count++ return Book(name) } fun print() = println("$count") } } fun main() { Book.print() ..

2020.10.03 게시됨

Kotlin  Singleton pattern - object 포스팅 썸네일 이미지

Kotlin/Syntax

Kotlin Singleton pattern - object

1. 싱글톤 패턴(Singleton Pattern) 싱글톤 패턴(Singleton Pattern)이란 프로그램에서 어느 객체를 단 한개의 인스턴스만 만들수 있도록 보장 하는 인스턴스를 말한다. 하나의 인스턴스만을 갖어야함으로 기존 Java에서는 private을 사용하여 외부에서 접근하지 못하도록 제한하고, static을 사용하여 클래스 내부에서 생성된 동일한 인스턴스를 갖고오도록 하였다. 하지만 Kotlin에서는 object 키워드를 이용하여 객체를 만들 수 있는 수단이 존재하여 아주 간단하게 싱글톤 패턴을 구현할 수 있다. 2. Object Declarations object Book { lateinit var name:String var price: Int = 0 fun print() = printl..

2020.10.02 게시됨

Kotlin 접근 지정자(= 가시성 지정자, Visibility Modifiers) 포스팅 썸네일 이미지

Kotlin/Syntax

Kotlin 접근 지정자(= 가시성 지정자, Visibility Modifiers)

1. 가시성 지정자(Visibility Modifiers) 지정자 범위 private 해당 클래스 내부에서만 접근할 수 있다. protected private + 서브 클래스에서 접근할 수 있다. internal 같은 모듈 내에서 접근할 수 있다. public 어디서든 접근할 수 있다. Kotlin에서 기본 지정자는 public으로 생략 시 public이 된다. ※ internal 에서 모듈이란 함께 컴파일 된 kotlin 파일 집합을 의미한다. 이는 IntelliJ IDEA 모듈; Maven 프로젝트; Gradle 소스 세트 들이 될 수 있다. 2. 가시성 지정자 오버라이딩 open class Test { private val a = 1 protected open val b = 2 internal va..

2020.10.01 게시됨