객체(object), 클래스(class), 인스턴스(instance)

2020. 3. 10. 14:00자바 Java/자바 공부 java study

반응형

클래스(Class) 란


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

 

객체(Object) 란

 

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

 

인스턴스(Instance) 란

 

설계도를 바탕으로 소프트웨어 세계에 구현된 구체적인 실체
즉, 객체를 소프트웨어에 실체화 하면 그것을 ‘인스턴스’라고 부른다.
실체화된 인스턴스는 메모리에 할당된다.

 

특징
인스턴스는 객체에 포함된다고 볼 수 있다.
oop의 관점에서 객체가 메모리에 할당되어 실제 사용될 때 ‘인스턴스’라고 부른다.
추상적인 개념(또는 명세)과 구체적인 객체 사이의 관계 에 초점을 맞출 경우에 사용한다.
‘~의 인스턴스’ 의 형태로 사용된다.
객체는 클래스의 인스턴스다.
객체 간의 링크는 클래스 간의 연관 관계의 인스턴스다.
실행 프로세스는 프로그램의 인스턴스다.
즉, 인스턴스라는 용어는 반드시 클래스와 객체 사이의 관계로 한정지어서 사용할 필요는 없다.
인스턴스는 어떤 원본(추상적인 개념)으로부터 ‘생성된 복제본’을 의미한다.

public class Tv {
	String color;    // 얘네들이 필드 변수
	Boolean power;
	int channel;
	
	public void power() { //tv 를 켜거나 끄는 기능을 하는 메소드 
		power=!power;	
	}
	
	public void channelDown() {   //티비의 채널을 낮추는 기능을 하는 메소드 
		--channel;
	}
	
	public void channeUp() {   //티비의 채널을 높이는 기능을 하는 메소드 
		++channel;
	}
}

 

 

public class TvTest {
	public static void main(String[] args) {
		Tv t;

		// Tv 인스턴스를 참조하기 위한 변수 t를 선언
		// Tv클래스 타입의 참조 변수 t 를 선언 , 메모리에 참조변수 t에 대한 공간이 마련
		// 인스턴스가 아직 생성 되지 않았기 때문에 참조변수로 아무것도 할 수가 없음

		t = new Tv();
		// Tv 인스턴스 생성
		// 연산자 new 에 의해 Tv클래스의 인스턴스가 메모리의 빈공간에 생성
		// 멤버 변수는 각 자료형에 해당하는 기본 값으로 초기화
		// String color= null;
		// Boolean power=false;
		// int channel =0;
		// 대입 연산자에 의해서 생성된 인스턴스의 주소값이 참소변수 t 에 저장 (참조변수 t 를 통해서 Tv인스턴스에 접근 )

		t.channel = 7; // 참조 변수 t에 저장된 주소에 있는 인스턴스의 멤버변수 channel 에 7을 저장한다.
						// 인스턴스의 멤버 변수 ( 속성) 을 사용하려면 ' 참조변수.멤버변수' 와 같이 사용하면 된다
		t.channelDown();
		System.out.println("현재 채널은" + t.channel + "입니다.");  //"현재 채널은 6 입니다" 출력
	}
}

 

 

 

 

 

 

 

 

 

반응형

'자바 Java > 자바 공부 java study' 카테고리의 다른 글

접근제한자[private,public,protected,default],getter, setter  (0) 2020.03.10
메소드(method)  (0) 2020.03.10
생성자(constructor)  (0) 2020.03.10
garbage collector(GC)  (0) 2020.03.10
정적 변수(static variables)  (0) 2020.03.10