Categories: Java 언어Korean

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

메소드 문제 2

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

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

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

메소드 랜덤 문자열 만들기

총 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

Recent Posts

Java 총정리[97. Java GUI]

Java GUI Java GUI에 대해서 이번 걸음에서 배움으로써 GUI에 전반적인 지식과 Java GUI를 구현하는 방법…

4개월 ago

Java 총정리[96. Java TCP 통신 프로그램 구현]

Java TCP 통신 프로그램 구현 Java TCP 통신 프로그램 구현을 위해서 이전 걸음에서 쓰레드에 대한…

5개월 ago

Java 총정리[95.쓰레드 통신]

쓰레드 통신 이전 걸음에서 쓰레드의 임계영역에 대해서 같이 공부를 했습니다. 동기화에 대한 개념을 계속적으로 하고…

5개월 ago

Java 총 정리[94. 쓰레드 임계영역]

쓰레드 임계영역 이전 걸음에서 쓰레드의 동기화에 대해서 같이 공부를 했습니다. 동기화에 대한 전반적인 내용을 공부하고…

6개월 ago

Java 총 정리[93. 쓰레드 동기화]

쓰레드 동기화 이전 걸음에서 계속 쓰레드에 대해서 공부를 하고 있습니다. 쓰레드는 상당히 중요한 개념이기 때문에…

6개월 ago

Java 총 정리[92. 쓰레드 join()]

쓰레드 join() 이전 걸음에서 쓰레드의 전반적인 실행 흐름에 대해서 공부를 했습니다. 이제 배운 실행 흐름…

6개월 ago

This website uses cookies.