[JAVA] 함수(function), 메서드(method)

seonjeong·2022년 12월 27일
0

Java

목록 보기
7/26
post-thumbnail

💖 함수(function)

독립적인 처리자
method -> class에 소속되어 있는 함수

클래스(class) 밖에서 선언되면 함수, 클래스 안에서 선언이 되면 메소드
자바에서는 모든 함수가 클래스 내부에서 선언되기 때문에 메소드만이 존재

🔥 구성요소

  • parameter -> 들어가는 값
  • return value -> 나오는(산출되는) 값

🔥 형식

return값 함수명(parameters, , ,) {
	처리
    return;
}

🔥 예시

functionName(); // 함수 호출

functionOne(25); 

String s =functionTwo();
System.out.println(s);

static void functionName() {	// 들어가는 값, 나오는 값이 없는 함수 -> void
	System.out.println("functionName 호출");
}

static void functionOne(int n) {	// n -> parameter -> 매개변수
	System.out.println("functionOne 호출 n = " + n);
}

static String functionTwo() {
	String str = "hello";
    return str;
}

// console
/*
functionName 호출
functionOne 호출 n = 25
hello
*/

💖 메서드(method)

객체의 기능을 구현하기 위해서 클래스 내부에 구현되는 함수. 함수와 같음
1. 문장들을 묶어놓은 것(작업단위)
2. 값(입력)을 받아서 처리하고 결과를 반환(출력)

장점

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

메서드의 작성

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

🔥 구성요소

: 크게 선언부(header)구현부(body)로 이루어짐. 함수(function)와 동일

선언부

  • 메서드의 이름( method name )
  • 매개변수 선언( parameter declaration )
  • 반환타입( return type )

구현부

  • 메서드 호출시 수행될 코드( {}안에 작성). 지역변수

🔥 형식

입력값은 여러개가 가능하지만, 출력값은 딱 하나만 가능
반환값이 없는 경우, 반환타입 : void

반환타입 메서드이름 (타입 변수명, 타입 변수명, ..) {
	// 메서드 호출시 수행될 코드
}

🔥 예시

int result add(3, 5); 		// 메서드 호출. 3,5는 인자(argument) or 인수
int result add(1.0, 2, 3);	// 에러. 메서드에 선언된 매개변수의 개수와 타입이 일치해야함 

int add(int a, int b) {
	int result = a + b;	// 지역변수
    return result	// 하나의 값만 반환. 반환타입과 일치하거나 자동 형변환이 가능한 것
}
MyMath mm = new MyMath();
long result1 = mm.add(5L, 3L);
long result2 = mm.substract(5L, 3L);
long result3 = mm.multiply(5L, 3L);
double result4 = mm.divid(5L, 3L);	// long값이 자동형변환

System.out.println("add(5L, 3L) = " + result1);
System.out.println("substract(5L, 3L) = " + result2);
System.out.println("multiply(5L, 3L) = " + result3);
System.out.println("divid(5L, 3L) = " + result4);

class MyMath {
	long add(long a, long b) {return a + b;}
    long substract(long a, long b) {return a - b;}
    long multiply(long a, long b) {return a * b;}
    double divid(double a, double b) {return a / b;}
}

// console
/*
add(5L, 3L) = 8
substract(5L, 3L) = 2
multiply(5L, 3L) = 15
divid(5L, 3L) = 1.6666666666666667
*/
profile
🦋개발 공부 기록🦋

0개의 댓글

관련 채용 정보