Kotlin

·Kotlin/Basic
Kotlin에서 배열, Collection은 Java하고 다르기도하고 조금 더 간편하게 사용 가능하다.배열Kotlin에서 배열은 잘 사용되지 않는다.Effective Java Item 28 배열보다는 리스트를 이용하라고 되어있다.Kotlin에서 배열을 생성하는 방법은 arrayOf 연산자를 사용하면 된다.val cars = arrayOf("Mustang", "Tesla", "BMW")배열을 조회 하는 방법은 다음과 같다.fun main(){ val cars = arrayOf("Mustang", "Tesla", "BMW") println(cars[0]) //in 절을 사용해 조회 가능 for (car in cars) { println(car) } //..
·Kotlin/Basic
Kotlin에는 일반적인 Class 말고도 다양한 클래스들이 있다.Data 클래스Kotlin에 Data 클래스는 데이터에 관련된 클래스이다. Java에서는 DTO가 될수도 있다.일반 클래스와 달리 Equals, HashCode, toString을 자동적으로 만들어주기 때문에 매우유용하다.Java에서도 JDK 16부터 Data클래스와 같은 Record가 존재한다.class 앞에 data 키워드를 붙여 사용한다.data class Car( val brand: String, val model: String, var year: Int)fun main(){ val car1 = Car("Hyundai","Sonata",2023)}다음과 같이 data만 붙여주면 되기에 매우 쉽게 사용이 가능하다..
·Kotlin/Basic
중첩 클래스중첩 클래스는 클래스 안에 다른 클래스가 있는 경우를 말한다.중첩 클래스가 필요한 이유중첩 클래스가 필요한 이유는 다음과 같다.클래스 간에 계층구조를 나타내기 위하여한 클래스에서 논리적인 그룹화가 필요한 경우캡슐화를 증가시키기 위해같은 클래스 내에 있기에 가독성이 높아진다.중첩 클래스 종류JavaStatic Nested Class외부 클래스의 정적 멤버에만 접근할 때 사용Inner Class외부 클래스의 인스턴스와 메서드에 접근 해야할 때Local Class메서드나 초기화 블럭 내에서만 사용되야할 때Anonymous Class일회성으로 사용되는 클래스가 필요할 때KotlinNested Class일반적인 중첩 클래스Inner Class외부 클래스 인스턴스에 대한 참조를 저장해햐 할 때Nested..
·Kotlin/Basic
ObjectKotlin에서 object는 Java의 object 하고는 좀 차원이 다르다.Kotlin에 Object는 크게 3가지로 나뉜다.ObjectCompanion ObjectAnonymous Object이 3개의 Object는 쓰임과 위치에 따라서 달라지게 된다.Objectobject 키워드는 클래스 외부에서 쓰이게 되고 싱글톤 객체를 쉽게 생성하게 해주는 키워드이다.동시성 이슈를 해결해 주기 때문에 Thread Safe 하게 사용이 가능하다.생성하고자 하는 객체 앞에 object를 붙여 사용한다. object 객체이름object Car { var carName: String = "GM" fun start(){ println("start: $carName") }}fun main(){C..
·Kotlin/Basic
접근제어자Kotlin에 접근제어자는 public과 private은 같지만 다른 부분이 존재한다.Kotlin과 Java와의 차이접근 제어자KotlinJavapublic모든 곳에서 접근 가능 (기본값)모든 곳에서 접근 가능protected같은 클래스 또는 하위 클래스에서만 접근 가능같은 패키지 또는 하위 클래스에서 접근 가능internal같은 모듈 내에서만 접근 가능해당 없음private같은 클래스 내에서만 접근 가능같은 클래스 내에서만 접근 가능default해당 없음같은 패키지 내에서만 접근 가능 (기본값)public : Kotlin과 Java 모두 모든 것에서 접근 가능하다.protected : Kotlin과 Java와 차이점이 존재한다.Kotlin 같은 클래스 또는 하위 클래스에서만 접근 가능같은 패키..
·Kotlin/Basic
상속Kotlin에서 상속은 문법이 같은 부분보다는 다른 부분이 좀 더 많다.추상 클래스(Abstract Class)추상 클래스는 구현이 일부 없는 불안전한 클래스이다.추상 클래스로 공통된 특성 뼈대를 만들고 상속 받는 클래스에서 살을 붙이는 형식으로 많이 쓰인다.추상 클래스 선언 방법Kotlin에서 추상 클래스는 abstract 키워드로 선언한다.abstract class Vehicle(val brand: String, open var model: String) { abstract fun start() abstract fun stop()}추상 메서드도 앞에 abstract를 붙여 사용 가능하다.Java와 같은점은 추상클래스는 인스턴스화할 수 없다.상속Kotlin에서 상속 할 때에는 : 객체 ..
·Kotlin/Basic
ClassKotlin에서 클래스를 다룰 때에는 Java에 문법과 비슷하면서도 조금 다르다.Kotlin에서 기본적으로 생성자를 만들 때에는 class 키워드를 사용한다.class Person {}Constructor(생성자)와 Property(프로퍼티)Kotlin에서 생성자를 만들 때에는 constructor 키워드를 사용한다.class Person constructor(name: String,age: Int){ var name: String = name, var age: Int = age}이 constructor 키워드는 생략이 가능한데, 생략하면 아래와 같이 사용 가능하다.class Person (name: String,age: Int){ var name: String = name, ..
·Kotlin/Basic
Kotlin 함수Kotlin에서는 Java에 method를 대신해서 함수를 사용한다. 함수 선언 방법Kotlin에서 함수는 기본적으로 public 이기에 생략이 가능하다.함수를 선언하는 방법은 아래와 같다.fun 함수이름(매개변수1: 타입1, 매개변수2: 타입2): 반환타입 { return 결과값} 함수의 결과 값이 하나라면fun double(x: Int): Int = x * 2 이렇게도 표현이 가능하다. Default ParameterJava에서 Method를 호출할 때마다 기본적인 값이 들어가는 경우라면 Over Loading을 통해 해결했다.public class Calculator { public int add(int a, int b, int c) { return a + b + c; }..
·Kotlin/Basic
Kotlin 에서 예외 처리Kotlin에서 예외 처리 문법 자체는 동일하다.다른 점은 try-catch-finally 자체가 expression이라는 것이다.따라서, 다음과 같이 사용이 가능하다.val result = try { // 코드} catch (e: Exception) { // 예외 처리 및 기본값 반환 null} Checked/Unchecked ExceptionKotlin에서는 자바와 다르게 Checked/Unchecked Exception의 차이가 없이 Unchecked Exception만 사용한다.컴파일러가 예외 처리를 강제하지 않기 때문에 예외 처리를 간소화할 수 있다는 장점이 있지만, 예상하지 못한 Exception이 발생할 수 있다는 문제가 발생할 수 있다. Try-W..
·Kotlin/Basic
For문Kotlin에서 For문의 사용은 Java와 크게 다를 것이 없다.다만 다른점이 있다면 그것은 범위를 표현하는 방법일 것이다.for (i in 1..5) { println("Number: $i")} For문을 사용할 때 in 연산자를 통해 범위 내에 변수가 있는지 확인한다.상위가 Iterable이라면 모두 다 사용이 가능하다.그리고 범위는 a..b, downTo, step 사용이 모두 가능하다.WhileKotlin에서 While은 Java와 크게 다를것이 없다! 그냥 사용해도 무방하다.var count = 0while (count   요약for문을 사용하는 방법은 크게 다를것 이 없고 in 연산자를 통해 벙위내에 있는지 판단한다.범위를 표현하는 a..b, downTo, step 모두 사용이 ..
·Kotlin/Basic
연산자는 Kotlin와 Java에서 어떻게 다를까?연산자Kotlin과 Java에서 제어문은 같으면서도 뭔가 다르다.ifIf문에서 Kotlin과 Java에 큰 차이점은 Kotlin은 Expression, Java는 Statement이다.이게 어떻게 다르다면 Expression는 return이 가능하지만 Statement은 return이 불가하다.val result = if (number % 2 == 0) { "짝수"} else { "짝수"} 이렇게 값을 return이 가능하다는 것이다. 그래서 Java에서는 이러한 상황을 해결하기 위해 삼항연산자를 사용 중이고 Kotlin에서는 삼항연산자가 존재하지 않는다. WhenJava의 Switch/Case 문을 Kotlin에서는 when으로 표현 가능하다..
·Kotlin/Basic
연산자Kotlin에서 연산자는 Java와 어떻게 다를까?비교 연산자비교연산자에는 , >=, == 정도가 될 수 있다.Kotlin에서 비교 연산자를 이용하면 자동으로 compareTo를 호출하게 된다.val isTrue : Boolean = 1  Kotlin에서 비교 연산자를 사용할 때 비교연자를 눌러보면, compareTo 함수를 이용해서 비교를 하는것을 알 수 있다.@kotlin.internal.IntrinsicConstEvaluationpublic override operator fun compareTo(other: Int): Int동등성, 동일성동등성과 동일성의 차이는 동등성은 값이 같은지를 비교하고 동일성은 값의 주소가 같은지를 비교한다. JavaString text = "Hello";Strin..
bongveloper
'Kotlin' 카테고리의 글 목록