Kotlin 기초 (3)

2023. 1. 1. 23:48교내활동/Programming GURU2

 

  • 클래스
    • 변수(필드)와 메소드로 구성
    • 객체지향 관점에서의 클래스
      • 실 세계의 객체들이 가질 수 있는 상태와 행동을 담음
    • 정적 필드(static field)
      • instance를 생성하지 않고 class 자체에서 사용되면 변수
      • companion object{} 안에 작성하여 정적 필드를 만듬
    • 정적 메소드(static method)
      • 메소드 또한 companion object{} 안에 작성
      • instance를 생성하지 않고도 className.methodName()으로 호출하여 사용 가능
    • 상수 필드
      • 정적필드에 초깃값을 입력하고 const val로 선언
      • 선언 후 값을 변경할 수 없음
      • 상수필드는 대문자로 구성하는 것이 일반적임
      • 클래스 안에 상수를 정의할 때 사용
    • 클래스의 상속
      • 기존의 클래스가 가지고 있는 것을 그대로 물려받으면서 필요한 필드나 메소드를 추가로 정의함
      • 구조
        • superclass(부모클래스)
        • subclass(자식클래스) -> superclass의 필드와 메소드를 선언 없이 사용함
        • method overriding -> superclass의 메소드를 무시하고 새로 정의함
      • 추상 클래스
        • 추상 클래스는 instance 생성 불가
        • 추상클래스는 클래스 앞에 abstract 키워드를 붙여서 지정함
        // instance화
        var auto : Automobile  = Automobile()
      • 추상 메소드
        • 본체가 없는 메소드
        • 메소드 앞에 abstract 키워드를 붙여서 지정
        • 추상 메소드를 포함하는 클래스는 추상 클래스로 지정해야 함
        • 공통적으로 사용되는 기능을 추상 메소드로 선언하고, 추상 클래스를 상속받은 후 추상 메소드를 오버라이딩해서 사용하기 위함
        • implement(구현하다) -> 추상 메소드를 오버라이딩 하다
      • 변수의 다형성
        • 서브 클래스에서 생성한 인스턴스를 자신의 클래스 변수에 대입할 수 있는 것을 의미
        • 하나의 변수에 여러종류의 인스턴스를 대입할 수 있음
      • 인터페이스
        • 추상 클래스와 성격이 비슷함
        • interface 키워드를 사용하여 정의하고 내부에는 추상메소드를 선언함
        • 클래스에서 인터페이스를 받아 완성할 때 상속과 마찬가지로 ':인터페이스 이름' 형식을 사용함
        • 인터페이스는 '상속받는다'고 하지 않고 '구현한다'고 함
        • kotlin은 다중상속을 지원하지 않음
          • interface를 이용해 다중상속과 유사하게 작성할 수 있음

 

 

'교내활동 > Programming GURU2' 카테고리의 다른 글

Android layout 기초 (2)  (0) 2023.01.02
Android layout 기초 (1)  (0) 2023.01.02
Kotlin 기초 (4)  (0) 2023.01.01
Kotlin 기초 (2)  (0) 2023.01.01
Kotlin 기초 (1)  (0) 2023.01.01