자바 프로그램은 클래스 단위로 구성된다.
그리고 클래스는 일반적으로 다음과 같은 구조를 갖는다.
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 |