foxpacking

Programming Lessons

Java 언어 Korean

Java 총 정리[37. 메소드 문제 2]

메소드 문제 2

이전 걸음에서 메소드에 대한 Call과 Back에 대해서 배웠고 다른 메소드로 이동하고 이동을 해도 메소드의 기본적인 구조인 stack구조를 기억을 해야 하고 적용을 해야 메소드를 좀 더 자유자재로 사용을 할 수가 있습니다. 이런 메소드에 대한 이해를 하려면 어떻게 해야 할 까요? 당연히 저는 문제를 좀 더 풀어보고 이해를 한다면 메소드의 stack 구조와 다른 여러 부분들이 동시에 실력이 향상이 될 수 있다고 생각을 합니다.

이전의 배운 내용들에 대한 실력을 향상을 위해서 위에서 언급을 한 것처럼 당연히 문제를 많이 풀어보는 것이 좋다고 생각을 하고 있습니다. 그럼 메소드 문제 1을 할 때도 말씀을 드렸지만 효율적이고 이런 부분을 생각해서 메소드 문제를 푸는 것보다는 당연히 효율적이지 않아도 메소드를 많이 써보고 활용할 수 있는 문제를 하도록 하겠씁니다.

그럼 이번에 해볼 메소드 문제는 바로 랜덤한 문자열 만들기 문제 입니다. 랜덤으로 값을 받고 그걸로 문자를 만들고 그 문자들을 합쳐서 하나의 문자열을 만들어서 출력을 하면 되는 프로그램 입니다. 내용만 보시면 간단한 문제입니다. 하지만 메소드에 대한 제약을 넣고 4가지 유형으로 만들게 문제를 만들었습니다. 꼭 유형을 지켜서 만드는 연습을 하신다면 분명히 실력이 향상이 되실 수 있습니다.

메소드 랜덤 문자열 만들기

메소드문제2사진

총 10번을 반복해서 랜덤을 생성하는 변수를 사용하고 기본 대문자 A를 기준으로 잡아서 10개의 랜덤한 수를 대문자 A에 더해서 랜덤한 수를 만들고 그걸 문자로 형 변환을 통해 문자를 만들고 그걸 문자열로 더하는 작업을 통해서 하나의 문자열이 만들어지고 그 랜덤한 문자열을 출력을 하면 됩니다.

※ 아래 연산을 하는 메소드를 4개 만들어야 합니다. 하지만 4가지 형태를 모두 사용을 해서 프로그램을 만들어야 합니다.

※ 메소드 연습을 위해서 static이라는 명령어를 사용하여 메소드를 바로 메모리에 올려 사용을 할 수 있게 문제를 풀어줍니다.

※ 메소드를 4가지 형태를 모두 사용을 하기 때문에 제약 사항이 생기면 필요에 따라서 static 변수를 사용을 합니다.

위 문제를 Class를 생성하고 Main문에 소스를 구현해 주세요.

실행 관련 걸음 : 다섯 걸음, 여섯걸음

참고해주세요.

또한 문제에서 나오는 메소드 6개도 main메소드 위에 만들어야 합니다.


public class MethodTest2 {

	//1. 주고 안받고 랜덤값 추출
	static int randomMake() {
		Random r = new Random();
		return r.nextInt(26);
	}
	//2. 주고 받고 더하기 연산
	static int add(int ran) {
		return  65 + ran;
	}
	//3. 주고 받고 문자를 만드는 기능
	static char makeChar(int result) {
		return (char)result;
	}
	//4. 안주고 안받고 10번 실행
	static void start() {
		String result = "";
		for(int i = 0;i<10;i++) {
			int ran = randomMake();
			int val = add(ran);
			char ch = makeChar(val);
			String temp = makeString(ch);
			result +=temp;
		}
		printString(result);
	}
	//5. 주고 받고 10개 문자를 더하는 연산
	static String makeString(char ch) {
		String abc = "";
		abc += ch; //자동형변환 문자열
		return abc;
	}
	//6. 안주고 받고 10개 문자를 출력
	static void printString(String result) {
		System.out.println(result);
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		start();
	}

}


        



생각을 해보기

메소드에 stack구조에 대해서 생각을 하면서 이 문제를 풀어보신다면 좋습니다. 또한 현재 소스에서 좀 더 간단하게 만들 수 있는데 이 부분도 메소드나 치환에 대해서 생각을 하신다면 하실 수 있습니다. 마지막으로 메소드를 한다고 메소드만 생각을 하시기 보다는 변수부터 시작한 부분을 같이 해주셔야 합니다.

※ 다른 방법이 없는지 생각을 해보면 실력 향상에 도움이 될 수 있습니다.

Dolphin

About Author

Leave a comment

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

You may also like

Korean Programming 기초

IT 개발자 VS 프로축구선수 비교?

IT 개발자와 프로축구선수의 같은 점과 다른 점? 프로그래밍 공부를 하시면서 개발자로 취업을 하려고 하는데 과연 취업을 할 수 있을까? IT
Korean 클라우드

AWS 로그인 불가능, AWS고객 센터 이메일 문의 결과는?

AWS 고객센터 이메일 문의 솔직후기 AWS를 사용하기 위해 로그인을 하는 경우 이메일로 코드 번호를 보내지만 이메일로 받을 수 없는 상황이거나