[ JAVA ] 02. 자바의 근간인 클래스(Class)는 무엇인가?
안녕하세요. 오늘은 자바에서 가장 기본적이지만, 중요한 클래스의 개념에 대해 알아보도록 하겠습니다. 자바는 클래스 기반의 언어라고도 할 정도로 모든 것들이 클래스를 위주로 돌아갑니다.
giryu.tistory.com
클래스의 개념
안녕하세요.
오늘은 저번 시간에 이어 클래스(Class)의 구성 요소 중 메서드(Method)에 대해 알아보도록 하겠습니다.
메서드 (Method)
메서드는 클래스 내에 정의된 함수로, 객체의 동작에 해당하는 중괄호 ( { } ) 블록을 말합니다.
메서드를 호출하게 되면 중괄호 블록에 있는 코드들이 일괄적으로 수행되게 됩니다.
메서드는 클래스의 기능을 나타내며, 매개변수의 입력을 받아들일 수도 있고,
작업을 수행한 후 결과를 반환할 수도 있습니다.
특히, 메서드를 사용하면 코드를 논리적으로 분리할 수 있고,
재사용 가능한 파티션으로 구성하여 코드의 가독성 및 유지 보수성을 향상시킬 수 있습니다.
메서드는 어떻게 선언하는가?
접근제어자 반환타입 메서드이름 (매개변수 선언) {
메서드 실행 내용
return 반환값; // 없는 경우도 있음
}
- 접근 제어자 : 메서드에 접근할 수 있는 범위를 지정하는 역할
- public, private, protected, default 등
- 반환 타입 : 메서드가 실행된 후 반환하는 값의 데이터 타입을 지정하는 역할
- 값을 반환하지 않을 경우 void 로 지정
- 메서드 이름 : 메서드를 식별하기 위한 이름
- 매개 변수 선언 : 메서드가 필요로 하는 입력 값을 전달하기 위해 지정하는 변수 목록
- 매개 변수가 필요 없는 경우도 존재 ( ex. switchOn() 같은 경우)
- 메서드 실행 내용 : 메서드가 수행하는 작업을 구현하는 블록
- 반환 값 : 메서드가 실행된 후 반환하는 결과 값
- return 키워드를 사용하여 명시적으로 반환
- 반환 타입이 void 인 경우, 반환 값은 없음.
메서드는 어떻게 호출하는가?
메서드는 클래스 내부 및 외부의 호출에 의해 실행합니다.
클래스 내부의 다른 메서드에서 호출하는 경우에는 단순히 메서드 이름으로 호출하면 되지만,
public class Computer {
void run() { . . . }
void stop() { . . . }
void in_method () {
// 내부에서 호출하는 경우
run();
stop();
}
}
클래스 외부에서 메서드를 호출하는 경우에는 우선적으로 클래스로부터 객체를 생성한 뒤,
void out_method() {
Computer myCom = new Computer(); // 객체 생성
// 외부에서 호출하는 경우
myCom.run();
myCom.stop();
}
참조 변수를 이용하여 메서드를 호출해야 합니다.
* 이유는 필드(Field)에서도 배웠지만, 객체가 우선적으로 존재하여야 메서드도 존재할 수 있기 때문입니다.
메서드 오버로딩(Method Overloading)은 무엇인가?
메서드를 사용하다 보면 매개 값을 다양하게 받아서 처리할 경우가 있기 마련입니다.
그럴 때 사용하는 것이 메서드 오버로딩 입니다.
메서드 오버로딩은 클래스 내에 같은 메서드 이름을 가진 메서드를 중복 선언하는 것을 말합니다.
이는 곧, 하나의 메서드 이름으로 여러 기능을 담는다는 것을 의미합니다.
메서드 오버로딩을 사용하는 조건은 매개 변수의 타입, 개수, 순서 중 하나라도 달라야한다는 것 입니다.
int add(int a, int b) {
return a + b;
}
double add(double a, double b) {
return a + b;
}
int add(int a, int b, int c) {
return a + b + c;
}
// 이러한 경우, 메서드 오버로딩이라고 볼 수 없음
// 매개 변수 이름만 바꾼 경우
int add(int c, int d) {
return c + d;
}
// 리턴 타입만 다른 경우
double add(int a, int b) {
return a + b;
}
단, 매개 변수의 이름만 바꾸는 것은 메서드 오버로딩이라고 볼 수 없습니다.
또한, 리턴 타입만 다르고 매개 변수가 동일해도 역시 메서드 오버로딩이라고 볼 수 없습니다.
이런 식으로 사용하게 되면 컴퓨터는 중복 메서드로 간주하기 때문에 컴파일 에러가 발생하게 됩니다.
이상으로 오늘은 클래스의 기본 요소인 메서드에 대해 좀 더 구체적으로 알아보았습니다.
메서드는 클래스에서 중요한 요소 중 하나로, 클래스의 기능을 구현하고 조작하기 위해 사용됩니다.
메서드를 활용하면 코드를 좀 더 구조화하고, 코드의 가독성을 향상시킬 수 있습니다.
다음에는 클래스의 기본 요소 중 생성자(Constructor)에 대해 알아보도록 하겠습니다.
'Java' 카테고리의 다른 글
[ JAVA ] 06. 자료형에 대해 알아보자. (0) | 2023.07.06 |
---|---|
[ JAVA ] 05. 클래스(Class)의 구성 요소인 생성자(Constructor)는 무엇인가? (0) | 2023.07.04 |
[ JAVA ] 03. 클래스의 구성 요소인 필드(Field)는 무엇인가? (0) | 2023.07.02 |
[ JAVA ] 02. 자바의 근간인 클래스(Class)는 무엇인가? (0) | 2023.07.01 |
[ JAVA ] 01. 자바(Java)란 무엇인가? (0) | 2023.06.30 |