1. 기본구조
클래스란 '값'과 그 값을 사용하는 '기능'들을 묶어놓은 것이다.
우리가 지금까지 배운 여러 가지 자료형들 역시 Kotlin 내부에서는 모두 클래스로 이루어져 있다고 한다.
클래스 = 속성(고유의 값) + 함수(기능의 구현)
또한 클래스는 '인스턴스'를 만드는 틀이라는 점을 알아둬야 한다.
즉, 속성이 있고, 행위를 할 수 있는 것들을 객체라고 할 수 있다.
예를 하나 들어보겠습니다.
사람은 객체다.
사람이라는 객체는 팔,다리,눈,코,입 등의 속성을 갖고 있고,
걷기, 말하기, 운동하기, 밥먹기 등등의 기능이 있는 것이다.
인스턴스란?
인스턴스란 클래스에 의해 객체가 선언되어 실체가 되면 이것을 인스턴스라고 한다.
헷갈린다면 객체 = 인스턴스 라고 생각해도 무방하다.
정리하면 객체는 소프트웨어 세계에서 구현할 대상이고, 이를 구현하기 위한 설계도가 클래스(Class)이며,
이 설계도에 따라 소프트웨어 세계에서 구현된 실체가 인스턴스(Instance)이다.
이제 클래스를 만들어 보자
class 클래스이름(속성){기능}
이런식으로 클래스를 선언해 주고 속성들과 기능을 구체화해서 구현하면 됩니다.
기능(함수)도 위와같이 선언해 주면 됩니다.
fun 함수명(){
//구현하고자하는것
}
저는 사람의 이름과 태어난 년도, 그리고 직업을 관리하는 클래스를 만들어 보겠습니다.
그리고 자기소개를 할 수 있는 기능까지 추가해 보겠습니다.
class Person(var name:String, var birthYear:Int, var job:String){
fun introduce(){
println("저는 ${birthYear}년생 ${name} 입니다. \n제 직업은 ${job} 입니다. ")
}
}
fun main() {
var A = Person("유재석",1972,"개그맨")
var B = Person("김종국",1976,"가수")
var C = Person("송지효",1981,"배우")
println("${A.name}의 자기소개")
A.introduce()
println("${B.name}의 자기소개")
B.introduce()
println("${C.name}의 자기소개")
C.introduce()
}
그리고 이런 식으로 제 코드를 실행시키게 되면
짜잔!
이런 결과를 얻을 수 있습니다.
코틀린은 객체지향언어를 기반으로 함수형 언어의 장점을 흡수한 실용적인 언어라고 한다.
그러므로 객체지향의 기본구조가 되는 클래스를 이해하는 것이 무엇보다 중요하다.
'코틀린' 카테고리의 다른 글
[Kotlin] 클래스 상속(Inheritance) (0) | 2024.02.12 |
---|---|
[Kotlin] 클래스의 생성자 (4) | 2024.02.06 |
[Kotlin] 반복문 (1) | 2024.01.31 |
[Kotlin] 조건문 (0) | 2024.01.30 |
[Kotlin] 타입추론과 함수 (1) | 2024.01.29 |