java method 정리 - 1

0

java

목록 보기
1/3
post-custom-banner

  1. public static

    • public : 다른 클래스에서 호출 할 수 있는 메서드라는 뜻. 접근 제어쪽에서 다시 학습
    • static : 객체를 생성하지 않고 호출할 수 있는 정적 메서드. 추후 다시 학습
    • 두 키워드의 자세한 내용은 뒤에서 다시 학습.. 그냥 지금은 단순하게 메서드를 만때 둘을 사용해야 한다고 생각해보자.
  2. int add (int a,int b)

    • int : 반환 타입을 정의한다 . 메서드의 실행 결과를 반환할 때 사용한 반환 타입을 지정.
    • add : 메서드에 이름을 부여 이 이름으로 메서드를 호출 할 수 있다.
    • (int a , int b ) : 메서드를 호출할 때 전달하는 입력 값을 정의. 이 변수들은 해당 메서드 안에서만 사용. 이렇게 메서드 선언에 사용되는 변수를 영어로
      파라미터(parameter), 한글로 매개변수라고 함
  3. 메서드 호출과 용어 정리

    메서드를 호출할 때는 다음과 같이 메서드에 넘기는 값과 매개변수(파라미터)의 타입이 맞아야 한다. 물론 넘기는 값과 매개변수(파라미터)의 순서와 갯수도 맞아야한다.

    호출 : call("hello",20)

    메서드 정리 : int call(String str, int age)

    인수(Argument)
    여기서 "hello",20 처럼 넘기는 값을 영어로 Argumnet라고 한다 한글로는 (인수,인자) 라고 한다.. 실무에서는 아규먼트,인수,인자라고 모두 사용!!

    매개변수(Parameter)
    메서드를 정의할때 선언한 변수 String str , int age 를 매개변수 , 파라미터라고 함..

  4. 메서드 정의

public static int add(int a, int b) {
 //메서드 본문, 실행 코드
}
제어자 반환타입 메서드이름(매개변수 목록) {
 메서드 본문
}
  • 제어자 : public , static 같은 부분
  • 반환 타입 : 메서드가 실행 된 후 반환하는 데이터의 타입 메서드가 값을 반환하지 않는 경우, 없다는 뜻의 void를 사용해야함.
    예 ) void print(String str) <<
  • 메서드 이름 : 메서드의 이름 . 호출하는데 필요
  • 매개변수 : 입력 값 메서드 내부에서 사용 할 수 있는 변수 . 옵션이다 입력값이 필요없는 메서드는 매개변수를 지정하지 않아도 됨
    예 ) add()
  • 메서드 본문 : 실제 메서드의 코드 위치 중괄호 사이에 코드를 작성.

매개변수가 없는 경우

선언: public static void printHeader() 와 같이 매개변수를 비워두고 정의하면 된다.

호출: printHeader(); 와 같이 인수를 비워두고 호출하면 된다.

반환 타입이 없는 경우

선언: public static void printHeader() 와 같이 반환 타입을 void 로 정의하면 된다.

호출: printHeader(); 와 같이 반환 타입이 없으므로 메서드만 호출하고 반환 값을 받지 않으면
된다.

String str = printHeader(); 반환 타입이 void 이기 때문에 이렇게 반환 값을 받으면 컴파일 오류가 발생한다.

자바는 항상 변수의 값을 복사해서 대입한다

package method;
public class MethodValue0 {
 public static void main(String[] args) {
 int num1 = 5;
 int num2 = num1;
 num2 = 10;
 System.out.println("num1=" + num1);
 System.out.println("num2=" + num2);
 }
}

실행 결과
num1=5
num2=10

실행 과정

int num2 = num1; //num1의 값은 5이다. num1(5)
int num2 = 5; //num2 변수에 대입하기 전에 num1의 값 5를 읽는다. 결과: num1(5), num2(5)
num2 = 10; // num2에 10을 대입한다. 결과: num1(5), num2(10) 

여기서 값을 복사해서 대입한다는 부분이 바로 이 부분이다.

int num2 = num1;

이 부분은 생각해보면 num1 에 있는 값 5 를 복사해서 num2 에 넣는 것이다.
복사한다고 표현한 이유는 num1 의 값을 읽어도 num1 에 있는 기존 값이 유지되고, 새로운 값이
num2 에 들어가기 때문이다. 마치 num1 의 값이 num2 에 복사가 된 것 같다.
num1 이라는 변수 자체가 num2 에 들어가는 것이 아니다.
num1 에 들어있는 값을 읽고 복사해서 num2 에 넣는 것이다.
간단하게 num1 에 있는 값을 num2 에 대입한다고 표현한다. 하지만 실제로는 그 값을 복사해서 대입
하는 것이다.

너무 당연한 이야기를 왜 이렇게 장황하게 풀어서 하지? 라고 생각한다면 이제 진짜 문제를 만나보자

profile
배운것을 끄적끄적 올리는 개발 블로그
post-custom-banner

0개의 댓글