728x90
반응형
안녕하세요. 스마트팩토리입니다.
자바 중급 011. 기본형 매개변수(Primitive Parameter) 와 참조형 매개변수(Reference Parameter) (1)에 대해 알아보겠습니다.
1. 기본형 매개변수와 참조형 매개변수(1)
가. 기본형 매개변수 (Primitive Parameter)
(1)기본형 매개변수란?
-변수값을 읽기만 가능하다.
-read only
(2) 참조형 매개변수란?
-변수의 값을 읽고, 쓰기 모두 가능하다.
-read & write all
나. 기본형 매개변수 예시
<< Var.java 클래스 >>
public class Var 안에 멤버 변수 x, y 와 change 메소드를 작성하였습니다.
change메소드의 경우 매개변수의 값을 바꾸는 실행문입니다.
package ex02;
public class Var {
int x;
int y;
void change(int a, int b) {
System.out.println("----change 메소드 change전 ---");
System.out.println(" main ( ) : x ="+ a);
System.out.println(" main ( ) : y ="+ b);
int temp=b;
b=a;
a=temp;
System.out.println("----change 메소드 change후 ---");
System.out.println(" main ( ) : x ="+ a);
System.out.println(" main ( ) : y ="+ b);
}
}
<< StVar.java 메인 클래스 >>
Var 클래스의 멤버 변수와 메소드를 활용하여 메인 메소드를 작성하였습니다. 참조변수 a1에서 멤버 변수 값을 a1.x=100 ,a1. =200으로 저장하고 출력해 보니 그대로 x=100, y=200이 나오는 것을 알 수 있습니다.
이 값을 Var클래스의 change 매개변수 ( 여기서는 기본형 매개변수)로 x=100, y=200을 부여하고 진행합니다.
change 메소드안에서 값은 x, y 값이 바뀌게 되어 x=200, y=100으로 바뀝니다.
하지만 메인 메소드로 돌아와서 x, y값은 바뀌지 않고 처음 값이 그대로 남아 있게 됩니다.
package ex02;
public class StVar {
public static void main(String[] args) {
Var a1=new Var();
a1.x=100;
a1.y=200;
System.out.println("----메인 메소드 change전 ---");
System.out.println(" main ( ) : x ="+ a1.x);
System.out.println(" main ( ) : y ="+ a1.y);
a1.change(a1.x, a1.y);
System.out.println("----메인 메소드 change후 ---");
System.out.println(" main ( ) : x ="+ a1.x);
System.out.println(" main ( ) : y ="+ a1.y);
}
}
<< 메인 메소드 실행 결과값>>
콘솔 출력값의 차이를 코드 흐름도를 파악하면서, 메모리에 저장 및 해제를 생각할 수 있으면 됩니다.
Var 클래스와 Stvar 클래스와 함께 출력값까지 확인하면서 기본형 매개변수를 이해하는게 포인트입니다.
이후 참조형 매개변수와 비교하면 그 의미를 더욱 명확하게 이해할 수 있습니다.
728x90
반응형
'Java' 카테고리의 다른 글
자바 중급 013. 메서드 오버로딩(overloading) 이란? (0) | 2021.08.27 |
---|---|
자바 중급 012. 참조형 매개변수(Reference Parameter) (2) (0) | 2021.08.26 |
자바 중급 010. 스택이란? , 콜스택(call stack) (0) | 2021.08.24 |
자바 중급 009. 인스턴스 메서드(instance method)와 정적 메서드(static method)의 생성과 호출 (0) | 2021.08.22 |
자바 중급 008. 메서드 정의 와 작성 지침 예시- 메서드 구현(. 연산자, ctrl+space:자동완성기능) (0) | 2021.08.16 |
댓글