[개념 콕] 객체와 클래스의 차이

내일배움캠프 수료생이 개발에 꼭 필요한 핵심 개념만 콕 집어 드립니다.
Jun 07, 2024
[개념 콕] 객체와 클래스의 차이
✍🏼
개발에 입문하시는 여러분, 정보가 너무 많고 배워야 할 것도 산더미라 어디서부터 시작해야 할지 막막하신가요? 내일배움캠프 수료생들이 4개월 동안 배운 엄선된 핵심 개념을 직접 정리해서 알려 드립니다. 공부하다 막히거나 헷갈리는 개념이 있다면 개념 콕으로 정리해보세요.
 
객체(Object)와 클래스(Class)는 객체지향 프로그래밍(OOP)에서 핵심이 되는 개념입니다. 객체는 클래스를 기반으로 생성되며, 고유한 상태와 행동을 가지는 독립적인 실체입니다. 즉, 클래스는 프로그램에서 객체를 생성하기 위한 일종의 설계도라면, 객체는 그 설계도를 기반으로 실제로 생성된 실체(인스턴스)라고 할 수 있습니다.
 

클래스 (Class)

클래스는 객체를 생성하기 위한 '템플릿' 또는 '청사진'으로 볼 수 있습니다. 클래스 내부에는 객체가 가져야 할 속성(데이터)과 객체가 수행할 수 있는 행동(메소드)이 정의됩니다.
예를 들어 'Dog'라는 클래스를 만든다면, 이 클래스는 'Dog' 객체들이 공통적으로 가지게 될 속성(breed, age, color 등)과 메소드(bark, eat, sleep 등)를 포함할 것입니다
class Dog ( private val breed: String, private val age: Int, private val color: String, ) { fun bark() { println("멍! 멍!") } fun eat() { println("개가 밥 먹습니다") } fun sleep() { println("개가 잠 잡니다") } } fun main() { val myDog = Dog("Golden Retriever", 5, "golden") myDog.bark() myDog.eat() myDog.sleep() println("Breed: ${myDog.breed}") println("Age: ${myDog.age}") println("Color: ${myDog.color}") }
위 코드에서 'Dog' 클래스는 모든 'Dog' 객체가 공유하는 속성(breed, age, color)과 메소드(bark, eat, sleep)를 정의합니다. 그리고 main 함수에서는 이 클래스를 기반으로 실제 'Dog' 객체(myDog)를 생성합니다. 이렇게 만들어진 객체는 클래스에서 정의한 모든 특성을 내포하고, 독립적인 상태와 행동을 갖습니다.
 

객체 (Object)

객체는 클래스를 기반으로 생성된 실제 인스턴스입니다. 각각의 객체는 클래스에서 정의한 속성과 메소드를 모두 가지고 있지만, 각자 고유한 속성 값을 가질 수 있습니다. 아래 코드를 보면 이해가 더 쉬울 것입니다.
 
fun main() { val retriever = Dog("Golden Retriever", 5, "golden") val welshCorgi = Dog("Welsh Corgi", 3, "brown") }
여기서 'retriever'와 'welshCorgi'는 모두 'Dog' 클래스의 인스턴스지만, 서로 다른 품종, 나이, 색을 가지고 있습니다. 이런 식으로 하나의 클래스로부터 다양한 속성을 가진 객체들을 생성할 수 있습니다.
 
 

요약

  • 클래스는 객체를 정의하는 코드의 집합이며, 객체는 클래스를 기반으로 생성된 실제 인스턴스입니다.
  • 클래스는 객체의 설계도 역할을 하고, 객체는 그 설계도를 바탕으로 만들어진 실체입니다.
  • 클래스는 객체의 공통 속성과 행동을 정의하지만, 각 객체는 독립적인 속성 값을 가지며 고유한 상태를 유지합니다.
 

내일배움캠프는 개발에 필요한 핵심만 배웁니다

지금까지 꼭 필요한 개발 지식에 대해 알아보았습니다. 내일배움캠프에서는 전문가들이 선별한 핵심 개발 지식으로 개발 공부도, 취업도 보다 효율적으로 할 수 있는데요. 국내 유수의 IT기업 출신 튜터님들과 실습 위주의 독보적인 커리큘럼으로 개발자 취업을 체계적으로 준비해보세요. 내일배움캠프 4개월, 여러분 인생의 가장 큰 터닝 포인트입니다.
 
CREDIT
글 | 심규상 내일배움캠프 수료생 편집 | 정효재 팀스파르타 에디터
 
 

취업 준비, 어디서부터 시작해야 할지 모르겠다면?

 
🧐비전공자인데 IT 업계 취업할 수 있을까?
😟프로젝트 경험이 부족한데, 어떻게 준비해야 할까?
🥺IT 기업으로 이직하고 싶은데 뭐부터 시작해야 할까?
 
이런 고민을 하고 있다면, 내일배움캠프의 IT 취업 컨설팅을 받아보세요.
취업 코칭 전문가들이 여러분의 고민을 해결해 드립니다.
 
다음 링크에 이메일을 입력하시면 메일로 1:1 커리어 상담권과 취준 자료집을 보내드릴게요.
 
Share article
Subscribe to our newsletter

내일배움캠프 블로그