코딩 기록들
[Java Programming] 3.2 메소드 본문
객체지향의 함수 = 메소드 라고 부른다
메소드
하나의 기능을 하는 코드의 묶음 단위
- 함수를 만드는 이유 ) 내가만들어서 누군가가 호출할 때 함수가 필요하므로! (여러번 반복해서 사용 = 재사용성이 높다)
- 메소드가 하는일에 따라 파라미터(인자)가 필요할 수도 있음
- 처리결과를 반활수도, 반환하지 않을수도 있음
- 동일한 기능의 코드가 여러번 중복되어있을경우, 해당코드를 수행하는 기능을 만들어두면(=메소드) 편함
- 메소드를 정의하고나서, 반드시 '호출'을 해야만 실행이 된다!
- 보통의 메소드 => 한가지 일만 한다
- 메소드에서 기능의 범위를 정하는 방법 : 관련된 코드로 지정!
1) 어디까지가 기능인지, 2) 분리했다면 재사용 될 수 있는지? -> 둘다 해당 안된다면 메소드 분리시키지 X
public static void 메소드이름(){}
(메소드이름 : 보통 동사로 시작, 반드시 소문자로 시작)
public class Hello {
// sayHello라는 메소드 만들기
// public static void 메소드이름(보통 동사로 시작, 이름은 반드시 소문자로 시작)
/**
* "안녕하세요?" 를 출력하는 메소드 (정의하는 부분)
*/
public static void sayHello() {
System.out.println("안녕하세요?");
}
/**
* 클래스 파일을 실행시키는 메소드
* @param args (파라미터)
*/
public static void main(String[] args) {
// Ctrl + Alt + 방향키 위/아래 -> 위/아래로 라인이 복사가 됨
sayHello(); // 메소드 호출하는 문법 (메소드 호출하기위해서는 메소드 이름으로 호출!!)
System.out.println("반갑습니다.");
sayHello();
sayHello();
sayHello();
sayHello();
sayHello();
}
}
이클립스 디버깅 단축키
- F11 = 디버깅 시작
- F 6 = 디버깅 다음라인으로 이동
- F5 = 메소드 호출라인에서 누르면 해당 메소드(정의부분) 안으로 디버깅시작
- F7 = 클래스 상위로 디버깅 이동
그 외 알아두면 유용한 단축키
- print + Ctrl + space : 코드 도움말 알려줌
- Ctrl + Alt + 위/아래 방향키 : 해당 라인 코드 전체를 위/아래로 복사
- Ctrl + X : 잘라내기
메소드를 어떤식으로 활용할 수 있을까?
- 메소드 실행에 필요한 데이터(파라미터)가 있을경우, 메소드 호출(실행)시 데이터(파라미터값)를 반드시 전달해야함
이름을 전달받아 "이름씨, 안녕하세요?" 라고 출력하는 메소드
// 메소드 정의
/**
* 이름을 파라미터로 전달하면, "이름씨, 안녕하세요"를 출력한다.
* @param name 출력하고싶은 이름
*/
public static void printHello(String name) { //String타입의 name을 받겠다
System.out.println(name + "씨, 안녕하세요?");
}
// 메소드 호출
public static void main(String[] args) {
printHello("스타크"); // String name에 "스타크" 할당
printHello("헐크"); // String name에 "헐크" 할당
printHello("그루트"); // String name에 "그루트" 할당
}
}
파라미터가 여러개 있다면 컴마(,)로 구분하여 메소드를 정의 -> 메소드 호출시 파라미터 값 맞춰주기
앞선 for문에서 했던 예제를 메소드와 함께 사용하는 예제
public class methodExample {
// for반복문 연습문제 : 메소드 만들어서 풀어보기
// 1. 1부터 100까지 합 구해서 출력
public static void one2HundredSum() {
int one2Hundred = 0;
for (int i=1; i<101; i++) {
one2Hundred += i;
}
System.out.println(one2Hundred);
}
// 2. 1부터 100중 홀수의 합 구해서 출력
public static void oddSum() {
int oddNum = 0;
for (int i = 1; i<101; i++) {
if (i % 2 == 1) {
oddNum += i;
}
}
System.out.println(oddNum);
}
// 3. 1부터 100중 3,5,6의 배수만 출력
public static void tripleNum() {
for (int i = 1; i < 101; i++) {
if (i % 3 == 0 && i % 5 == 0 && i % 6 == 0) {
System.out.println(i);
}
}
}
// 4. 별탑쌓기
public static void stars() {
for (int i = 1; i < 6; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
}
public static void main(String[] args) {
one2HundredSum();
oddSum();
tripleNum();
stars();
}
'Java' 카테고리의 다른 글
[Java Programming] 4.2 클래스와 인스턴스 (0) | 2024.01.22 |
---|---|
[Java Programming] 4.1 (반환하는) 메소드 (0) | 2024.01.22 |
[Java Programming] 3.1 실행흐름 제어 - 조건문 (while, for) (1) | 2024.01.19 |
[Java Programming] 2.2 실행흐름 제어 - 조건문 (if~else if ~ else, Switch) (0) | 2024.01.18 |
[Java Programming] 2.1 연산자(산술, 비교, 논리 연산자) (0) | 2024.01.18 |