울음참고 개발공부
728x90

 

 

클래스와 객체의 차이점을 말하라고 하면 뭐라고 말할 수있을까?

 

먼저 '인스턴스화(Instantation) 여부'에 대해 말할 수 있다.

 

 

  •  클래스는 객체를 만들기 위한 청사진이고, 객체는 그 클래스의 인스턴스이다. 
  • 클래스는 데이터 및 메서의 틀을 제공하며, 객체는 이러한 틀을 기반으로 실제 메모리에 할당된 것이다.
  • 객체는 클래스의 인스턴스로, 클래스에서 정의된 속성과 메서드를 실제 값과 동적으로 구현한다.
  • 객체는 클래스의 인스턴스이기 때문에 여러 객체를 만들어 사용할 수 있다
  • 객체는 클래스의 인스턴스이지만 클래스 자체로는 직접적으로 데이터를 담거나 메서드를 실행할 수 없다 

 

 


 

 

 

그렇다면 인스턴스화되었다는 것을 다음과 같이 정의할 수 있다.

 

인스턴스화

인스턴스화는 클래스로부터 객체(인스턴스)를 생성하는 과정을 의미한다.

 

 

앞서 클래스는 실제로 데이터를 가지거나 동작을 수행하는 것이아니고, 객체를 생성하기 위한 틀을 제공한다고 했다. 

그래서 클래스의 인스턴스(객체)를 생성해야 클래스 내 정의된 속성과 동작을 사용할 수 있는 것이다. 

 

 

 

 


 

 

 

인스턴스화된 객체와 인스턴스화되지 않은 클래스의 주요 차이는?

 

 

1. 메모리 할당

  • 객체 : 메모리에 할당되어 실제 데이터를 포함하고, 클래스에서 정의된 동작을 수행할 수 있음
  • 클래스 : 메모리에 직접적으로 할당되지 않으며, 단순히 클래스의 구조와 틀만 제공함

 

2. 사용 가능성

  • 객체 : 해당 클래스의 속성과 메서드를 실제로 사용할 수 있음
  • 클래스 : 클래스 내 정의된 메서드나 속성을 사용할 수 없음

 

3. 동적 특성

  • 객체 : 객체는 동적으로 속성을 수정하거나 새로운 동작을 추가할 수 있음
  • 클래스 : 클래스는 수정이 어려울 수 있고, 객체를 생성하기 전까지는 변경이 불가능함 

 

 


 

 

+ ) 그외 클래스와 객체의 차이점 

 

 

1. 설계와 실체

 

클래스 

- 클래스는 추상적인 설계를 나타내며, 객체의 특징을 정의한다

 

객체 

- 실제로 존재하는 것으로, 클래스의 인스턴스이다.

- 클래스를 기반으로 생성되며, 데이터를 포함하고 해당 클래스에서 정의된 작업을 수행할 수 있다.

 

한마디로, 클래스로 설계하면 객체는 그 설계의 실체인 것이다. 

 

 

 

2. 메모리 할당

 

클래스

- 메모리에 직접적으로 할당되지 않음.

- 클래스는 프로그램의 코드 부분이며, 실행 중에 메모리에 할당되지 않음

 

객체

- 메모리에 할당되고, 데이터를 저장하며 해당 데이터를 가공하는데 사용됨

- 객체는 메모리를 차지하며, 실행 중에 동적으로 생성되고 삭제됨

 

 

 

3.  정적 vs 동적

 

클래스

- 보통 정적인 특성을 갖는다. 한 번 정의되면 수정이 어려울수 있다.

 

객체

- 객체는 생성된 후에도 속성을 변경하거나 다른 동작을 수행할 수 있는 동적인 특성을 갖는다.

 

 

 

4. 관계

 

클래스는 객체를 생성하기 위한 틀이므로, 여러 객체가 같은 클래스의 인스턴스가 될 수 있다. 

 

 

 

 

 

 

 

728x90
profile

울음참고 개발공부

@메각이

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!