// 인수전달 방법을 보여주는 프로그램
public class ParameterClass
{
private static void squareNumber(int oneF, Value twoF, Value threeF)
{ // static을 붙여야만 생성된다.
System.out.println();
System.out.println("Begining of squareNumber ");
System.out.println("oneF : " + oneF); // 8
System.out.println("twoF : " + twoF.number); // 9
System.out.println("threeF : " + threeF.number); // 10
oneF = oneF * oneF;
twoF.number = twoF.number * twoF.number;
threeF = new Value(25);
System.out.println();
System.out.println("End of squareNumber ");
System.out.println("oneF : " + oneF); // 64
System.out.println("twoF : " + twoF.number); // 81
System.out.println("threeF : " + threeF.number); // 25
}
public static void main(String[] args)
{
int oneA = 8;
Value twoA = new Value(9);
Value threeA = new Value(10);
System.out.println();
System.out.println("Before call squareNumber ");
System.out.println("oneA : " + oneA); // 8
System.out.println("twoA : " + twoA.number); // 9
System.out.println("threeA : " + threeA.number); // 10
squareNumber(oneA, twoA, threeA);
System.out.println();
System.out.println("After call squareNumber ");
System.out.println("oneA : " + oneA); // 8
System.out.println("twoA : " + twoA.number); // 81
System.out.println("threeA : " + threeA.number); // 10
return;
}
}
class Value
{
int number; // 객체가 사라지지않는한 값은 남아있다.
public Value(int num)
{
number = num;
}
}
▶ squareNumber() 메소드의 형식인수 oneF는 기본자료형인 int형 (값전달방식)
twoF와 threeF는 Value 클래스의 객체 (참조전달방식)
▶ int oneA = 8; int twoA = new Value (9); int threeA = new Value (10);
▶ squareNumber (oneA, twoA, threeA); 메소드를 호출한 직후의 상태
oneF = oneF * oneF;
twoF.number = twoF.number * twoF.number;
threeF = new Value (25);
squareNumber() 메소드의 실행이 끝나고, main() 메소드로 돌아왔을 때의 실인수
'Java > 강의' 카테고리의 다른 글
여러 종류의 객체 (0) | 2011.02.11 |
---|---|
인스턴스 변수와 정적 변수(Static Variables) (0) | 2011.02.10 |
생성자(Class Constructors) (0) | 2011.02.08 |
정수 데이타의 입출력!! (0) | 2011.02.07 |
키보드 입력받기!! (C의 scanf) (0) | 2011.02.07 |