본문 바로가기
수업

10월 11일 - 명령행인수(CommandLineArg)

by hojin880214 2018. 10. 11.

CommandLineArg.java

AddSum.java




package a.b.c;


public class AddSum{


String x;

String y;

/*

메모리에 올리기 위해 초기화시켜야 할 멤버 소속변수 필드

default접근제한자 생략 패키지 내에서만 사용가능

*/


public AddSum(String x, String y){

/*

멤버 소속변수 필드를 초기화 시켜줄 생성자

public 접근제한자 키워드로 패키지를 넘나들수 있는 (전역??)함수

생성자이므로 void return X

*/

this.x = x;

// 외부에서 입력된 값이 메인함수 안에 변수x값으로 생성자에의해 

// 초기화된 값이 소속변수 x가 된다 표현이..?

this.y = y;


}


public int addSum(String x, String y){

/*

public 접근제한자 패키지를 넘나들면서 사용할수있다

void가 없는 함수이므로 데이터타입과 return값이 필요하다

*/


int xVal = Integer.parseInt(x);

// String데이터타입의 x매개변수를 int데이터타입으로 (전환?변환?)

int yVal = Integer.parseInt(y);

// Integer래퍼클래스의 parseInt함수를 이용하여 String데이터타입을

// int 데이터타입 값으로 전환

int sum = xVal + yVal;

//int 데이터타입의 xVal과 yVal변수의 합

return sum;

// int 데이터형 함수이므로 return값도 int 값이어야 한다

}





public static void main(String args[]){


String x = args[0]; // 배열은 인덱스(첨자)0부터 시작해야한다

String y = args[1]; // 배열의 데이터값은 다 같아야 한다

// 순차적이고 중간에 값이 없으면 안된다

AddSum as = new AddSum(x, y);

/*

AddSum 자기자신을 데이터로 사용하기 위해

생성자를 만든다? 생성자가 코드로 있다면?

*/

int sum = as.addSum(as.x, as.y);

// int데이터타입의 sum 함수를 as참조변수의addSum함수의 값으로 초기화

System.out.println( as.x + " + " + as.y + " = " + as.addSum(as.x, as.y));

//String데이터타입의 as.x값과 as.y

//int데이터타입의 sum함수값이 출력

} // end of main


} // end of AddSum class








//improt java.lang.String;


//java.lang  coreJava    늘써야해서 import 생략가능


//System out static이해불가


public class CommandLineArg{


String m1;

String m2;

String m3;

String m4;

String m5;

/*

다른 곳(패키지,클래스)에서 사용하기 위해서 메모리(주소)에 올리기 위해

초기화 시켜야할 필드 소속 멤버변수들

defalut 생략됐으므로 패키지 내에서 사용


*/

/*

CommandLineArg(String a1,String m2,String m3){

this.m1 = a1;

this.m2 = m2;

this.m3 = m3;

}

필요없는 생성자 있어도 컴파일가능하다 ??

*/



CommandLineArg(String a1,String m2,String m3,String m4,String m5){

this.m1 = a1;

this.m2 = m2;

this.m3 = m3;

this.m4 = m4;

this.m5 = m5;

//멤버변수를 초기화해주기 위해서 생성자   데이터

}




public static void main(java.lang.String args[]){

// [] : 자바에서는 배열 연산자

// String args[] : 명령해인수(아규먼트), Command Line argument

// 콘솔어플리케이션에서 외부에서 데이터를 배열로 받는다


String args0 = args[0]; // String 데이터타입의 첨자 0

String args1 = args[1]; // String 데이터타입의 첨자 1

String args2 = args[2]; // String 데이터타입의 첨자 2

String args3 = args[3]; // String 데이터타입의 첨자 3

String args4 = args[4]; // String 데이터타입의 첨자 4


/*

자바에서 배열연산자는[]

1. 자바 배열은 첨자(인덱스)0부터 시작한다.

2. 자바 배열은 중간에 값이 없으면 안된다

3. 배열은 순차적 데이터이다.

4. 자바 배열은 데이터 타입이 동일해야 한다

*/


java.lang.System.out.println("Hello~~ >> : " + args0 + " : " + args1 

+ " : " + args2 + " : " + args3 + " : " + args4);


CommandLineArg cla = new CommandLineArg(args0, args1, args2, args3, args4);

System.out.println(cla.m1);

System.out.println(cla.m2);

System.out.println(cla.m3);

System.out.println(cla.m4);

System.out.println(cla.m5);





} // end of main


} // end of CommandLineArg




/*

C:\00.KOITT\10.JExam>javac CommandLineArg.java


C:\00.KOITT\10.JExam>java CommandLineArg 아 1

Hello~~ >> : 아 : 1

*/









댓글