우주코딩
메서드 활용하기, 로컬 변수와 전역 변수 본문
매서드는 코드를 기능 단위로 묶을 때 사용하는 문법이다.
프로그램의 크기가 크지 않으면 바로 위에서 밑으로 실행한다.
코드가 길어지면 관리가 힘들다.
낱개로 펼쳐놓지 말고 기능 단위로 묶는다 -> 함수, 즉 매서드
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
프롬프트 메서드 분리
- 사용자로부터 명령어를 입력받는 코드를 별도의 메서드로 분리하여 즉각적으로 다음 명령을 묻는 것을 prompt라고 한다.
- String input 선언을 main 밖으로 빼낸다
static String input; - 그리고 prompt 메서드에 input String을 제거해 클래스 변수로 바꾼다.
명령어 뿐만 아니라 사용자로부터 입력을 받는 기능을 prompt()로 모두 처리
- class 안에 있는 모든 메서드 안에서 input 값을 입력받는 모든 명령을 prompt로 수행하도록 한다.
- prompt를 호출할 때 사용자에게 출력할 프롬프트 메시지를 설정하도록 변경
- 프롬프트의 제목, 메서드를 실행할 때 넘겨주는 값 " 아규먼트", 즉 인자 값
prompt("명령> ");
- 아규먼트를 받는 변수 " 파라미터 "
void prompt (String title){
}
return
prompt()를 호출할 때 사용자에게 출력할 프롬프트 메시지를 아규먼트로 넘긴다.
prompt()는 호출할 때 넘어온 프롬프트 메시지값을 파라미터로 받는다.
prompt()가 작업한 결과를 클래스 변수에 담지 말고 호출자에게 리턴한다.
return에 담긴 값은 배열에 저장되고 다음 문장을 실행한다.
prompt() 기능을 더 세분화
- promptString(): String 사용자로부터 문자열을 입력받아 리턴한다
- promptInt(): int 사용자로부터 숫자를 입력받아 리턴한다
- promptDate(): Date 사용자로부터 날짜열을 입력받아 리턴한다
'Project' 카테고리의 다른 글
제네릭 적용 (0) | 2021.08.22 |
---|---|
유스케이스, 추상클래스, 스택 사용하기 (0) | 2021.08.22 |
Composite 디자인 패턴 적용하기 (0) | 2021.08.03 |
클래스 문법 활용하기, 패키지 만들기 (0) | 2021.07.16 |
메서드, 메서드 문법, 메서드 사용법, 메서드의 활용 (0) | 2021.07.14 |
Comments