-
[Kotlin] Collection
가변 클래스(Mutable) : List, Set, Map 컬렉션에 element를 추가, 삭제 할 수 있음 불변 클래스(Immutable) : List, Set, Map 컬렉션에 element를 추가, 삭제 불가 불변 클래스이지만 Reference type인 element의 필드는 변경 가능 코틀린에서는 뷸변/가변을 먼저 지정해 줘야 한다 1. List final List<Interger> numbers = List.of(100, 200); (1) List val numbers = listOf(100,...
-
[Kotlin] 특별 클래스(Data, Enum)
1. Data Class 데이터를 가지고 있는 DTO 클래스 data 키워드를 붙이면 equals(), hashCode(), toString() 을 자동으로 만들어 줌 생성자를 통해 setter, getter 자동 생성 named parameter를 통해 builer까지 사용 가능 JDK 16부터 도입된 record와 같음 public class PersonDto { private final String name; private final int age; public PersonDto(String name, int age) { this.name = name; th...
-
행동 (5) - 커맨드(Command) 패턴
작업을 요청하는 쪽과 작업을 처리하는 쪽을 분리하는 패턴 요청을 처리하는 방법이 바뀌어도 호출자의 코드는 변경되지 않는다 커맨드 객체 : 특정 객체에 관한 특정 작업 요청을 캡술화 receiver 코드가 변경되어도 invoker 코드는 바꿀 필요 없이 command만 변경하면 된다 용어 Command : 커맨드를 추상화한 인터페이스 Concrete Command : 구체적인 커맨드, 작업을 캡슐화하고 그 작업을 실행할 receiver를 갖고 있음 Receiver : 작업 처리시 어떤 일을 해야할 지 알고 있는 객체 (작업을 처리하는 객체) Invoker : Command에게 ...
-
[Kotlin] 클래스(class)
생성자 객체 생성시 new 키워드 없음 class Person { var firstName: String = "" var familyName: String = "" var age: Int = 0 fun fullName() = "$firstname $familyName" fun showMe() { println("${fullName()} , $age") } } var person = Person() person.firstName = "John" person.familyname = "Doe" person.age = 25 person.showMe() 생성자 이용 ...
-
[Kotlin] 함수(function)
1. If fun getGrade(score : Int) : String { return if (score >= 90) { "A" } else if (score >= 80) { "B" } else { "C" } } fun validateScore(score : Int) : String { if (score !in 0...100) { throw IllegalArgumentException("not valid score range") } } 삼항연산자 코틀린에는 삼항연산자가 존재하지 않는다 if식의 return을 사용해 상쇄할 수 있다 f...