메소드, 객체지향.. => 웅장, 결함 없고, 유지보수 쉬운 애플리케이션 만들기 위한 기법
public static void main(String[] args) { => method
메소드의 정의, 호출
public static void numbering() {
int i = 0;
while (i<10) {
System.out.println(i);
i++;
}
}
=> 정의
public static void main(String[] args) {
numbering();
numbering();
numbering();
numbering();
numbering();
=> 호출
main 메소드
=규칙, 약속 (이해의 영역이 아님)
재활용 -> 코드 양 줄일 수 있음 -> 유지보수 쉬워짐
입력값
- 매개변수, 인자
public static void numbering(int limit) { => 매개변수(parameter)
int i = 0;
while (i<limit) {
System.out.println(i);
i++;
}
}
public static void main(String[] args) {
numbering(2); => 인자(argument)
//1 2
==> 고정/가변 잘 나뉘어 가변적인 것은 nubmer(2) 하나만 남음, 고칠 때 main 메소드 괄호 숫자만 변경하면 됨
=> 고정 / 가변 두 파트로 나눠서 가변 파트 최소화하면 코드 변경할 때 편리
public static void numbering() {
int limit = 2;
int i = 0; while (i<limit) { System.out.println(i); i++; }}public static void main(String[] args) { numbering();
//1 2
public static void numbering(int init, int limit) {
int i = init;
while (i<limit) {
System.out.println(i);
i++;
}
}
public static void main(String[] args) {
numbering(2,5);
출력값 (return)
- 리턴값에 따른 메소드 형식
public static String numbering(int init, int limit) { => numbering : 메소드의 이름 / String: 리턴할 값이 반드시 문자열
int i = init;
String output = "";
while (i<limit) {
output += i;
i++;
}
return output; => return 에서 메소드 종료, 출력값 외부 반환
}
public static void main(String[] args) { => void : 리턴값 존재 X
String result = numbering(1,5); => 메소드 numbering이 리턴한 값이 변수 result에 담김
System.out.println(result); => 변수 result의 값을 화면 출력
--> 예측가능성 O 유연성 X 한 자바의 특성 알 수 있음
import java.io.*;
public class MethodDemo6 {
public static String numbering(int init, int limit) {
int i = init;
String output = "";
while (i<limit) {
output += i;
i++;
}
return output;
}
public static void main(String[] args) {
String result = numbering(1,5);
System.out.println(result);
try {
BufferedWriter out = new BufferedWriter(new FileWriter ("out.txt"));
out.write(result);
out.close();
} catch (IOException e) {
}
}}
- return은 한번만 된다?
1.
public static int one() {
return 1; return 2; return 3;
}
public static void main(String[] args) {
System.out.println(one());
}}
=> 같은 맥락에서는 return 한 번만 작성 가능
2.
public static String num(int i) {
if(i==0) {
return "zero";
} else if(i==1) {
return "one";
} else if(i==2) {
return "two";
}
return "none";
}
public static void main(String[] args) {
System.out.println(num(1));
}}
==> else if 사용하여 여러 return 작성 가능
3.
public static String getmember1() {
return "a";
}
public static String getmember2() {
return "b";
}
public static String getmember3() {
return "c";
}
public static void main(String[] args) {
System.out.println(getmember1());
System.out.println(getmember2());
System.out.println(getmember3());
}}
4. 하나의 메소드로 여러 리턴값 가지려면 배열 이용
public static String[] getmembers() {
String[] members = {"a", "b", "c"};
return members;
}
public static void main(String[] args) {
String[] hello = getmembers(); =>hello 변수에 getmembers 메소드 내용 담음->출력 가능
System.out.println(hello);
}}
원래 getmembers 랑 메인 메소드 안에 변수 이름이 둘다 members였는데, 내가 헷갈려서 메인메소드 변수는 hello로 임의적으로 바꿨다 확실히 메소드부터 좀 헷갈리기 시작한다
'Programming > 자바' 카테고리의 다른 글
생활코딩 자바 - 객체지향 프로그래밍 (0) | 2022.03.25 |
---|---|
생활코딩 자바 - 입력과 출력(Input &Output, IO) (0) | 2022.03.19 |
생활코딩 자바 - 배열 (0) | 2022.03.19 |
생활코딩 자바 - 반복문 (0) | 2022.03.14 |
생활코딩 자바 - 논리연산자 (0) | 2022.03.13 |