[Java] 메소드 / 매개변수

이유은·2023년 11월 14일
0

[Java]

목록 보기
12/18

🔥 메소드란? 메서드의 선언부와 구현부

  • 메소드란? 문장들을 묶어 놓은 것.
  • 프로그램에서는 코드의 중복을 좋아하지 않고, 제거하려고 함.
  • 그래서 그걸 별도의 메서드로 만들어! 그리고 이름을 붙여줘.
  • 그리고 그걸 불러서 써 -> 메서드 호출(사용)
  • 작업단위로 문장들을 묶어서 이름을 붙인 것 ! = 메소드
  • 값(입력)을 받아서 처리하고, 결과를 반환(출력)
  • 메서드 - 객체지향 개념에서 함수를 지칭함
  • 메서드는 클래스 안에 있어야 해 / 함수는 그런 제약이 없음!! 독립적
  • 작업에 필요한 값들을 받아서 그 결과를 반환해줘 ~
  • 상자에서 무슨일 하는지 알아야돼? 몰라도됨 / 블랙박스라고 하기도 함

✓ 메소드의 장점

  1. 코드의 중복을 줄일 수 있다.
  2. 코드의 관리가 쉽다.
  3. 코드를 재사용 할 수 있다.
  4. 코드가 간결해서 이해하기 쉬워진다.

✓ 메서드의 작성

  • 반복적으로 수행되는 여러 문장을 메소드로 작성
  • 하나의 메서드는 한가지 기능만 수행하도록 작성



메소드 = 선언부 + 구현부

반환타입(작업결과 타입) 메서드 이름 (타입 변수명, 타입 변수명, ...) -> 선언부
int add (int a, int b)
{
int result = a+b;
return result; //호출한 메서드로 결과를 반환한다.
        } -> 구현부 // 메서드 호출시 수행될 코드

반환은 -> 입력값은 여러개 될 수 있지만 출력값은 0개 혹은 최대 1개 !!
작업 결과가 여러개면? -> 배열을 이용하거나, 객체로 묶어서 // 앞으로 나올거얌

다음!

메서드의 구현부

지역변수 : 메서드 내에 선언된 변수 (메서드 영역)
메서드가 종료되면 모두 사라져 ~
따라서 서로 다른 메서드에서는 변수이름 똑같아도 상관 없슈


🔥 메서드의 호출

  • 메서드 이름(값1, 값2, ...); //괄호안에는 작업에 필요한 값들 적으면 됨, 없을 땐 안쓰면 돼
  • 반환타입 void 는 출력이 없다 !!! // 작업을 수행하고 줄 결과가 없음 , 돌려줄 게 없다.
  • 보이드가 아닌 경우는 대입연산자, 변수를 써써 결과를 변수에 저장하는 식으로! ( int result = add(3,5); )
  • 중간 역할 , 중간 매개체라는 말을 해서 매개변수 (parameter)
  • 메서드는 클래스 영역에만 정의 가능!

✓ 메서드의 실행흐름

  1. 객체 생성
  2. 메서드 호출(작업시 필요한 값도 줌)
  3. 메서드 실행
  4. 메서드 종료시 작업 결과 반환 / 호출한 곳으로 돌아감 (결과값을 가지고)
  5. 대입

🔥 return문

  • 실행중인 메서드를 종료하고 호출한 곳으로 되돌아간다.
  • 메서드가 작업을 마쳤을 때 , 써줘야하지만 반환타입이 void인 경우는 생략가능. 컴파일러가 자동추가 !!
  • 반환타입이 void가 아니면 반드시 return문 필요!
  • 메서드 조건식일 경우! - 조건이 참, 거짓일 때를 다 써줘야함
  • 반환타입이 보이드 아니면 리턴 타입이 일치해야하고, 혹은 자동형변환 되는 애여야함!

🔥 호출스택 (call stack)

  • 호출스택은 모든 프로그래밍 언어에서 공통적이고 매우 중요한 개념
  • stack : 밑이 막힌 상자. 위에 차곡차곡 쌓인다.
  • 집어넣은 순서대로 차곡차곡 쌓여요.
  • 꺼낼 때는 제일 위에 있는걸 꺼내요.
  • 순서대로기때문에 중간에 뭘 끼우거나 맨아래거 먼저 빼기 불가능!
  • 메서드 수행에 필요한 메모리가 제공되는 공간
  • 메서드가 호출되면 호출스택에 메모리 할당, 종료되면 해제
  • 아래있는 메서드가 위의 메서드를 호출한 것
  • 하나의 스택에서는 맨 위 하나의 메서드만 실행중. 나머지는 대기중!

🔥 기본형 매개변수

  • 메소드의 변수 타입이 기본형!
  • 기본형 맴개변수 - 변수의 값을 읽기만 할 수 있다.(read only)
  • 참조형 매개변수 - 변수의 값을 읽고 변경할 수 있다.(read & write)

🔥 참조형 매개변수

  • 그림을 보고 잘 이해해봅시다.
  • 반환타입이 참조형이라는 것은? - 객체의 주소를 반환한다. (객체를 반환)

남궁석의 정석코딩 / 자바의 정석 유튜브 참고

profile
우당탕코딩

0개의 댓글