본문 바로가기
security/코틀린

Kotlin - 10. 클래스

by aristia 2020. 7. 29.

10. 클래스

 

클래스는 정말 중요한 개념이다.
이것에 대해 완벽히 숙지를 하지 못하면

앞으로의 코딩이 힘들어질 수도 있다.

그러므로 유심히 보도록 하자.

 

---------------------------------------------------------------------------

 

클래스 만드는 방법(1)

 

class 클래스 이름 ( var 변수 : 자료형 ){

}

 

여기서 Car이라는 class를 만드는데,
이는 설명서를 만드는 것과 같다고 할 수 있다.

Car 클래스의 멤버 변수로 engine과 body를 만들어주었다.

 

그 다음에 main 함수 안에 실체를 만들어 줄 것이다.

이것을 인스턴스라고 한다. 보통 인스턴스와 객체를 같이 혼용해서 사용한다.


Car이라는 설명서를 앞에 적어주고 그 안에 요소들을 적어준다.

이때, 그냥 String이었던 자료형을, 
이 인스턴스에 맞는 것으로 적어주면 된다.

 

bigCar이라는 변수에 그 인스턴스를 넣어줄 수도 있다.

 

그리고 변수를 선언할 때 자료형도 같이 적어준 것처럼,
인스턴스에서도 이렇게 자료형을 적어줄 수 있는데,

주의할 점은 이때의 자료형은 class 이름인 것이다.

 

---------------------------------------------------------------------------

 

클래스 만드는 방법(2)

 

class 클래스 이름{

var 변수 이름 : 자료형

constructor(변수 이름 : 자료형){

this.변수 이름 = 변수 이름}

}

 

클래스를 만드는 방법 2번째이다. 이것은 앞에보다 길지만,
보다 명확한 특성이 있다.

constructor은 생성자를 만들어주는 것이다.

 

인스턴스 적어줄 때는 앞에서 했던 것과 같다.

다만 여기서 호출하는 것은 class 안에 constructor()이다.

 

---------------------------------------------------------------------------

 

클래스 만드는 방법(3)

 

class 클래스 이름(꼭 필요한 요소){

var 선택 요소 : 자료형 = ""

constructor( 전체 요소 : 자료형) : this(꼭 필요한 요소){

this.선택 요소 = 선택 요소

}

}

 

이번에는 꼭 필요한 요소를 넣고,
넣어도 되고 안 넣어도 되는 것은 따로 빼놓는(?) 그런 클래스를 만들어 줄 것이다.

여기서 중요한 것은 this 부분이다.

 

---------------------------------------------------------------------------

 

클래스 만드는 방법(4)

 

 

---------------------------------------------------------------------------

 

클래스 안에 함수 사용하는 법

fun 함수 이름(){

}

 

클래스 안에 함수를 사용해서 원하는 것을 하게 할 수도 있다.

 

---------------------------------------------------------------------------

 

인스턴스 멤버 변수 안에 접근 하는 방법(1)

인스턴스 이름 . 함수 이름()

 

이 함수를 실행하기 위해서는 .을 사용한다.

아마 다른 언어를 배워보았다면 매우 익숙한 것이다.

 

여기서 주의할 점은 객체 즉 인스턴스에 .을 해야지,
클래스 이름에 .을 하면 안된다는 것이다.

 

결과를 출력하면 다음과 같이 나온다.

 

---------------------------------------------------------------------------

 

인스턴스 멤버 변수 안에 접근 하는 방법(2)

 

앞이랑 같은 의미를 가지는 클래스이다. 
그냥 요소만 안에 적어준 것이다.

 

인스턴스 멤버 변수 안에 접근하여 출력할 때 

그냥 println(인스턴스 이름 . 멤버 변수) 이렇게 해줘도 된다. 

 

그럼 이렇게 출력되는 것을 확인할 수 있다. 

 

---------------------------------------------------------------------------

 

init

- 클래스에서 인스턴스화해서 실제 객체가 만들어질 때
무조건, 가장 먼저 호출되는 것

- 초기 세팅을 할 때 유용하다.

 

 

---------------------------------------------------------------------------

 

오버로딩

 

- 클래스 안에 맴버변수는 이름이 똑같은 것을 사용할 수 없다.

- 기본적으로 함수도 이름이 똑같으면 사용할 수 없는데,
받는 파리미터가 다르다면 
이름이 똑같은 함수를 2개 만들 수 있다.

'security > 코틀린' 카테고리의 다른 글

Kotlin - 12. 상속  (0) 2020.07.29
Kotlin - 11. 접근 제어  (0) 2020.07.29
Kotlin - 09. 반복문  (0) 2020.07.28
Kotlin - 08. Collection(2) - Mutable  (0) 2020.07.25
Kotlin - 07. Collection(1) - Immutable  (0) 2020.07.25

댓글