Programming Language/Java

[Java]클래스(class)와 객체(object) 그리고 인스턴스(instance)

영벨롭 2022. 2. 16. 13:23

 Java 언어는 객체 지향 언어입니다. 

 

 객체 지향 언어는 실세계의 객체를 프로그램 내에 표현하기 위해 클래스와 객체 개념을 도입하였습니다. 

 

 이러한 객체 지향 언어의 특성으로는 캡슐화(Encapsulation), 상속(Inheritance), 다형성(Polymorphism)이 있습니다. 

 

 그렇다면 Java를 비롯한 객체 지향 언어에서 사용되는 클래스(class)객체(object), 인스턴스(instance)의 개념에 대해서 살펴보겠습니다. 

 

 클래스(class) = 객체를 만들어 내기 위한 설계도 혹은 틀

 

객체(object) = 클래스 모양 그대로 생성된 실체

 

인스턴스(instance) = 소프트웨어에 실체화된 객체

 

 

 쉽게 말해, 클래스가 붕어빵 틀이라면 객체는 붕어빵이 됩니다. 붕어빵이라는 동일한 객체를 통해 각각 다른 슈크림 붕어빵, 팥 붕어빵 등등이 인스턴스라고 할 수 있습니다. 

 

 대부분의 프로그램은 여러 클래스로 구성되며 실행을 위해서는 main() 메소드가 필요합니다. 이때, 클래스를 사용하기 위해선 new() 연산을 통해 인스턴스를 생성하여 클래스부에 선언된 멤버를 접근합니다. 

 

 예제를 통해 클래스와 객체, 인스턴스의 쓰임을 보겠습니다. 

 

package Test;

public class Test {//클래스, 틀
	
	//클래스의 멤버 변수(인스턴스 변수)
	int num;
	String str;

	public static void main(String[] args) { //main() 메소드
		
		//객체
		Test obj1, obj2;
		
		//인스턴스
		obj1=new Test();
		obj2=new Test();
		
		obj1.num=1;
		obj1.str="홍길동";
		
		obj2.num=2;
		obj2.str="김철수";
		
		System.out.printf("%d %s\n", obj1.num, obj1.str);
		System.out.printf("%d %s\n", obj2.num, obj2.str);

	}

}

출력: 1 홍길동

         2 김철수

반응형