1. 메소드: 특정 작업을 수행하기 위한 컴퓨터 명령문의 집합
→ 한 개의 기능만 수행
→ 세분화 작업: 재사용성, 중복코드 제거 목적(import 사용)
*** 명령문 → 메소드 → 클래스 → 패키지 → .jar(라이브러리)
2. 메소드 종류에 따른 분류
사용자 정의 메소드 | - 선언부: 반환형 메소드명(매개변수1, 매개변수2) ======변수의 명명규칙과 같음 구현부: { return값; → 값=반환형 예외) 반환형 없는 경우 → void; return 생략 가능(∵JVM이 자동으로 추가) } - 메소드 안에서 처리 ┌ 출력(일반 도스) └ 결과값 전송(웹, 윈도우) - 호출: 반환형 변수명=메소드명(값1, 값2) 값을 넘겨주면 매개변수 자리에 대입, 메소드가 처리해서 결과값 돌려줌. 메소드 수행종료(return)되면 호출된 위치로 돌아옴. |
라이브러리 메소드 |
3. 메소드 생성방법에 따른 분류
정적 메소드 | - 자동으로 메모리에 저장 - static 리턴형 메소드명(매개변수1,2...){ return 값 } |
인스턴스 메소드 | - 프로그래머가 메모리를 만든 다음 저장 →new 연산자를 이용해서 저장 가능 - 리턴형 메소드명(매개변수1,2...){ return 값 } |
추상 메소드 | - 메소드의 선언부만 사용 → 추상클래스(인터페이스) - 리턴형 메소드명(매개변수1,2...); |
4. 메소드 유형
반환값(리턴형) | 매개변수 | 예시 |
O | O | String substring(int s, int e) |
O | X | int length() double random() |
X(void) | O | System.out.println(String s) |
X(void) | X | System.out.println() →다음 줄에 출력 |
* 메소드는 클래스 내에 존재해야함
** 메소드 안에 메소드는 선언할 수 없음
*** 메소드 이름은 같을 수 있음 → overloading
**** 가변 매개변수(...): 매개변수의 타입과 개수가 모호할 때 사용
ex)String... a
Object... obj :모든 데이터형 커버 가능
* 예시) 사칙연산 메소드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 |
//사칙연산
import java.util.*;
public class 자바메소드2{
static int plus(int a,int b) {
return a+b;
}
static int minus(int a,int b) {
return a-b;
}
static int gob(int a,int b) {
return a*b;
}
//매개변수 유효성 검사 static void div(int a,int b) {
if(b==0)
System.out.println("0으로 나눌 수 없습니다.");
else
System.out.printf("%d/%d=%d.2f\n",a,b,a/(double)b);
}
public static void main(String[] args){
//사용자 요청값 → 정수 2개 입력받기
Scanner sc=new Scanner(System.in);
System.out.print("정수 입력(5 2):");
int a=sc.nextInt();
int b=sc.nextInt();
System.out.print("연산자 입력(+,-,*,/):");
String op=sc.next();
int result=0;
switch(op) {
case "+":
result=plus(a,b);
System.out.printf("%d+%d=%d\n",a,b,result);
break;
case "-":
result=minus(a,b);
System.out.printf("%d-%d=%d\n",a,b,result);
break;
case "*":
result=gob(a,b);
System.out.printf("%d*%d=%d\n",a,b,result);
break;
case "/":
div(a,b);
System.out.printf("%d/%d=%d\n",a,b,result);
break;
default:
System.out.println("잘못된 연산자입니다!");
}
}
}
|
cs |
* 메소드 원형 작성연습: 리턴형 메소드이름(매개변수)
→ 사용자가 요청한 값(개수) → 구현
1) 데이터 10개(영화제목) 넘겨주는 메소드
→ String movieList();
2) 사용자가 ID/PW 입력하면 로그인(true)/실패(false)
→ boolean logIn(String id, String pw)
3) 영화 번호를 넘겨주면 장르를 넘겨주는 메소드
→ String getGenre(int no)
4) 검색을 하면 찾은 영화명을 넘겨주는 메소드제작
→ String movieFind(String searchString)
5) 영화예매 상위 5개를 넘겨주는 메소드 제작
→ String[] pop5()
6) ID 중복체크
boolean idCheck(String id)
7) 우편번호 찾기
String[] postFind(String dong)
8) 검색 → 검색된 내용 출력
String[] find(String ss)
9) 영화 리뷰
String[] review(String re)
'Java > Java 이론 정리' 카테고리의 다른 글
[Java] 21~22일차: 객체지향 3대요소_캡슐화, 상속, 다형성 (0) | 2020.07.13 |
---|---|
[Java] 18~20, 23~25일차: 클래스_변수, 생성자, 오버로딩, 추상클래스, 인터페이스 (0) | 2020.07.08 |
[Java] 13일차: 문자열 (0) | 2020.07.01 |
[Java] 기본문법 총정리 (0) | 2020.06.29 |
[Java] 9~11일차: 제어문_(2)반복문/반복제어문 (0) | 2020.06.23 |
댓글