📘 Backend/Kotlin2023. 4. 23. 19:01Kotlin - Classes

💡 코틀린에서 다양한 클래스를 다루는 법 목차 Data Class Enum Class Sealed Class, Sealed Interface 정 💡 Data Class 클래스 뒤에 data 키워드를 붙여주면 아래 항목들이 포함된 클래스가 만들어진다. builder equals hashCode toString 계층간의 데이터를 전달하기 위한 DTO (Data Transfer Object) 데이터 (필드) 생성자와 Getter equals, hashCode, toString data class PersonDTO( val name: String, val age Int ) 💡 Enum Class 추가적인 클래스르 상속받을 수 없다. 인터페이스는 구현할 수 있으며, 각 코드가 싱글톤으로 이루어져 있다. enum ..

📘 Backend/Kotlin2023. 4. 23. 18:23Kotlin - 중첩 클래스

💡 코틀린에서 중첩 클래스를 다루는 법 목차 중첩 클래스의 종류 중첩 클래스와 내부 클래스 정리 💡 중첩 클래스의 종류 클래스 안에 내부 클래스를 만들때는 static클래스를 사용하자. 자바 코드 예시 Static을 사용하는 중첩클래스 Static을 사용하지 않는 중첩 클래스 내부 클래스 (Inner Class) 지역 클래스 (Local Class) 익명 클래스 (Anonymous Class) 💡중첩 클래스와 내부 클래스 기본적으로 코틀린은 외부 클래스를 참조하지 않는다. 외부 클래스를 참조하고 싶다면 inner 키워드를 추가하고 this@외부클래스를 사용해야한다 자바 코드 예시 내부클래스는 숨겨진 외부 클래스 정보를 가지고 있어 참조를 해지하지 못하는 경우 메모리 누수가 발생할 수 있고, 이를 디버깅하..

📘 Backend/Kotlin2023. 4. 23. 03:41Kotlin - Object

💡 코틀린에서 Object 키워드를 다루는 법 목차 Companion Object Singleton Anonymous Class 💡 Companion Object 코틀린에서 Static 함수는 companion object(동반 객체)를 선언하여 사용한다. 하지만 자바의 Static과 companion object는 비슷해보이지만 근본적으로 다르다. conpanion object는 하나의 객체로 간주된다 이름을 붙일수도 있고 companiom 객체에 인터페이스 구현도 가능하다. conpanion에 유틸성 함수도 넣을 수 있지만 최상단 파일을 활용하는게 더 좋다. 자바 코드 예시 // Java public class JavaPerson { private static final int MIN_AGE = 1;..

📘 Backend/Kotlin2023. 4. 23. 01:40Kotlin - Extension Function

💡 Extention Function 클래스에 상속하거나 디자인 패턴을 사용하지 않고 새로운 기능으로 클래스를 확장할 수 있는 기능이다. 이때, 추가적인 메서드를 구현하면 이를 확장 함수, 추가적인 프로퍼티면 확장 프로퍼티이다. 언제 확장 함수가 필요할까? 자신이 만든 클래스의 경우 새로운 함수가 필요하면 그냥 추가하면 된다. 하지만 외부 라이브러리를 사용할때는 함수를 추가하기가 어렵거나 변경이 어렵다. 이 때 원하는 새로운 함수를 자유롭게 만들수 있는 기능이다. 즉, 기존 클래스에 메서드를 추가하는 것이며, 확장 함수는 static 메서드이다. 기본 구조 Receiver Type 확장의 대상이 될 클래스 Receiver Object 확장 함수의 내부 구현 시 this 키워드를 사용하여 Receiver ..

📘 Backend/Kotlin2023. 4. 22. 00:53Kotlin - Access Control

💡 코틀린에서 접근 제어를 다루는 법 목차 가시성 제어 코틀린 파일의 접근 제어 다양한 구성요소의 접근 제어 자바와 코틀린을 함께 사용할 경우 주의점 정리 💡 가시성 제어 자바의 기본 접근 지시어는 Default 이지만, 코틀린은 public인걸 조심하자. public 모든곳에서 접근 가능 protected 선언된 클래스 또는 하위 클래스에서만 접근 가능 internal 같은 모듈에서만 접근 가능 private 선언된 클래스 내에서만 접근 가능 💡 파일 접근 제어 코틀린은 .kt 파일에 변수, 함수, 클래스 여러개를 바로 만들 수 있다. public 기본값, 어디서든 접근 가능 protected 파일(최상단)에는 사용 불가능 internal 같은 모듈에서만 접근 가능 private 같은 파일 내에서만 접..

📘 Backend/Kotlin2023. 4. 21. 22:25Kotlin - Inheritance

💡 코틀린에서 상속을 다루는 법 목차 추상 클래스 인터페이스 클래스 상속 시 주의점 상속 관련 지시어 정리 💡 추상 클래스 코틀린은 상속 시 ' : ' 키워드를 사용하며, 상위 클래스의 생성바롤 바로 호출한다. 상속을 받으려면 'override' 키워드를 붙여주어야 한다. 자바와 코틀린 둘 모두 추상 클래스를 인스턴스화 할 수 없다. Animal 이라는 추상 클래스를 구현한 Cat, Penguin 예시 // Java @Getter public abstract class JavaAnimal { protected final String species; protected final int legCount; publuc JavaAnimal(String species, int legC..

📘 Backend/Kotlin2023. 4. 17. 12:47Kotlin - Class

💡 코틀린에서 클래스를 다루는법 목차 클래스와 프로퍼티 생성자와 init Custom Getter/Setter Backing Field 💡 클래스와 프로퍼티 개명이 불가능한 국가에 거주하는 Person 클래스를 가진 자바 코드 예시이다. 현재로써는 name 변수를 초기화를 할 수 없어서 에러가 나므로 Getter/Setter를 생성해준다. // Java public class Person { private final String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge(..

image