언어/Kotlin

Kotlin : 객체 (Object)

해리누나 2022. 6. 24. 08:16
728x90
반응형

코틀린은 자바처럼 객체 지향 언어이다. 그럼, 당연히 우리는 이 '객체'가 무엇인지 알아야 할 필요가 있다.

 

 보통 우리가 보거나 만질 수 있는, 실세계의 존재하는 것들을 객체라 한다. 예로 책상, 의자, 컵, 연필 등의 흔히 보이는 물건들. 따라서 객체 지향 프로그래밍은 우리가 매일 인지하고 있는 것들과 가깝다고 보면 된다.

 

  • 실세계에는 객체가 존재한다. (예: 컵)
  • 이러한 객체는 속성을 가지고 있다. (예: 재질, 색상, 내용물, 크기)
  • 객체에는 다양한 상태가 있다. (예: 컵이 차있다, 비어있다, 가득 차있다, 들어있는 음료가 뜨겁다, 차갑다)
  • 객체는 서로 연관되어 있다. (예: 음료(객체)가 컵(객체)에 들어있다. 사람(객체)이 컵(객체)으로 음료(객체)를 마신다.)
  • 객체 사이에는 상호작용이 있다. (예: 컵에 음료 따르기, 음료 마시기, 컵 행구기)
  • 객체의 상태에 따라 다르게 동작한다. (예: 비어있는 컵은 더 이상 마실 수가 없다, 음료가 꽉 차 있는 컵에는 더 이상 음료를 따를 수가 없다.)

 

지금까지 컵, 책상 등과 같이 물질적인 것들에 대해서만 얘기했으나 그것만이 객체라고 말하지는 않는다. 객체 지향 프로그래밍에서는 모든 것들이 객체(object)다. 즉, 물질적인 것들 외에도 모든 상황이나 사람이 생각/인지/상상하고 표현할 수 있는 모든 것이 객체다. 따라서, 사람의 기분, 관계, 여행, 약속등도 객체다. 전체의 일부 또한(예: 팔이나, 다리 같은 신체의 일부, 핸들이나, 좌석 등받이 등의 자동차의 일부)객체다. 원칙적으로 언어로 표현할 수 있는 모든 것들도 객체가 될 수 있다로 이해해도 된다. 예를 들어 sortAllCups() 라는 표현식은 함수(fun)로 정의할 수 있지만, sortAllCups 라는 Class로 정의할 수도 있다. 이 클래스 내부에는 아마 컵을 분류하는데 필요한 것들이 서술되어 있을 것이다.

 

객체는 개별 속성들과 기능을 특징으로 한다. 공통 속성을 가진 객체는 동일한 범주에 속한다. 객체 지향 프로그래밍에서 클래스는 동일한 구조를 가진 객체들의 집합으로 보면 된다. 예로 모든 컵들은 그 크기가 다르던, 색이 다르던 같은 컵 클래스에 속한다.

 

다양한 컵들

 
위에 사진 속 컵들은 크기도, 모양도, 색깔도, 디자인도 전부 제각각이지만 같은 컵 클래스에 속해 있다.
 

 

 

 

 

출처:

내용 / 도움준 곳: 학교 교수님 (Christian Kohls) 강의,

         https://terms.naver.com/entry.naver?docId=3532992&cid=58528&categoryId=58528 

728x90
반응형

'언어 > Kotlin' 카테고리의 다른 글

Kotlin : Objectreference (ft. Call by value)  (0) 2022.09.05
Kotlin : 클래스 (Class)  (0) 2022.09.02
Kotlin : 함수 선언과 호출  (0) 2022.06.18
Kotlin : 제어문 if 와 when  (0) 2022.06.17
Kotlin : 변수 var 과 val  (0) 2022.06.16