728x90
// 숫자를 제곱해주는 코드
public static int getPower(int number){
int result = number * number
return result
}
// 숫자를 거듭제곱 해주는 코드
public static int getPowerByExp(int number, int exponent){
int result = 1;
for(int i = 0 ; i < exponent ; i++){
result *=number
}
return result
}
메소드
자바스크립트의 함수랑 비슷한 기능인듯.
1. 만드는법.
public class _01_Method {
// 🧐 메소드 만들기
public static void sayHello(){
System.out.println("안녕하세요 메소드입니다.");
}
public static void main(String[] args) {
// 🧐 메소드 호출하기
System.out.println("메소드 호출 전");
sayHello(); // 안녕하세요 메소드입니다.
System.out.println("메소드 호출 후");
}
}
2. 인자를 넣어보기
2-1. 인자가 한개인 메소드
public static void power (int number) {
int result = number * number
}
2-2. 인자가 두개인 메소드
// 거듭제곱
public static void powerByExp(int number, int exponent){
int result = 1;
for(int i = 0 ; int < exponent ; i++){
result = result * number
}
}
3. 인자와 return
// 제곱해주는 코드
public static int getPower(int number) {
int result = number * number;
return result;
// return number * number
}
// 거듭제곱 해주는 코드
public static int getPowerByExp(int number, int exponent) {
int result = 1;
for (int i = 0; i < exponent; i++) {
result *= number;
}
return result;
}
반환이 없는 메소드에서는 void를 사용했지만 반환값이 있는 코드에서는 반환되는 값의 타입을 적어줘야한다.
4. 메소드 오버로딩
비슷한 기능을 가진 메소드를 같은 이름으로 많이 만들 수 있는 방법이다.
4-1. 조건
1. 전달값(파라미터)의 타입이 달라야 한다.
2. 전달값(파라미터)의 갯수가 달라야 한다.
1, 2 두가지중 하나의 조건을 만족하면 오버로딩이 가능하다. 주의할 점은 파라미터가 아닌 메소드 자체의 타입이 다르면 오버로딩이 불가능하다.
4-2. 활용
public class _05_Overloading {
public static int getPower(int number) {
int result = number * number;
return result;
// return number * number
}
// ⭐️ 문자를 넣어도 숫자로 변환해서 제곱을 해주는 메소드
public static int getPower(String StrNumber) {
int number = Integer.parseInt(StrNumber);
return number * number;
}
public static int getPower(int number, int exponent) {
int result = 1;
for (int i = 0; i < exponent; i++) {
result *= number;
}
return result;
}
public static void main(String[] args) {
System.out.println(getPower(3)); // 9
System.out.println(getPower("3")); // 9
System.out.println(getPower(3,3)); // 27
}
}
맨위의 메소드와 이름이 같은 두개의 메소드지만 하나는 파라미터가 문자열로 첫번째와 다르고 하나는 파라미터가 두개로 첫번째와 다르기 때문에 오버로딩이 가능하다.
4-3. 더 편리한 방법
public static int getPower(int number) {
// ⭐️ 만약 제곱 한번이 필요하다면 인자를 하나 넣으면 되고 두개를 넣고싶다면 두개를 넣으면 된다.
return getPower(number , 2);
}
public static int getPower(int number, int exponent) {
int result = 1;
for (int i = 0; i < exponent; i++) {
result *= number;
}
return result;
}
비슷한 역할을 하는 메소드라면 리턴으로 메소드를 호출해도 된다. 위 경우는 파라미터가 하나 들어가든 두개가 들어가든 밑의 코드로 두가지 메소드 효용이 가능하기 때문에 이렇게 축약 할 수 있다.
반응형