본문 바로가기

JAVA

객체와 참조변수

자바 프로그램은 클래스 단위로 구성된다.

그리고 클래스는 일반적으로 다음과 같은 구조를 갖는다.

 

class simple
{
	private int num;
	
	/*simple()
	{
		//default constructor
	}*/
	
	public simple(int num)
	{
		this.num = num;
	}
	
	public int get_num()
	{
		return this.num;
	}
	
	public void set_num(int num)
	{
		this.num = num;
	}
}

 데이터와 해당 데이터를 연산하기 위한 메소드, 그리고 생성자이다,

 

public class example {
	
	public static void main(String[] args)
	{
		simple sim = new simple(5);
		System.out.println(sim.get_num());
		change(sim);
		System.out.println(sim.get_num());
	}

	public static void change(simple s)
	{
		s.set_num(9);
	}
}

->5

->9

 

위 코드 실행 시 다음과 출력되는 이유는 객체는 참조변수에 저장되기 때문이다.

main에 선언된 지역변수 sim은 힙 영역에 존재하는 simple 객체의 주소를 갖는다고 보면된다.

그래서 change() 의 매개변수 s 역시 같은 객체를 참조하여

위와 같은 결과가 발생하는 것이다. 

 

그리고 생성자는 별도의 정의가 되어 있지 않으면 컴파일러가 알아서 디폴트 생성자를 끼워넣어 준다.

 

'JAVA' 카테고리의 다른 글

Nested class, Lambda basic & concept  (0) 2021.10.21
클래스 패스, 패키지 & 접근 제어  (0) 2021.10.21
자바 자료형 및 기타 연산자  (0) 2021.10.21