프로그램 언어/JAVA

클래스, 객체 , 인스턴스의 차이

알케이88 2019. 11. 24. 01:31

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

클래스(Class)란?

    º개념

           ·  객체를 정의하고 만들어 내기 위한 설계도 혹은 틀

           ·  연관되어 있는 변수와 메서드의 집합

    º특징

           ·  객체의 상태를 나타내는 필드(field)와 객체의 행동을 나타내는 메소드(method)로 구성된다.

           ·  필드(field)란 클래스에 포함된 변수(variable)를 의미한다.

           ·  메소드(method)란 어떠한 특정 작업을 수행하기 위한 명령문의 집합

 

객체(Object)란?

    º개념

           ·  소프트웨어 세계에 구현할 대상

           ·  클래스에 선언된 모양 그대로 생성된 실체

    º특징

           ·  '클래스의 인스턴스(instance)' 라고 부른다.

 

인스턴스(Instance)란?

    º개념

           ·  설계도를 바탕으로 소프트웨어 세계에 구현된 구체적인 실체

              ·  즉, 객체를 소프트웨어에 실체화 하면 그것을 '인스턴스'라고 부른다.

              ·  실체화된 인스턴스는 메모리에 할당된다.

    º특징

           ·  인스턴스는 객체에 포함된다고 볼 수 있다.

           ·  oop의 관점에서 객체가 메모리에 할당되어 실제 사용될 때 '인스턴스'라고 부른다.

           ·  추상적인 개념(또는 명세)과 구체적인 객체사이에 초점을 맞출 경우에 사용한다.

           ·  즉, 인스턴스라는 용어는 반드시 클래스와 객체 사이의 관계로 한정지어서 사용할 필요는 없다.

           ·  인스턴스는 어떤 원본(추상적인 개념)으로 부터 '생성된 복제본'을 의미한다.

 

 

※OOP(Object-Oriented Programming) 객체 지향 프로그래밍

 

   ☆ 모든 데이터를 객체(object)로 취급하며, 이러한 객체가 바로 프로그래밍의 중심이다.

 

   ☆ 객체(object)란 간단히 이야기 하자면 실생활에서 우리가 인식할 수 있는 있는 사물로 설명할 수 있다.

       이`러한 객체의 상태(state)와 행동(behavior)을 구체화하는 형태의 프로그래밍

 

 

/* 클래스 */
public class Animal{
	...
}

public class Main {
	public static void main(String[] args) {
    	Animal cat, dog; //객체
        
        cat = new Animal(); //Animal 이라는 클래스에 cat 이라는 인스턴스(메모리에 할당)
        dog = new Animal(); //Animal 이라는 클래스에 dog 이라는 인스턴스(메모리에 할당)
    }
}
    

클래스 vs 객체 vs 인스턴스

 

클래스 vs 객체

※  클래스는 설계도, 객체는 설계도로 구현한 대상 을 의미한다.

 

객체 vs 인스턴스

※ 객체: 클래스의 타입으로 선언되었을때

※ 인스턴스: 메모리에 할당되어 실제 사용될때

 

 

'프로그램 언어 > JAVA' 카테고리의 다른 글

예약어  (0) 2019.12.01
기본 자료형  (0) 2019.11.24
JAVA 변수의 종류 (기본형, 참조형, 상수)  (0) 2019.11.23
접근 지정자 (private, public, protected, default)  (0) 2019.11.23
자바 변수와 자료형  (1) 2019.11.22