JAVA 프로그래밍

문제

함수 호출시 값을 전달받고, 함수 내에서 기본자료형 수정, 객체 값을 직접 수정, 새 객체를 생성하여 수정하는 프로그램입니다 이를 해결하는 프로그램을 작성하세요 
uppercase() 호출전   argument1 = a     argument2 = d     argument3 = g 
uppercase() 변경전  parameter1 = a    parameter2 = d    parameter3 = g 
uppercase() 변경후  parameter1 = A    parameter2 = D    parameter3 = G 
uppercase() 호출후   argument1 = a     argument2 = d     argument3 = G 

알고리즘 설계

프로그램 시작 
   전달인자 초기화
   전달인자 수정
프로그램 종료

전달인자 수정
   Pass by Value 후 값 수정
   Pass by Reference 후 새 객체를 생성하여 수정
   Pass by Reference 후 객체 값을 직접 수정

프로그램 구현

     
 
 ※ 단계별 점검: A키(이전), D키(다음) 
 
	// 파일명 : ./Chapter12/PassByValueVsPassByReference.java
		  
	// 문자 클래스
	class Char
	{
		protected char value;
		  
		// 값 초기화
P1b		public Char( char value ) {
			this.value = value;
P1e		}
		  
		// 값 문자열 표현
		public String toString() {
			return this.value + " ";
		}
	}
		  
	public class PassByValueVsPassByReference
	{
		// 전달인자 수정 
P2b		public static void uppercase( char parameter1, Char parameter2, Char parameter3 ) {
			System.out.println( "uppercase() 변경전  parameter1 = " + parameter1 + "    parameter2 = " + parameter2 + "   parameter3 = " + parameter3 );
		  
			// Pass by Value 후 값 수정  
P21			parameter1 = 'A';
			// Pass by Reference 후 새 객체를 생성하여 수정   
P22			parameter2 =
P23			             new Char( 'D' );
			// Pass by Reference 후 객체 값을 직접 수정  
P24			parameter3.value = 'G';
		  
			System.out.println( "uppercase() 변경후  parameter1 = " + parameter1 + "    parameter2 = " + parameter2 + "   parameter3 = " + parameter3 );
P2e		}
		  
		// 프로그램 시작 
1		public static void main( String[] args ) {
			// 전달인자 초기화 
2			char argument1 = 'a';
3			Char argument2 =
4			                new Char( 'd' );
5			Char argument3 =
6			                new Char( 'g' );
		  
			// 전달인자 수정 
			System.out.println( "uppercase() 호출전   argument1 = " +  argument1 + "     argument2 = " +  argument2 + "    argument3 = " +  argument3 );
7			uppercase( argument1, argument2, argument3 );
			System.out.println( "uppercase() 호출후   argument1 = " +  argument1 + "     argument2 = " +  argument2 + "    argument3 = " +  argument3 );
		  
		// 프로그램 종료 
8		}
	}

실행 순서 확인