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