본문 바로가기
풀스택/Java다시 복습 처음부터

java 복습 3-2(객체지향 프로그래밍) - 메소드

by woohyun22 2019. 6. 4.

ex) 믹서기 = 메소드 , 넣을 과일들 = 입력값 , 만들어진 쥬스 = 리턴값


메소드가 하는 일 - 입력을 가지고 어떤 일을 수행한뒤 결과를 내는 것


메소드가 필요한 이유 - 반복하는 내용을 줄이기 위해,편하게 쓰기위해


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class Test {
    public int sum(int a, int b) {
        return a+b;
    }
 
    public static void main(String[] args) {
        int a = 3;
        int b = 4;
 
        Test myTest = new Test();
        int c = myTest.sum(a, b);
 
        System.out.println(c);
    }
}
cs


메소드의 종류


메소드 안의 내용은 main에 넣으면된다.


- 입력과 출력이 모두 있는 메소드


1
2
3
public int sum(int a, int b) {
    return a+b;
}
cs


- 입력과 출력이 모두 없는 메소드


1
2
3
4
5
6
7
public String say() {
    return "Hi";
}
 
Test myTest = new Test();
String a = myTest.say();
System.out.println(a);
cs


- 입력은 없고 출력은 있는 메소드


1
2
3
4
5
public void sum(int a, int b) {
    System.out.println(a+"과 "+b+"의 합은 "+(a+b)+"입니다.");
}
Test myTest = new Test();
myTest.sum(34);
cs



- 입력은 있고 출력은 없는 메소드


1
2
3
4
5
public void say() {
    System.out.println("Hi");
}
Test myTest = new Test();
myTest.say();
cs



return의 다른 쓰임새 메소드를 빠져나갈때

이 방법은 리턴자료형이 void형인 메소드에만 해당된다. 


1
2
3
4
5
6
public void say_nick(String nick) {
    if ("fool".equals(nick)) {
        return;
    }
    System.out.println("나의 별명은 "+nick+" 입니다.");
}
cs



메소드 내에서 선언된 변수의 효력 범위


1
2
3
4
5
6
7
8
9
10
11
12
class Test {
    public void vartest(int a) {
        a++;
//return a;
    }
 
    public static void main(String[] args) {
        int a = 1;
        Test myTest = new Test();
        myTest.vartest(a);
        System.out.println(a);
    }
}
cs

메소드는 입력받은 값을 1씩 증가시켜주는데, 메소드에서 선언된 변수는 메소드 안에서만 효력이 있기 때문에 main의 값은 그대로 1이 출력된다.


메소드의 ++된 값을 받고싶다면 주석되어있는 return을 풀어주면된다.

728x90

댓글