본문 바로가기

Java/본격 Java 클래스

[Java] 인스턴스(instance)

인스턴스(instance)
 - 클래스를 기반으로 만들어 내는 객체로 일반적으로 객체라 하면 인스턴스를 의미합니다.
 - 인스턴스에는 클래스의 멤버들이 들어오게 되며 각각 멤버 변수, 멤버 메소드라 합니다.
  정확하게는 인스턴스변수와 인스턴스메소드라 하지만 보통 멤버라 지칭합니다.
 - 인스턴스의 생성 목적은 다른 클래스의 기능(멤버)들을 사용하기 위해서입니다.

.

.

예제

class NumberEx{
	int num = 0; // 멤버변수로 현 클래스내에서 자유롭게 사용할 수 있음.
	public void addNum(int n){ num += n; }
	public int getNumber(){ return num; }
}

class PassInstance
{
	public static void main(String[] args) 
	{
		NumberEx nInst = new NumberEx();
		// NumberEx nInst : NumberEx 형 인스턴스 nInst를 선언
		// new NumberEx() : new 명령어를 통해 인스턴스를 생성
		System.out.println("메소드 호출 전 : " + nInst.getNumber());
		// nInst.getNumber() : nInst 인스턴스 안에 있는 getNumber() 호출.

		test(nInst);
		// test메소드를 호출하면서 nInst를 매개변수로 가져감.
		// 매개변수로 인스턴스를 가져가면 인스턴스의 값을 가져가는 것이 아닌 인스턴스의 주소값을 가져가게 됨.
		System.out.println("메소드 호출 후 : " + nInst.getNumber());
		// 12

		int n = 10;
		System.out.println("메소드 호출 전 : " + n); // 10
		test2(n);
		//매개변수로 변수를 가져가면 변수의 값을 가져감(원본 변수는 변함이 없음)
		System.out.println("메소드 호출 전 : " + n); // 10
		
	}

	public static void test(NumberEx num){
		num.addNum(12);
		// num인스턴스의 addNum()메소드를 12의 값을 매개변수로 하여 호출.
	}

	public static void test2(int i){
		i++;
	}
}
728x90
반응형