본문 바로가기

Kotlin13

[Do it! 코틀린 프로그래밍] 8. 제네릭과 배열 8. 제네릭과 배열 1. 제네릭 다루기 제네릭(Generic) 은 클래스 내부에서 사용할 자료형을 나중에 인스턴스를 생성할 때 확정한다. 객체의 자료형을 컴파일할 때 체크하기 때문에 객체 자료형의 안정성을 높이고 형 변환의 번거로움을 줄인다. /* 간단한 제네릭 예시 */ // 앵글 브래킷() 사이에 형식 매개변수 이름을 넣어 자료형을 대체한다. class Box(var name: T) fun main() { val box1 = Box(1) // 1은 Int 타입이므로 Box으로 추론 val box2 = Box("Hello") // "Hello"는 String 타입이므로 Box으로 추론 println(box1.name) // 1 println(box2.name) // Hello } 일반적으로 제네릭에서 .. 2021. 4. 25.
[Do it! 코틀린 프로그래밍] 7. 다양한 클래스와 인터페이스 7. 다양한 클래스와 인터페이스 1. 추상 클래스와 인터페이스 추상 클래스(Abstract Class) 선언 등의 대략적인 설계 명세와 공통의 기능을 구현한 클래스다. 추상 클래스를 상속하는 하위 클래스는 내용을 더 구체화해야 한다. 코틀린에서 추상 클래스의 정의는 abstract 키워드를 사용한다. 기본적으로 상속과 오버라이딩을 허용하기 때문에 open 키워드를 사용할 필요가 없다. /* 추상 클래스 Vehicle 사용 */ abstract class Vehicle(val name: String, val color: String, val weight: Double) { // Abstrect Property - 반드시 하위 클래스에서 재정의하여 초기화해야함 abstract var maxSpeed: Dou.. 2021. 4. 19.
[Do it! 코틀린 프로그래밍] 6. 프로퍼티와 초기화 6. 프로퍼티와 초기화 1. 프로퍼티의 접근 코틀린에서는 별도로 접근 메서드(Getter(), Setter())를 지정하지 않아도 자동으로 처리해주기 때문에 코드의 양을 줄일 수 있다. /* User.kt */ class User(val id: Int, var name: String, var age: Int) /* User.decompiled.java */ public final class User { private final int id; @NotNull private String name; private int age; public final int getId() { return this.id; } @NotNull public final String getName() { return this.name.. 2021. 4. 14.
[Do it! 코틀린 프로그래밍] 5. 클래스와 객체 5. 클래스와 객체 1. 클래스와 객체의 정의 객체지향 프로그래밍(OOP: Object-Oriented Programming) 은 프로그램의 구조를 객체 간 상호작용으로서 표현하는 프로그래밍 방식이다. 객체 지향 기법으로 프로그램을 설계할 때 알아 두어야할 개념은 다음과 같다. 추상화(Abstraction): 특정 클래스를 만들 때 기본 형식을 규정하는 방법 인스턴스(Instance): 클래스로부터 생성한 객체 상속(Inheritance): 부모 클래스의 내용을 자식 클래스가 그대로 물려받음 다형성(Polymorphism): 하나의 이름으로 다양한 처리를 제공 캡슐화(Encapsulation): 내용을 숨기고 필요한 부분만 사용 메시지 전송(Message Sending): 객체 간에 주고받는 메시지 연관.. 2021. 4. 10.