추상 클래스(Abstract Class) 추상 클래스는 직접 인스턴스화 할 수 없고 다른 클래스의 상위 역할만 할 수 있는 클래스를 말합니다. 클래스를 추상 클래스로 만들기 위해서는 abstract라는 변경자 키워드를 붙여야 합니다. 좀 더 쉽게 말하자면 기본 함수를 강제하고 기본 속성을 가질 때 사용합니다. 아래의 예시를 보겠습니다. abstract class Animal { abstract val species: String abstract fun makeSound() } class Dog : Animal() { override val species: String = "개" override fun makeSound() { println("멍멍!") } } fun main() { val dog = Do..
Collection 컬렉션은 일련의 객체를 담는 컨테이너로 사용됩니다. 컬렉션은 여러 객체를 저장하고 관리하며, 필요에 따라 데이터를 추가, 삭제, 검색, 정렬하는 등의 작업을 수행할 수 있습니다. Java와 Kotlin에서 제공하는 컬렉션 인터페이스와 클래스는 다양한 형태의 컬렉션을 다룰 수 있도록 다양한 기능을 제공합니다.컬렉션은 크게 List, Set, Map로 분류될 수 있습니다 이 3가지 Collection은 중복을 허용하는지, 순서가 보장되는지에 따라 구분할 수 있습니다. Mutable(가변) vs Immutable(불변) 변수에서의 가변과 불변은 해당 값이 변경될 수 있는가에 따라 나뉩니다. 쉽게 말하자면 ‘read-only’와 ‘read&write’로 보면 됩니다. 컬렉션도 마찬가지입니다...
클래스 관계 클래스 간의 관계는 아래와 같습니다. 상속관계(is a): 클래스를 상속해서 하나의 클래스처럼 사용 연관관계(has a): 클래스를 상속하지 않고 내부적인 속성에 객체를 만들어서 사용 결합관계(약한 has a): 연관관계를 구성하는 방식 중에 클래스 간의 주종관계 없이 단순하게 사용하는 관계 조합관계(강한 has a): 연관관계를 구성하는 방식 중에 클래스 간의 주종관계가 있어서 분리할 수 없는 관계 의존관계(사용 has a): 필요한 클래스를 매개변수로 받아 필요한 시점에 사용하는 관계 상속관계 (is-a) open class Animal(val name: String) class Dog(name: String) : Animal(name) class Cat(name: String) : An..
내장 자료형 코틀린에서 기본으로 제공하는 클래스를 내장 자료형이라고 합니다. Number(숫자) 클래스 아래는 코틀린에서 제공하는 숫자 클래스의 상위 클래스인 Number 클래스입니다. public abstract class Number { /** * Returns the value of this number as a [Double], which may involve rounding. */ public abstract fun toDouble(): Double /** * Returns the value of this number as a [Float], which may involve rounding. */ public abstract fun toFloat(): Float /** * Returns the ..
이 게시글은 아래의 게시글와 이어집니다. [Kotlin] 클래스 (1) - week 5 클래스(Class)란? 클래스는 객체지향에서 가장 중요한 도구입니다. 클래스는 유사한 특성과 동작을 가진 객체들을 만들기 위한 템플릿 역할을 합니다. 클래스는 객체의 속성(Attribute)과 메서드(meth everyday-develop-myself.tistory.com 특수한 기능을 수행하는 클래스 내포 클래스(Nested Class) 내포 클래스는 내부의 클래스가 외부의 클래스와 연결되지 않는 정적 클래스입니다. 외부 클래스의 멤버에 접근할 수 없다는 특징이 있습니다. class Outer { private val outerProperty: Int = 10 class Nested { fun nestedMethod..
클래스(Class)란? 클래스는 객체지향에서 가장 중요한 도구입니다. 클래스는 유사한 특성과 동작을 가진 객체들을 만들기 위한 템플릿 역할을 합니다. 클래스는 객체의 속성(Attribute)과 메서드(method)를 정의하는데 사용되며, 이러한 속성과 메서드는 해당 클래스로부터 생성된 객체에 적용됩니다. 생성자 (Constructor) 코틀린의 클래스 생성자는 클래스의 인스턴스를 초기화하기 위한 특수한 예약어로, 클래스 정의 시 초기화 작업을 수행하거나 속성 값을 설정하는 역할을 합니다. 코틀린에서는 주 생성자(primary constructor)와 보조 생성자(secondary constructor)를 사용하여 클래스 생성자를 정의할 수 있습니다. 주 생성자(primary constructor) 주 생..
함수 정의 함수를 정의하려면 함수의 입력값인 매개변수(파라미터), 함수의 출력값인 반환 자료형, 실제 함수의 기능을 처리하는 코드 블록 등을 잘 정의해야 합니다. 매개변수와 반환값이 없는 함수 가장 기본적인 함수입니다. 상태를 변경하거나 어떤 동작을 수행하고 반환할 값이 없는 경우에 사용합니다. // fun simpleFunction(): Unit { fun simpleFunction() { println("This is a simple function.") } 반환값이 없는 함수는 반환값이 없음을 나타내는 `Unit` 자료형을 지정합니다. 이는 Java의 `void`와 유사한 기능을 합니다. 반환값이 없을 경우 `Unit`은 생략 가능합니다. 매개변수를 받는 함수 매개변수로 전달된 데이터를 처리하거나 ..
조건 표현식 우리가 코드를 작성할 때 특정 조건에 해당하는 행위만 처리하고 싶을 때가 있습니다. 이를 위해서는 참과 거짓으로 결과를 처리하는 비교연산자와 논리연산자를 알아야 합니다. 비교연산자 연산자 의미 표현식 내부적 실행 > 크다 a > b a.compareTo(b) > 0 = 크거나 같다 a >= b a.compareTo(b) >= 0 = num2) // 출력: false (20은 30보다 작거나 같지 않음) println(num1 b) or (a b) && (a b) and (a < c) 아래는 논리연산자를..