코딩기록 저장소 🐕/JAVA

메서드와 클래스

kimkongmom 2023. 7. 19. 08:55

 

 

 

▶ 인수(Argument)

     ① 메소드에게 전달하는 값을 의미한다.
     ② 메소드를 호출할 때 전달할  있다.


파라미터(Parameter)

    인수를 받아서 저장하는 변수이다.
      매개변수라고도 한다.

main에 있는 빨간 네모들이 인수!

나머지 아래 빨간 네모들이 매개변수입니다!

매개변수안에 같은 타입을 넣고 인수를 넣으면 결과가 나옵니다!

 

 

메소드 오버로딩(Overloading)
     같은 이름을 가지고 있는 메소드를 여러 개 만들 수 있다는 의미이다.

     메소드 오버로딩의 조건
       1) 메소드 이름이 같다.
       2) 파라미터가 반드시 달라야한다.(개수가 다르거나, 타입이 다르거나)

빨간네모들은 같은 print 메서드이다.

다른 타입, 다른 갯수여도 출력이 가능하다 이것이 오버로딩

하얀네모는 호출을 한후 한개의 실수를 출력하고 싶을때 다시 한개의 인수인곳으로 보낸다!

 

말 줄임표(ellipsis)
    메소드로 전달하는 인수의 타입이 동일하지만, 갯수가 여러 개인 경우에 사용할 수 있다.
    말 줄임표(...)를 활용한다.
   ③ 말 줄임표로 선언된 변수는 배열로 처리한다.

말줄임표는 배열이다.

 

 반환(return)
     메서드의 실행 결과 값을 의미한다.
     반환값이 없는 경우에는 void 키워드를 작성하고, 반환값이 있는 경우 반환값의 타입을 작성한다.

 

아래 메서드들은 반환값이 있으므로 retrun값을 작성해 주었습니다.

 

 

void 메소드의 return
    ① 반환값이 없는 메소드는 void 키워드를 사용한다.
    ② 이런 경우 return; 키워드를 이용해서 메소드 실행을 종료할 수 있다.
    ③ return 키워드만 작성해야 한다.
    ④ void 메소드에서만 사용할 수 있다.

 

return;  실행중인 메서드를 종료하고, 호출한곳으로 되돌아간다!

반환타입이 void가 아닌경우, 드시 return문이 필요하다.

 

 

 

기본변수와 참조변수 메서드 사용

호출한 후 a++; , b++;을 하게 되면 위에 메서드에서는 값이 변하지만 아래 main 메서드에서는 값이 변하지않습니다.

결과

반대로 기본변수가 아닌 참조변수를 사용하게 된다면 다르다

 

예시가 살짝 매콤합니다.

main에 있는 첫번째  d.x는 10을 가지고 있기 때문에 10이라는 결과가 나옵니다.

 change();메소드를 호출합니다.

 호출하면 바로 change(Data2 d) 로 갑니다.

그러면 그안에서는 d.x 는 1000 의 값을 넣는다 . 라고 되어있기에 d.x 의 값이 1000으로 바뀝니다.

결과가 나오면 다시 main 으로 돌아갑니다.

⑥ 그다음 호출되는 System.out.println안의 값은 원래의 10이 아닌 1000으로 되어 옵니다.

 

이것이 바로 기본변수와의 차이점입니다. 참조변수는 값을 읽고 변경할 수 있습니다.

 

결과값

'코딩기록 저장소 🐕 > JAVA' 카테고리의 다른 글

field와 setter와 getter  (0) 2023.07.19
빌드path 설정  (0) 2023.07.19
배열 문제풀이  (0) 2023.07.18
for문 헷갈렸던 문제  (0) 2023.07.17
2차원배열, advanced-for문  (0) 2023.07.17