Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

우주코딩

메서드 활용하기, 로컬 변수와 전역 변수 본문

Project

메서드 활용하기, 로컬 변수와 전역 변수

우주코딩 2021. 7. 13. 18:57

매서드는 코드를 기능 단위로 묶을 때 사용하는 문법이다.

프로그램의 크기가 크지 않으면 바로 위에서 밑으로 실행한다.
코드가 길어지면 관리가 힘들다.
낱개로 펼쳐놓지 말고 기능 단위로 묶는다 -> 함수, 즉 매서드

pms를 통한 메서드 활용

addMember로 회원정보 입력을 분리한다. 매서드 정의 및 회원등록 코드 가져오기
=>main()과 addMember() 가 서로 공유하는 변수는 클래스 변수로 만든다.

  • 클래스 변수와 로컬 변수
    class X {
    static int c = 300;
    static void m1(){
      int a = 100; //로컬변수
    }
    static void m2(){
      int b =200; //로컬변수
    }
    }
    다른 메서드의 로컬변수는 아예 접근 불가 a,b는 서로 다른 main에서 사용불가 메서드 실행이 끝나면 사라지는 변수다.
    메서드 밖의 클래스 변수가 있다면 같은 static 변수로 사용할 수 있다.
    int c 는 m1, m2에서 사용가능.
    addMember와 메인 메서드에서도 사용하고 싶을 때 public class에 둬라

메서드로 분리한 코드를 실행하기 메서드 호출 = 메서드명();

이렇게 기존 코드를 유지보수하기 쉬운 구조로 재작성하는 것을 "리펙토링(refactoring)" 이라고 부른다.

프롬프트 prompt

프롬프트 메서드 분리

  1. 사용자로부터 명령어를 입력받는 코드를 별도의 메서드로 분리하여 즉각적으로 다음 명령을 묻는 것을 prompt라고 한다.
  2. String input 선언을 main 밖으로 빼낸다
    static String input;
  3. 그리고 prompt 메서드에 input String을 제거해 클래스 변수로 바꾼다.

명령어 뿐만 아니라 사용자로부터 입력을 받는 기능을 prompt()로 모두 처리

  1. class 안에 있는 모든 메서드 안에서 input 값을 입력받는 모든 명령을 prompt로 수행하도록 한다.
  2. prompt를 호출할 때 사용자에게 출력할 프롬프트 메시지를 설정하도록 변경
  3. 프롬프트의 제목, 메서드를 실행할 때 넘겨주는 값 " 아규먼트", 즉 인자 값
    prompt("명령> ");
  1. 아규먼트를 받는 변수 " 파라미터 "
    void prompt (String title){

}

return

prompt()를 호출할 때 사용자에게 출력할 프롬프트 메시지를 아규먼트로 넘긴다.
prompt()는 호출할 때 넘어온 프롬프트 메시지값을 파라미터로 받는다.
prompt()가 작업한 결과를 클래스 변수에 담지 말고 호출자에게 리턴한다.
return에 담긴 값은 배열에 저장되고 다음 문장을 실행한다.

prompt() 기능을 더 세분화

  1. promptString(): String 사용자로부터 문자열을 입력받아 리턴한다
  2. promptInt(): int 사용자로부터 숫자를 입력받아 리턴한다
  3. promptDate(): Date 사용자로부터 날짜열을 입력받아 리턴한다
Comments