본문 바로가기
컴퓨터 언어/Kotlin

[Kotlin] 클래스 사용법

by 웅대 2022. 12. 8.
728x90

코틀린도 다른 객체 지향 언어와 마찬가지로 클래스를 사용할 수 있다.

 

class Student(name:String, age:Int){
    val sName:String = name
    val sAge:Int = age
    
    fun printName():String{
        return sName
    }
    fun printAge():Int{
        return sAge
    }
}

클래스의 멤버 변수를 프로퍼티(property)라고 하고 멤버 함수를 메소드(method)라고 한다.

 

클래스를 정의할 때 생성자의 경우 주 생성자부 생성자로 나뉜다.

 

위의  Student 클래스는 주 생성자이고 부 생성자는 클래스 내부에서 constructor를 사용하여  만들 수 있다.

 

코틀린 클래스에는 몇 가지 규칙이 존재한다.

 

프로퍼티는 반드시 초기화를 해야한다.

 

프로퍼티를 만드려면 다음 두 가지 중 하나를 반드시 해야한다.

 

  1. 선언과 동시에 초기화를 한다.
  2. 선언을 해두고 init 블록 안에서 초기화를 한다.

1번의 경우 위 Student 클래스 예시를 보면 되고

 

2번의 경우 아래와 같이 하면 된다.

class Student(name:String, age:Int){
    val sName:String
    val sAge:Int
    init{
        sName=name
        sAge=age
    }

    fun printName():String{
        return sName
    }
    fun printAge():Int{
        return sAge
    }
}

두 방법을 사용하지 않고 메소드에서 초기화를 한다는 것은 불가능하다.

 

주 생성자의 파라미터는 프로퍼티를 초기화 할 때만 사용할 수 있다.

 

위에서 프로퍼티를 초기화하는 방법 두 가지를 소개했는데 이렇게 프로퍼티를 초기화할 때만 사용할 수  있다.

 

아니면 따로 프로퍼티를 생성하지 않고 파라미터 자체를 프로퍼티로 사용하는 방법도 있다.

 

파라미터 앞에 val을 붙이면 된다.

class Student(val name:String, val age:Int){
    fun printName():String{
        return name
    }
    fun printAge():Int{
        return age
    }
}

 

프로퍼티 혹은 메소드에 가시성을 줄 수도 있다.

 

  1. public : 어디에서든 멤버에 접근 가능
  2. internal : 모듈 내부에서만 접근 가능
  3. protected : 해당 클래스와 하위 클래스에서만 접근 가능
  4. private : 해당 클래스 내부에서만 접근 가능
내부 클래스

클래스 내부에 inner class를 사용하여 클래스를 선언하면 내부 클래스가 된다.

 

내부 인스턴스의 경우 외부 인스턴스에 접근할 수 있다.

728x90
반응형

댓글