Kotlin 문법: "클래스"

SHY(code poet)·2024년 2월 8일

✨Kotlin에 관하여✨ 

목록 보기
15/36

● 클래스: 변수와 함수의 모음(연관성 있는 함수와 변수를 한군데에 모아 그룹화하고 사용하기 쉽게 이름을 붙여놓은 것) ⇒ ①클래스의 작성 & ②생성자 작성과
-> ③생성자 호출을 통한 생성자 코드 실행과 인스턴스 생성(클래스 인스턴스화) & ④클래스 사용(클래스 내부에 정의된 변수와 함수 사용)
※ 변수의 타입으로 설정할 수 있는 거의 대부분의 것들이 실은 ‘CLASS’임,
이미 개발자들은 사람들이 자주 사용하는 요소들을 클래스로 만들어 놓았음.
int도 실은 하나의 클래스임.(즉, var가 int 라는 클래스 타입을 가지도록 한다!) ctrl을 누른 후 클릭하면 class안에 감춰진 코드들이 다 짜여져 있음. 여기에 우리가 사용 가능한 프로퍼티와 메서드가 미리 만들어 져있어서, 클래스 사용방법과 같이 class.프로퍼티호출 / class.(메서드호출) 의 방법으로 활용가능.
※ 인스턴스를 찍어내는 틀 만들기. 자동차 틀을 만든다고 하면, 이 틀 안에
자동차의 속도, 연비, 탑승 인원 등의 변수를 만들어 놓고, 브레이크를 밝고 시동을 걸며 엑셀을 밟는 것과 같은 함수의 기본 정보를 탑재해 두면, 후에 이 생성자 함수를 통해 여기에 값만 대입하면 바로 바로 객체를 만들어 낼 수 있을 것임. 구체적인 객체를 만들어 낸다고 해서 ‘생성’자인 것.
※ 클래스(빵틀)->생성자 호출(빵 만들기)->인스턴스(빵)
※ 빵 틀에서 빵을 찍어내 듯, 생성자 함수를 호출하여 클래스에서 정의해 둔 속성과 메소드를 가진 데이터 객체를 만들 수 있는데, 이를 인스턴스(Instance) 라고 부른다.
※ 클래스의 구성요소(변수와 함수)
맴버 변수/속성(Property) : 클래스 내의 변수
맴버 함수/메소드(Method) : 클래스 내의 함수
생성자(Constructor) : 클래스 명과 동일한 함수
※ 클래스 안에 정의된 변수는 프로퍼티라고 하지만 함수 안에 정의된 변수는 프로퍼티가 아닌 변수(지역 변수)라고 한다.
class 클래스명 {
var 변수A // 프로퍼티: 함수 밖에 있어야 합니다.
fun 함수(){
var 변수B // 변수(또는 지역변수): 함수 안에 있어야 합니다.
}
}

  • 클래스의 기본 구조
    class 클래스명 {
    var 변수
    fun 함수() {
    // 코드
    }
    }

  • 문자열을 저장할 수 있는 string 클래스의 코드
    class String{
    var length: Int
    fun plus(other: Any){
    // code
    }
    fun compareTo(other: String){
    // code
    }
    }

  • length 변수로 문자열의 길이를 알 수 있고, plus 함수는 문자열을 이어붙일 수 있다.
    또한 compareTo는 문자열을 비교하는 기능을 제공한다.

① 클래스 코드 작성하기

class 클래스이름 {
// 코드블록- 클래스 스코프 (class scope)
}

  • 먼저 클래스의 이름을 정하고 이름 앞에 class 키워드를 붙여서 만들 수 있다.
  • 클래스 이름 다음에는 클래스의 범위를 지정하는 {중괄호}가 있어야 한다.
    ㄴ 중괄호를 스코프(scope)라고 하는데, 클래스에서 사용하면 클래스 스코프라고 한다.
  • 데이터 클래스를 일반 클래스처럼 사용하기
    ⇒ 클래스와 사용법이 동일하지만 주로 네트워크를 통해 데이터를 주고받거나, 혹은 로컬 앱의 데이터베이스에서 데이터를 다루기 위한 용도로 사용하는 것이 데이터 클래스.
    : 일반 클래스와 동일하게 생성자를 호출하면 init 블록이 동작하고 메서드도 사용 가능
    data class UserData(var name: String, var age: Int){
    init{
    Log.d("UserData", "initialized")
    }
    fun process(){
    // 클래스와 동일하게 메서드 사용이 가능합니다.
    }
    } // 클래스가 생성되면 "initialized"가 출력됩니다.
profile
진정한 개발자는 코드를 두려워하지 않는다. 오히려 코드가 그를 두려워한다.

0개의 댓글