프로그래밍 언어/JAVA

[Java/자바] 클래스(class), 메서드(method)

고품격미식가 2019. 8. 24. 06:06

클래스(class)

자바는 객체 지향 프로그래밍(Object-Oriented Programming) 언어로, 객체를 정의하고 객체 간 협력으로 프로그래밍 합니다.

클래스란 객체의 속성과 기능을 코드로 구현한 것으로, 클래스를 정의하는 문법은 다음과 같습니다.

(접근 제어자) class 클래스이름 {
	멤버 변수;
  	메서드;
}

 

//example
//사람 객체를 구현하는 Person클래스 구현하기
public class Person { //클래스 이름은 대문자로 시작합니다.
	String name; //이름
	int age; //나이
	char gender; //성별
    
    public void showPersonInfo() { //이름, 나이, 성별을 출력하는 메서드
    	System.out.println(name + ", " + age + "세, " + gender);
    }
}

 

 

메서드(method)

메서드는 간단히 말하면 함수(function) 입니다. 여기서 함수란 '어떠한 기능을 수행하는 일련의 코드' 를 말합니다.

메서드는 어떤 기능을 미리 구현해놓고 필요할 때마다 호출하여 사용할 수 있습니다.

다음과 같이 메서드를 구현할 수 있습니다.

//example
//매개변수에 입력받은 두 값을 더하는 메서드 입니다
public int add(int num1, int num2) { //메서드 이름은 add이고, 'num1, num2'를 매개변수로 받으며, int형을 반환한다
	int result;
	result = num1 + num2;
	return result; //result값을 반환합니다
}

 

//example
//매개변수가 필요없는 메서드입니다. 1~10까지의 수를 더한 값을 반환합니다
int sum() { //반환형 앞에 접근제어자를 생략할시 디폴트값은 public입니다
	int i;
	int result = 0;
    for(i = 1; i <= 10; i++){
		result += i;    
    }
    return result;
}

 

//example
//반환값이 없는 메서드 입니다. 이름을 출력하는 메서드 입니다
void myName(String name) { //반환값이 없을 경우 반환형으로 void를 입력합니다. void는 반환할 값이 없다는 의미입니다
	System.out.println("제 이름은 " + name + " 입니다.");
    return; //반환값이 없기 때문에, 이 경우 return 명령어를 생략해도 됩니다
}

 

//example
//return예약어는 메서드를 끝내고 처음 호출한 곳으로 다시 되돌아갈때도 사용됩니다
void calculator(int num1, int num2) {
	if(num1 >= num2) {
		int result = num1 - num2;
		System.out.println("num1 - num2 = " + result + " 입니다.");
        return; //메서드 종료
	}
	else {
		int result = num1 + num2;
		System.out.println("num1 + num2 = " + result + " 입니다.");
	}
}

 

 

메서드를 호출하려면 '메서드이름()' 처럼 사용할 수 있습니다.

//example
//매개변수가 필요없는 메서드입니다. 1~10까지의 수를 더한 값을 반환합니다
static int sum() {
	int i;
	int result = 0;
    for(i = 1; i <= 10; i++){
		result += i;    
    }
    System.out.println(result);
}

public static void main(String[] args) {  //main()함수 입니다. 프로그램을 실행하기 위해 호출하는 함수입니다.
		sum(); //메서드 실행. result값을 콘솔창에 출력합니다
	}

 

//example
//매개변수로 값을 받아 이름을 출력하는 메서드 입니다
void myName(String name) {
	System.out.println("제 이름은 " + name + " 입니다.");
    return;
}

public static void main(String[] args) {  //main()함수 입니다. 프로그램을 실행하기 위해 호출하는 함수입니다.
			myName("헬로월드");
		}

 

 

이처럼 메서드를 사용하면 기능을 나누어 코드를 효율적으로 구현할 수 있습니다. 또한, 이미 구현해놓은 기능은 매번 구현하지 않고도 재활용하여 다시 쓸 수 있습니다. 프로그램에서 생긴 오류를 수정할때에도 오류가 난 기능만 찾아서 수정하면 되기 때문에 디버깅(오류를 수정하는) 작업을 할 때에도 용이합니다.