본문 바로가기
Programming 기초/Java

[Java] 변수와 메소드

by 뭉제 2023. 3. 27.
목차
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

댓글