반응형
[Java Class.03] 메소드
1.메소드(Method)
- 메소드는 객체의 동작에 해당된다.
- 메소드 이름은 숫자로 시작하면 안되고, $와 _를 제외한 특수 문자를 사용할 수 없다.
- 관례적으로 메소드 이름은 소문자로 작성한다.
- 서로 다른 단어가 혼합된 메소드 이름이라면, 뒤이어 오는 단어의 첫 글자는 대문자로 작성한다.
- ①리턴 타입
- ②메소드 이름
- ③매개변수
- ④실행할 코드
- ⑤리턴 명령문
- return문 이후의 명령어는 실행되지 않습니다.(에러 발생)
public class Calculator {
void powerOn() {
System.out.println("Power On.");
}
int plus(int x, int y) {
int result = x + y;
return result;
}
int minus(int x, int y) {
int result = x - y;
return result;
}
int multiply(int x, int y) {
int result = x * y;
return result;
}
double divide(int x, int y) {
double result = x / y;
return result;
}
void powerOff() {
System.out.println("Power Off.");
}
}
- 외부 클래스에서 Calculator 클래스의 메소드를 호출하기 위해서는 Calculator 객체를 만들어 도트(.)와 함께 메소드이름을 코딩하여 호출하면 된다.
public class Main {
public static void main(String[] args) {
Calculator calculator = new Calculator();
calculator.powerOn();
int plus = calculator.plus(10, 20);
int minus = calculator.minus(10, 20);
int multiply = calculator.multiply(10, 20);
double divide = calculator.divide(10, 20);
System.out.println(plus);
System.out.println(minus);
System.out.println(multiply);
System.out.println(divide);
calculator.powerOff();
}
}
2.메소드 오버로딩(Method Overloading)
- 클래스 안에 같은 이름이 메소드를 여러 개 선언하는 것을 메소드 오버로딩 이라고 한다.
- 메소드 오버로딩의 조건은 매개 변수의 타입, 개수, 순서 중 하나가 달라야 한다는 점이다.
public class Calculator {
int areaRectangle(int width) {
return width * width;
}
int areaRectangle(int width, int height) {
return width * height;
}
}
- 오버로딩된 메소드를 호출할 경우 자바는 매개 변수값의 타입을 보고 메소드를 선택한다.
public class Main {
public static void main(String[] args) {
Calculator myRect = new Calculator();
int result1 = myRect.areaRectangle(5);
int result2 = myRect.areaRectangle(5, 10);
System.out.println(result1);
System.out.println(result2);
}
}
3.객체 내부에서 메소드 호출
- 메소드는 클래스 내/외부의 호출에 의해 실행된다.
- 클래스 내부의 메소드를, 같은 클래스 내부에서 호출할 경우에는 단순히 메소드 이름으로 호출하면 된다.
4.클래스 외부에서 메소드 호출
- 클래스 외부에서 메소드를 호출할 경우, 우선 클래스로부터 객체를 생성한 뒤 메소드를 호출해야 한다.
- 그 이유는 객체가 존재해야 메소드도 존재하기 때문이다.
728x90
반응형
'자바(Java) > 자바 클래스' 카테고리의 다른 글
[Java Class.06] 상속(Inheritance) (0) | 2024.02.23 |
---|---|
[Java Class.05] Singleton & Final(싱글톤&파이널) (0) | 2024.02.23 |
[Java Class.04] Member of Instance & Static (0) | 2024.02.23 |
[Java Class.02]필드, 생성자 (0) | 2024.02.18 |
[Java Class.01]객체 지향 프로그래밍(Object Oriented Programming) (0) | 2024.02.18 |
댓글