반응형
SMALL
메소드란?
- 메소드는 클래스가 가지고 있는 기능으로 클래스 안에서 선언된다.
- 입력값이 있고, 그 입력값을 받아서 무언가 한 다음 결과를 도출해 내는 수학의 함수와 비슷한 개념이다.
- 이때 입력값을 매개변수라고 하고, 결과값을 리턴값이라고 한다.
- 인자( Argument ) 는 메소드를 사용할 때 메소드의 매개변수로 전달될 값을 의미한다.
- 매개변수( Parameter ) 는 그 전달된 인자를 받아 사용될 변수를 의미한다.
* 인수와 매개변수는 같은 의미로 볼 수 있다.
※ 특징
- 소스코드의 간결화(코드의 가독성을 위해서)
- 코드의 재사용(특정성을 부여하면 재사용 하기 어려움)
- 모듈화(부품)
public class MainTest {
// 메인메소드는 컴파일러가 실행해준다.
// 메인메소드는 가장 먼저 실행되는 메소드이다.
public static void main(String[] args) {
System.out.println("Hello");
}
}
메소드 선언
public class MethodTest1 {
// 메소드 선언
// 사용자에게 숫자 2개를 입력받아 합계를 반환해주는 메소드를 선언
int sum(int num1, int num2) {
return num1 + num2;
}
// static한 메소드 사용(static한 메소드는 Class가 인스턴스화 되지 않아도 사용할 수 있다.)
static int minus(int num1, int num2) {
return num1 - num2;
}
public static void main(String[] args) {
MethodTest1 md = new MethodTest1();
// 방법1. 클래스를 이용
int num = md.sum(10, 5);
System.out.println(num); // 15
// 방법2. static 키워드 이용
int num2 = minus(20, 5);
System.out.println(num2); // 15
}
}
다양한 형태의 메소드
void printMyName(String name) {
System.out.println(name);
}
↕
void : 리턴값이 없다는 의미. 리턴값의 타입(리턴타입)
printMyName : 메소드의 이름
String : 매개변수의 타입
name : 매개변수
System.out.println(name) : 실행할 코드
public class MethodTest2 {
// MethodTest2 클래스 영역의 안
// ex1)
void getThreeMuliple() {
int count = 0;
for (int i = 1; i < 101; i++) {
if (i % 3 == 0) {
count++;
}
}
System.out.println("3의 배수는 " + count + " 개 있습니다.");
}
// ex2)
// 리턴값이 있고, 타입은 정수형, 메소드명은 getEvenNum, 매개변수는 없음
int getEvenSum() {
int sum = 0;
for (int i = 1; i < 101; i++) {
if (i % 2 == 0) {
sum += i;
}
}
return sum; // sum을 getEvenSum()으로 반환한다.
}
// ex3)
void getDriveLicense(int age) {
// if문
if (age >= 19) {
System.out.println("자동차 면허 취득 가능");
} else if (age >= 17) {
System.out.println("오토바이 면허 취득 가능");
} else {
System.out.println("도보가능");
}
// 삼항연산자
String result = null;
result = age >= 19 ? "자동차 면허 취득가능" : age >= 17 ? "오토바이 면허 취득가능" : "도보가능";
System.out.println(result);
}
// ex4)
// 문자열끼리 값을 비교할때는 == 대신에 equals() 메소드 사용
boolean login(String id, String pw) {
String userId = "taetae"; // 매개변수 일치 여부 확인
String userPw = "tae1234"; // 매개변수 일치 여부 확인
boolean isTrue = false; // return값 초기화
// a.equals(b) -> a와 b 문자열 값이 일치하는지 확인
if (id.equals(userId)) {
isTrue = pw.equals(userPw) ? true : false;
}
return isTrue;
}
public static void main(String[] args) {
MethodTest2 md = new MethodTest2(); // MethodTest2의 주소값을 받아오기 때문에 한 번만 선언시켜준다.
// ex1)
// 매개변수X 리턴값X
// 1~100중에서 3의 배수가 몇개있는지 출력하는 메소드
md.getThreeMuliple();
// ex2)
// 매개변수X 리턴값O
// 1~100중에서 짝수의 합을 반환하는 메소드 선언 후 값을 받아서 출력해주기
System.out.println(md.getEvenSum()); // 2550
int num = md.getEvenSum(); // 2550
System.out.println(num); // 위의 출력 변수명과 비교했을 때 num을 선언하면 의미하는 바가 무엇인지 알기 용이하다.
// 메소드 선언 : 메소드 밖에서! (클래스 안에서)
// 메소드 사용 : 메소드 안에서! (main메소드 안에서)
// ex3)
// 매개변수O 리턴값X (입력메소드 사용X)
// 사용자에게 나이를 입력받고 취득할 수 있는 운전면허를 출력해주는 메소드
// 자동차: 19세이상 오토바이: 17세 이상
md.getDriveLicense(20); // 정수 20을 int age로 parameter해준다.
// ex4)
// 매개변수O 리턴값O (입력메소드 사용X)
// 아이디: taetae 비밀번호: tae1234
// 사용자에게 아이디와 비밀번호를 입력받고 아이디와 비밀번호가 일치했을 경우 true, 실패했을시 false 반환 메소드
boolean checkLogin = md.login("taetae", "tae1234");
System.out.println(checkLogin); // true
}
}
반응형
LIST
'JAVA' 카테고리의 다른 글
| 상속(Inheritance) (0) | 2022.11.10 |
|---|---|
| 클래스 (0) | 2022.11.06 |
| 배열 (0) | 2022.10.23 |
| 제어문 (0) | 2022.10.19 |
| 연산자(Operator) (0) | 2022.10.17 |