본문 바로가기

TIL

TIL 18일차

Kotlin의 메소드 구조:

 

fun 메소드이름(변수형:자료형, 변수형:자료형 ....) : 반환자료형 {

      소스코드 로직

}

 

 

객체지향 프로그래밍

https://ko.wikipedia.org/wiki/%EA%B0%9D%EC%B2%B4_%EC%A7%80%ED%96%A5_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D

 

객체 지향 프로그래밍 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 객체 지향 프로그래밍(영어: Object-Oriented Programming, OOP)은 컴퓨터 프로그래밍의 패러다임 중 하나이다. 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목

ko.wikipedia.org

** 시간날때 한번씩 읽어보자 **

 

 

Kotlin의 클래스 구조:

 

class 클래스이름 {

   정보 1

   정보 2

 

   행위 1

   행위 2

}

 

 

특별한 클래스들

 

1. data class: 정보만 가지고 있는 클래스

 

data class 클래스이름 {

   정보 1

   정보 2

}

 

유용한 메소드를 자동으로 생성해준다

 

1) hashCode(): 객체를 구분하기 위한 고유값 리턴

2) equals(): 동일한 객체인지 비교해서 true / false 리턴

3) copy(): 현재 객체를 복사해서 새로운 객체 리턴

4) toString(): 현재 객체의 모든 정보를 출력

5) getXXX() / setXXX(): 변수의 값을 리턴하거나 설정

 

2. sealed class: 상속받을 수 있는 자식클래스들을 미리 정의한 클래스(무분별한 상속 방지)

 

sealed class 부모클래스 {

   class 자식클래스1: 부모클래스생성자

   class 자식클래스2: 부모클래스생성자

}

 

3. object class: 프로그램 실행과 동시에 인스턴스화

 

4. enum class: 상수값에 대한 관리 지점

 

enum class 클래스1 {
    C, JAVA, KOTLIN
}

enum class 클래스2(val code: Int) {
    C(10),
    JAVA(20),
    KOTLIN(30)
}

fun main() {
    println(클래스1.C.toString()) // 출력: C
    println(클래스2.KOTLIN.code) // 출력: 30
    println(클래스2.KOTLIN.name) // 출력: KOTLIN
}

 

 

Kotlin의 생성자 Init(주 생성자)와 Constructor(부 생성자)의 쓰임새 차이:

 

한 가지 형태로 클래스 실체화 -> 주 생성자

여러 형태로 클래스 실체화 -> 부 생성자

Init 사용 예시
Constructor 사용 예시

 

 

 

객체(Object): 모든 인스턴스를 포함하는 개념

인스턴스: 클래스형태로 설계된 객체를 실체화한것

RPG 게임의 요소 중 하나(zombie)를 객체화한것

 

 

open: 클래스 상속

예시 코드

 

 

Overriding: 상속받은 부모 클래스의 정보나 행위를 재설계

 

 

오버로딩: 동일한 이름의 메소드를 여러 형태로 만들 수 있다

 

1) 매개변수의 갯수를 다르게하면 동일한 이름으로 메소드를 만들 수 있다

2) 매개변수의 자료형을 다르게하면 동일한 이름으로 메소드를 만들 수 있다

3) 반환자료형(반환형)은 오버로딩에 영향을 주지 않는다

 

 

인터페이스: 공통적으로 필요한 기능을 외부에서 추가

 

Kotlin의 인터페이스 구조(추상 메소드):

 

interface 인터페이스이름 {
fun 메소드이름()
}

이런식으로 인터페이스를 만들어 두면...
이런식으로 사용할 수 있다. 사용할 땐 Overriding 이용

'TIL' 카테고리의 다른 글

TIL 20일차  (0) 2024.03.08
TIL 19일차  (0) 2024.03.07
TIL 17일차  (0) 2024.03.05
TIL 16일차  (0) 2024.03.04
TIL 15일차  (0) 2024.03.01