Kotlin

Kotlin이란(7)

yswn1531 2023. 8. 31. 11:46
  • Type Check('is'), Type Casting('as')
    • is, !is : 타입을 확인할 때
    • as : 명시적으로 해당 타입으로 변환
    • as? : 해당타입으로 변경이 안되면 null 반환
    • 코드에 타입을 적지 않아도 자동으로 캐스팅 해줌
  • Explicit Cast operator 'as'
    • 상속 관계에서만 가능
    • 명시적으로 캐스팅 할 때
  • abstract(추상 클래스)
    • 구현부가 존재하지 않는 함수 또는 속성 하나라도 가진 클래스
    • open 키워드를 명시하지 않아도 상속가능
    • 보통 Low Level(native code - C,C++)과 연동 할 때 사용
  • Interface
    • 어떤 S/W를 개발 할 때 표준 명세를 제공하기 위함
    • 기본적으로 추상 함수, 속성으로 구성 됨
    • 구현도 가능하나 잘 쓰지 않음
  • Enum Class(열거형 클래스)
    • 상수 여러 개를 선언하고 이 값 중에 하나를 지정해서 사용
    • 내장 Property
      • name: 선언된 열거상수의 문자열
      • ordinal: 선언된 열거상수의 순서(0부터 시작)
    • 내장 함수
      • values(): 열거한 상수를 배열로 가져오는 함수
      • valueOf(name: String): 인자로 주어진 열거형 상수를 가져오는 함수
    • 열거형 클래스 생성자를 사용해서 이름 또는 값 설정 가능
    • 속성, 함수 선언 가능하나 잘 안씀
  • Sealed Class
    • Sealed 내에 선언된 class들은 해당 kotlin file에서만 상속하여 사용 가능
    • enum보다 자유로워 enum 대신 다양하게 사용가능
  • Companion Object(동반 객체)
    • 이름이 명시된 object 객체를 최상위에 작성하지 않고 클래스에 작성가능
    • 공통 코드 및 싱글턴 구현시 사용
  • Data Class
    • 함수는 존재하지 않고 Data만 갖는 클래스를 만들 때 사용
    • 주 생성자를 반드시 생성해야 하고 매개변수가 1개이상 존재해야함
    • open,sealed,inner,abstract 사용 불가
    • 기본함수
      • equals()
        • 객체의 데이터 값을 직접 비교
        • 같은 데이터 클래스에서 생성된 객체만 깊은 비교
        • '===' 명시적으로 얕은 비교
      • toString()
        • 객체를 문자열로 표현한다
      • copy()
        • data 객체를 복사한다
        • 주로 일부분만 복사하여 다른 값을 가진 data 객채를 만들 때 유용
      • component(), component1(),,,,
        • data 속성값들을 가져올 때 사용하며 속성의 개수 만큼 자동으로 만들어짐
        •