목차
1. 메소드
2. 변수
다음은 구분자와 텍스트를 입력하는 프로그램이다.
public class MyOOP {
public static void main(String[] args) {
//...
System.out.println("----");
System.out.println("A");
System.out.println("A");
//...
System.out.println("----");
System.out.println("A");
System.out.println("A");
//...
}
}
프로그램에서 중복되는 작업이 있는 것을 알 수 있다.
-> 메소드를 이용해 정리
메소드
프로그램에서 중복되는 작업을 메소드로 추출한다.
** 이클립스에서 Alt+Shift+m
입력값이 없는 메소드
public static void printA() {
System.out.println("----");
System.out.println("A");
System.out.println("A");
}
다른 텍스트도 출력하고 싶다면 새로 메소드를 만든다.
public class MyOOP {
public static void main(String[] args) {
printA();
printA();
printB();
printB();
}
public static void printA() {
System.out.println("----");
System.out.println("A");
System.out.println("A");
}
public static void printB() {
System.out.println("----");
System.out.println("B");
System.out.println("B");
}
}
입력값이 있는 메소드
메소드에 매개변수를 넣어서 실행할 때마다 원하는 구분자로 출력할 수 있다.
public class MyOOP {
public static void main(String[] args) {
printA("----");
printA("----");
printB("----");
printB("----");
printA("****");
printA("****");
printB("****");
printB("****");
}
public static void printA(String delimiter) {
System.out.println(delimiter);
System.out.println("A");
System.out.println("A");
}
public static void printB(String delimiter) {
System.out.println(delimiter);
System.out.println("B");
System.out.println("B");
}
}
만약 출력하는 코드가 4개가 아니라 1억개인 상황에서 구분자를 자주 바꿔야하는 경우, 일일이 구분자를 직접 바꿀까?
-> 변수를 정의
변수
아래 코드는 위와 실행결과는 같지만 구분자를 바꿔야할 때 변수의 값을 바꿔주면 delimiter를 사용하고 있는 모든 메소드의 인자값이 한번에 바뀌는 효과를 얻을 수 있다.
public class MyOOP {
public static void main(String[] args) {
String delimiter="----";
printA(delimiter);
printA(delimiter);
printB(delimiter);
printB(delimiter);
delimiter="****";
printA(delimiter);
printA(delimiter);
printB(delimiter);
printB(delimiter);
}
public static void printA(String delimiter) {
System.out.println(delimiter);
System.out.println("A");
System.out.println("A");
}
public static void printB(String delimiter) {
System.out.println(delimiter);
System.out.println("B");
System.out.println("B");
}
}
변수를 인자로 주는 것도 싫다면, 구분자를 클래스의 변수로 추출한다.
public class MyOOP {
public static String delimiter;
public static void main(String[] args) {
delimiter="----";
printA();
printA();
printB();
printB();
delimiter="****";
printA();
printA();
printB();
printB();
}
public static void printA() {
System.out.println(delimiter);
System.out.println("A");
System.out.println("A");
}
public static void printB() {
System.out.println(delimiter);
System.out.println("B");
System.out.println("B");
}
}
· 메소드 내에서 정의된 변수는 메소드 내에서만 사용 가능
· main 메소드에 소속된 변수인 delimiter는 printA나 printB 메소드에서 사용 불가
-> delimiter를 MyOOP 클래스에 소속된 변수로 만든다.
'Programming 기초 > Java' 카테고리의 다른 글
[Java] 클래스 (0) | 2023.04.02 |
---|---|
[Java] static (0) | 2023.03.30 |
[Java] 접근 제어 (0) | 2023.03.24 |
[Java] 객체 지향 프로그래밍 (0) | 2023.03.21 |
[Java] 메소드의 활용 (0) | 2023.03.19 |
댓글