Kotlin 클래스에 대한 빠른 소개

소개


  • 이 시리즈는 특정 순서로 진행되지 않으므로 원하는 블로그 게시물을 자유롭게 읽으십시오. 블로그 게시물에 사용할 수 있다고 생각되는 항목을 찾을 때마다 하나를 작성하여 여기에 게시합니다
  • .

    시작하기


  • 이 튜토리얼이 끝날 때까지 여러분과 저 모두 아래 코드를 더 잘 이해하기를 바랍니다.

  • data class Calf(
    
        val tagNumber: String,
        val CCIANumber: String,
        val sex:String,
        val details:String,
        val date: Date,
        val id: Long =0
    ) {
    
    }
    


  • 이 튜토리얼은 완전하지는 않지만 Kotlin 클래스 시스템의 놀라운 기능에 대한 확실한 이해를 제공할 것입니다. Kotlin의 클래스에 대해 더 알고 싶다면 문서HERE와 Dmitry Jemerov와 Svetlana Isakova의 책Kotlin in action을 추천합니다.

  • 클래스


  • Kotlin의 클래스는 일반 class 키워드로 선언되며 세 부분으로 구성됩니다.

  • 1) 클래스 이름 : 파일 이름 위의 코드 블록에서 이름은 Calf입니다.

    2) 클래스 헤더: 유형 매개변수(나중에 매개변수에 대해 자세히 설명), 기본 생성자 및 수정자를 포함합니다.

    3) 클래스 본문: { } 중괄호 안의 모든 내용 포함
  • 재미있는 사실, 클래스 본문과 클래스 헤더는 둘 다 비어 있는 경우 선택 사항입니다
  • .

    건설자


  • Kotlin의 클래스는 primary constructor 및 하나 이상의 secondary constructor(여기서는 기본 생성자에 대해 설명하지 않음)를 가질 수 있습니다. 보조 생성자에 대한 자세한 내용은 HERE 문서를 참조하십시오.
  • 위의 코드 블록에서 기본 생성자는 다음과 같습니다.

  • (
    
        val tagNumber: String,
        val CCIANumber: String,
        val sex:String,
        val details:String,
        val date: Date,
        val id: Long =0
    ) 
    
    


  • 클래스 이름 뒤에 옵니다. 보시다시피 기본 생성자는 초기화 코드를 포함할 수 없습니다. 초기화 코드가 필요한 경우 Initializer block 내부에 배치할 수 있습니다.
  • Kotlin에는 PROPERTIES를 선언하고 기본 생성자에서 초기화하는 매우 정확한 구문이 있습니다. 내가 property 에 상당히 중점을 두었다는 것을 눈치채셨을 것입니다. 더 나아가기 전에 속성이 실제로 무엇인지 확실하게 이해해야 하기 때문입니다.

  • 속성: 필드와 접근자 메서드의 조합입니다.
  • 따라서 속성에 대해 이야기할 때는 데이터를 보유하는 필드와 데이터를 설정하거나 액세스하는 데 사용되는 메서드를 모두 의미합니다.
  • 기본 생성자에는 val , val tagNumber: String 로 정의된 속성이 있습니다. val 키워드는 값이 한 번만 설정되고 변경할 수 없음을 의미합니다. 접근자 메서드 측면에서 val로 선언된 속성에는 getter 메서드만 있습니다.

  • 데이터 클래스


  • Kotlin 컴파일러는 장황한 코드 기반을 피하기 위해 유용한 메서드를 생성할 수 있습니다. 클래스를 data 클래스로 선언하면 컴파일러가 여러 메서드를 생성하도록 지시합니다. 가장 일반적이고 잘 알려진 것은 equals()hashcode() 입니다. Kotlin에서 품질을 확인하는 기본 방법은 == 연산자를 사용하는 것입니다. 내부적으로 컴파일러는 equals() 메서드를 호출하고(equals() 대신 ==를 사용하는 일반적인 Java 버그를 피함) 우리가 structural equality라고 부르는 것을 제공합니다. 여전히 Referential equality(두 개의 참조가 동일한 객체를 가리킴)를 원하면 === 연산자를 사용하십시오. equals()hashcode() 모두 기본 생성자에서 선언된 모든 속성을 고려합니다. 생성된equals() 메서드는 속성의 모든 값이 동일한지 확인하고 유효성을 검사합니다. hashcode() 메서드는 모든 속성의 해시코드(객체를 식별하는 고유 번호)에 따라 달라지는 값을 반환합니다.
  • 또한 속성이 기본 생성자에서 선언되지 않으면 equals()hashcode() 메서드의 일부가 되지 않는다는 점을 지적해야 합니다.

  • 결론


  • 시간을 내어 제 블로그 게시물을 읽어주셔서 감사합니다. 질문이나 우려 사항이 있는 경우 아래에 의견을 말하거나 에서 저에게 연락하십시오.
  • 좋은 웹페이지 즐겨찾기