개발(Android)/kotlin syntax

[Kotlin syntax] Class

shinyelee 2022. 4. 4. 22:50

[코틀린 문법] 클래스

// Class(클래스) //
// 인스턴스를 만드는 틀

// Instance(인스턴스) //
// 클래스를 이용해 만들어내는 서로 다른 속성의 객체

// 클래스 == 값(속성) + 기능(함수)
// 함수 == 기능

fun main() {

    var bts = Singer("정국", 1997)
    var txt = Singer("연준", 1999)

    println("안녕하세요, ${bts.birthYear}년생 ${bts.name}입니다.")
    println("안녕하세요, ${txt.birthYear}년생 ${txt.name}입니다.")
//    안녕하세요, 1997년생 정국입니다.
//    안녕하세요, 1999년생 연준입니다.

}

// 클래스 속성(생성자) 선언
class Singer (var name: String, val birthYear: Int)



// 클래스 기본 형태 //

// class 클래스명(매개변수, 기본 생성자 등) { 본문 }

// 있을 거 다 있는 클래스
class Normal(name: String) { /* 내용 */ }

// 몇몇 요소가 없는 클래스
class Normal2() { /* 내용 */ }
class Normal3()
class Normal4 { /* 내용 */ }
class Normal5
// 수정

fun main() {

    var aespa = Singer("윈터", 2001)
    var nmixx = Singer("설윤", 2004)

    aespa.introduce()
    nmixx.introduce()
//    안녕하세요, 2001년생 윈터입니다.
//    안녕하세요, 2004년생 설윤입니다.

}

// 함수 없이 속성만 가지는 클래스는 이 한 줄로 구현 끝!
class Singer (var name: String, val birthYear: Int) {
    fun introduce() {
        // class내에 println function 추가 -> 코드가 훨씬 짧아짐
        println("안녕하세요, ${birthYear}년생 ${name}입니다.")
    }
}

// 클래스 보충설명

fun main() {

    // 인스턴스 객체 생성 후
    val human = Human()
    
    // 점 연산자를 붙여 클래스 내 변수/함수에 접근 가능
    human.eatingCake()
//    yummy!

}

// Class(클래스) 생성
class Human {

    // Property(프로퍼티, 속성) //
    // 클래스 안에 들어가는 변수
    val name : String = "shinyelee"
    // 프로퍼티 정의

    // Method(메서드, 함수) //
    // 클래스 안에 들어가는 함수
    fun eatingCake() {
        println("yummy!")
    }
    // 메서드 정의

    // 클래스 안에는 다수의 속성과 메서드가 들어갈 수 있음

}

참고

반응형