안드로이스 스튜디오 클래스와 생성자

2022. 12. 4. 20:50_Study/AndroidStudio

728x90

클래스와 생성자 🐇¸.•*¨*•¸.•*¨*•¸.•*¨*•¸.•*¨*• 

 

해당 자료는 강의 학습 자료 입니다.


클래스 선언

 

클래스는 class 키워드로 선언하며, 클래스의 본문에 입력하는 내용이 없다면 {}를 생략할 수 있다.

클래스의 멤버는 생성자, 변수, 함수, 클래스로 구성한다. 속성은 getter setter을 자동생성할 수 있다.

생성자는 constructor라는 키워드로 선언할 수 있다.

 

객체를 생성해 사용하며 객체로 클래스의 멤버에 접근하고 객체를 생성할 때 new 키워드를 사용하지 않는다.

 

package com.example.ch3

fun main() {
    var user = User("kim")
    user.someFun()
}

class User{
    var name = "kkang"
    constructor(name : String) {
        this.name = name
    }
    fun someFun(){
        println("name : $name")
    }
    class SomeClass{}
}

 

 

주생성자

 

생성자는 주생성자와 보조 생성자로 구분한다.

주생성자 : constructor 키워드로 클래스 선언부에 선언한다. ex class User ()

주생성자 선언은 필수는 아니지만 클래스에 하나만 가능하다.

constructor 키워드는 생략할 수 있다.

주생성자의 본문 - init 영역 (초기화 블록)

 

- init 키워드를 이용해 주 생성자의 본문을 구현할 수 있다.

- init 키워드로 지정한 영역은 객체를 생성할 때 자동으로 실행된다.

 

 

생성자의 매개변수를 클래스의 멤버 변수로 선언하는 방법

- 생성자의 매개변수: 기본적으로 생성자에서만 사용할 수 있는 지역 변수

 

val 이나 var 키워드로 선언하면 클래스의 멤버 변수로 선언된다.

 

 

 

 

보조 생성자

보조생성자클래스의 본문에 constructor 키워드로 선언하는 함수

여러 개를 추가할 수 있다.

 

보조 생성자에 주생성자를 연결 : 클래스 내에 주 생성자가 있다면 this() 구문을 이용해 주생성자와 연결해야한다.

 

보조 생성자가 여럿일 때 생성자 연결

 

class User(name : String) {
    constructor(name: String, count: Int):this(name){

    }
    constructor(name: String, count: Int, email: String):this(name,count){

    }
}

fun main(){
    val user2 =User2("kkang",10)
    var user = User("kkang",1004, "email@")
}