자바 메소드 정리

김예진·2022년 11월 28일
0

java

목록 보기
12/21

✨ 메소드란?

어떠한 문제를 처리하기 위한 방법을 소스 코드로 묶어놓고 필요에 따라 동작하는 기능

✨ 메소드 구조!

리턴타입 메소드이름 ( [매개변수선언, ...] ){
실행할 코드를 작성하는 곳
.
.
}

🫧메소드는 선언부(리턴타입, 메소드 이름, 매개변수 선언)와 실행 블록(메소드 실행 블록)으로 구분됨
🫧메소드 선언부는 메소드 시그니처라고 함

📌리턴 타입(리턴 값의 타입)
-메소드를 실행한 후의 결과값을 말함
-리턴값이 있을 경우 리턴 타입이 선언부에 명시되어야 함

📌메소드 이름
-숫자로 시작하면 안됨
-'$','_'를 제외한 특수 문자 사용하면 안됨
-관례적으로 메소드 이름은 소문자로 작성함
-서로 다른 단어가 혼합된 이름이라면 뒤이어 오는 단어의 첫 글자는 대문자로 작성함 ex)String getName(){ ... }

📌매개변수 선언
-매소드 실행 시 데이터를 외부로부터 받기 위해 사용됨
-매개변수 개수를 모를 때? -> 배열을 이용
ex) int sum1(int[] values) {...}

✨ 리턴문

🫧리턴 타입이 있는 메소드는 반드시 리턴문(return)을 사용해서 리턴값을 지정해야함 -> return문 없으면 컴파일 에러 발생
🫧리턴문이 실행되면 메소드는 즉시 종료

예시코드

int plus(int x,int y){ //더하기
        int result = x + y;
        return result;
    }

❓리턴값이 없으면?
리턴값이 없으면 리턴타입으로 void 사용
🫧void로 선언된 메소드에서도 리턴문을 사용할 수 있음 -> 리턴 값 지정용 x 강제 종료 시키는 역할
ex)

return;

✨ 메소드 호출

🫧객체 내부 호출

메소드(매개값, ... );

ex)

public class ClassName(){
	int method1(int x, int y){
    	int result = x + y;
        return result;
    }
    
    void method2(){
    	int result1 = method1(10, 20);
        double result2 = method2(10, 20);
    }
}

-자동 타입 변환 될 수 있다는 점에 주의

🫧객체 외부 호출

클래스 참조변수 = new 클래스(매개값, ...);

-외부 클래스에서 메소드를 호출하려면 클래스로부터 객채를 생성해야함 -> 메소드는 객체에 소속된 멤버이므로 객체가 존재하지 않으면 메소드도 존재하지 않기 때문
ex)

Car myCar = new Car();
myCar.keyTurnOn();
myCar.run();
int speed = myCar.getSpeed();

✨ 메소드 오버로딩

🫧클래스 내에 같은 이름의 메소드를 여러 개 선언하는 것
🫧조건: 매개 변수의 타입, 개수, 순서 중 하나가 달라야 함(메소드 시그니처가 달라야 함)

❓메소드 오버로딩이 필요한 이유?
-> 매개값을 다양하게 받아 처리할 수 있도록 하기 위해!
ex)
다음과 같은 plus() 메소드가 있다고 가정했을 때

int plus(int x, int y){
	int result = x + y;
    return result;
}

plus() 메소드를 호출하기 위해서는 2개의 int값 필요
만약 int 값이 아니라면? (double, long등..) plus 호출 X

int plus(int x, int y){
	int result = x + y;
    return result;
}

double plus(double x, double y){
	double result = x + y;
    return result;
}

long plus(long x, long y){
	long result = x + y;
    return result;
}

하지만 위와 같이 메소드 오버로딩을 해주면 다양한 타입으로 plus() 메소드를 호출할 수 있음

❓메소드와 함수의 차이?
🫧함수
-특정 작업을 수행하는 '코드조각'
-전역이던 지역이던 '독립된 기능' 수행

🫧메소드
-클래스, 구조체, 열거형에 포함되어 있는 함수
-다른말로 클래스 함수 라고도 함

-> 독립적으로 존재하는 함수이냐, 클래스 내부에 종속되어 있느냐의 구분으로 함수와 메소드를 구분할 수 있음

0개의 댓글