본문 바로가기

코딩연습/과제

객체와 클래스

클래스, 객체, 인스턴스의 개념

클래스

  • 개념
    • 객체를 만들어 내기 위한 설계도 혹은 틀
    • 연관되어있는 변수와 메소드의 집합

객체

  • 개념
    • 소프트웨어 세계에 구현할 대상
    • 클래스에 선원된 모양 그래도 생성된 실체
  • 특징
    • '클래스의 인스턴스' 라고도 부른다.
    • 객체는 모든 인스턴스를 대표하는 포괄적인 의미를 갖는다.
    • oop의 관점에서 클래스의 타입으로 선언되었을 때 '객체'라고 부른다.

인스턴스

  • 개념
    • 설계도를 바탕으로 소프트웨어 세계에 구현된 구체적인 실체
      • 즉, 객체를 소프트웨어에 실체화 하면 그것을 '인스턴스'라고 부른다.
      • 실체화된 인스턴스는 메모리에 할당된다.
  • 특징
    • 인스턴스는 객체에 포함된다고 볼 수 있다.
    • oop의 관점에서 객체가 메모리에 할당되어 실제 사용될 때 '인스턴스'라고 부른다.
    • 추상적인 개념과 구체적인 객체 사이의 관게에 초점을 맞출경우에 사용한다.
      • 객체는 클래스의 인스턴스다.
      • 객체간의 링크는 클래스 간의 연관관계의 인스턴스다
      • 실행 프로세스는 프로그램의 인스턴스다.
    • 즉 인스턴스라는 용어는 반드시 클래스와 객체 사잉의 관계로 한정지어서 사용할 필요는 없다.
    • 인스턴스는 어떤 원본으로부터 '생성된 복제본'을 의미한다.

예시(java)

/* 클래스 */
public class Music {
  ...
}
/* 객체와 인스턴스 */
public class Main {
  public static void main(String[] args) {
    Music EDM, JAZZ; // '객체'

    // 인스턴스화
    EDM = new Music(); // cat은 Animal 클래스의 '인스턴스'(객체를 메모리에 할당)
    JAZZ = new Music(); // dog은 Animal 클래스의 '인스턴스'(객체를 메모리에 할당)
  }
}

'코딩연습 > 과제' 카테고리의 다른 글

절대경로 : 상대경로  (0) 2019.08.04
DNS란?  (0) 2019.08.04
네트워크 전송에서 GET방식과 POST방식  (0) 2019.07.25
사설IP vs 공인IP, NAT  (0) 2019.07.12
(C언어)메모리구조 동적할당 파일 입출력  (0) 2019.07.10