반응형
연관된 코드를 모아서 그룹핑하고 이름을 붙인 것이 메소드
복잡한 코드를 깔끔하게 만들 수 있음
이미 만들어 놓은 메소드를 사용함으로써 똑같은 코드를 다시 작성하지 않고 재사용가능
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
public class WhyMethod {
public static void printTwoTimesA() {
System.out.println("-");
System.out.println("A");
System.out.println("A");
}
public static void main(String[] args) {
// 중복되는 코드가 1억줄이라는 가정
System.out.println("-");
System.out.println("A");
System.out.println("A");
// 1억줄의 코드를 그룹핑해서 이름을 붙임
// 메소드를 보고 코드의 의미를 파악하기 쉬워짐
printTwoTimesA();
}
}
|
cs |
A
printTwoTimesA()메소드는 A를 출력한다.
만약,
B를 출력하고 싶어서 printTwoTimesB()메소드를 만들어 사용하는 것은 효율적일까?
메소드 입력
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
public class WhyMethod {
public static void printTwoTimes(String text) {
System.out.println("-");
System.out.println(text);
System.out.println(text);
}
public static void main(String[] args) {
// 출력하고자 하는 내용들을 printTwoTimesA, printTwoTimesB등의 메소드들을 따로만들어 호출하는 게 아니라
// 매개변수를 활용해 하나의 메소드로 여러값들을 출력가능
printTwoTimes("a");
printTwoTimes("a");
printTwoTimes("a");
printTwoTimes("b");
}
}
|
cs |
매개변수를 활용해서, 하나의 메소드로 여러값을 출력하게 할 수 있다.
메소드 출력
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
|
public class WhyMethod {
public static void printTwoTimes(String text, String delimiter) {
System.out.println(delimiter);
System.out.println(text);
System.out.println(text);
}
public static String twoTimes(String text, String delimiter) {
String out = "";
out = out + delimiter + "\n";
out = out + text + "\n";
out = out + text + "\n";
return out;
}
public static void main(String[] args) {
printTwoTimes("a", "-");
System.out.println(twoTimes("b", "-"));
}
}
|
cs |
retrun 키워드를 이용해 메소드안에서 수행문 실행 후의 값을 출력할 수 있다.
printTwoTimes()와 twoTimes()메소드는 같은 수행을 하는 메소드
twoTimes()메소드의 반환형은 String형이니 String형 변수 out을 반환한다.
메소드를 사용하지 않은 경우
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
public class AccountingApp {
public static void main(String[] args) {
// 공급가액
double valueOfSupply = 10000.0;
// 부가가치세율
double vatRate = 0.1;
// 부가세
double vat = valueOfSupply * vatRate;
// 합계
double total = valueOfSupply + vat;
System.out.println("valueOfSupply : " + valueOfSupply);
System.out.println("vat : " + vat);
System.out.println("Total : " + total);
}
}
|
cs |
만약 코드의 라인 수가 몇백줄이 넘어가는 상황이었다면,
상당히 복잡하고, 코드의 의미가 무엇인지 알기 쉽지 않았을 것이다.
정리정돈 되어있지 않았기 때문이다.
메소드 활용
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
|
public class AccountingApp {
// 공급가액
public static double valueOfSupply = 10000.0;
// 부가가치세율
public static double vatRate = 0.1;
// 메소드
public static double getVAT() {
return valueOfSupply * vatRate;
}
public static double getTotal() {
return valueOfSupply + getVAT();
}
public static void main(String[] args) {
System.out.println("valueOfSupply : " + valueOfSupply);
System.out.println("vat : " + getVAT());
System.out.println("Total : " + getTotal());
}
}
|
cs |
메소드를 활용해 정리하고 깔끔하게 만들 수 있고,
재사용이 가능해 코드가 중복되지 않게 할 수 있다.
'아카이브 > 생활코딩' 카테고리의 다른 글
JAVA 객체지향 프로그래밍 20200911 (0) | 2020.09.11 |
---|---|
JAVA 20200910 (0) | 2020.09.10 |
JAVA 20200909 (0) | 2020.09.09 |
JAVA 20200907 (0) | 2020.09.07 |