함수와 메서드

장찬익·2023년 9월 11일

JAVA 학습 일지

목록 보기
7/28

- 함수란 ?

함수는 특정 작업을 수행하는 "코드 조각"이다.
범위가 전역이든 지역이든 "독립된 기능"을 수행하는 단위이다.
로직 처리 이후 사용자가 원하는 결과를 반환(return)한다.
즉 함수는 독립적으로 존재한다.

  • 하나의 특별한 목적의 작업을 수행하기 위해 독립적으로 설계된 코드의 집합입니다.
  • 함수로 구현된 기능은 여러 곳에서 호출되어 사용이 가능합니다.
  1. 함수는 코드 저장소
  2. 함수는 '입력 - 처리 - 출력' 으로 이루어진다.
  3. 함수 규칙
  • 규칙1. 함수는 클래스 안에서 정의해야 한다.(함수 안에 함수 정의 X)
  • 규칙2. 리턴타입, 함수명, 매개변수를 지정해야한다.
  • 규칙3. 같은 이름의 함수를 2개 이상 만들지 않는다.
  • 규칙4. 함수는 호출(사용) 해야만 실행된다.
  • 규칙5. 함수의 개수는 제한이 없음
//독립적으로 존재한다.
//함수정의
void -> 리턴타입
test -> 함수명
() -> 매개변수
publec static void test(){
}

- 메서드란?

메소드는 클래스, 구조체, 열거형에 포함되어 있는 함수를 메소드라고 한다.
다른말로 "클래스 함수" 라고도 불린다.
해당 클래스에 대한 객체가 생성되어야 사용할 수 있다. ( 클래스 안에 있으니까 )

  • 객체의 기능을 구현하기 위한 클래스 내부에 구현되는 함수입니다.
  • 멤버 함수라고도 합니다.
  • 메서드를 구현하면 객체의 기능을 구현하는 것입니다.
class Person { 
  //This is a method which acts only on Person type 
 	func personGreeting() { 
      greet(yourName: "Santosh", category: .Person)
    }
}
//(JAVA) 같은 경우 액티비티 클래스 안에 모든 것을 작성하게 된다.
//클래스 안에 작성되는 "함수" 는 "메소드" 가 되는 것이다

- 함수와 메서드의 차이점

  • 프로그래밍 언어마다 함수로 부르는 언어도 있고 메서드라고 부르는 언어도 있습니다.
    그런데 함수와 메서드는 비슷하면서도 다른 점이 있습니다.
    함수는 어디에 속해있지 않고 단독 모듈이라 함수를 그냥 호출하여 사용이 가능합니다.
    메서드는 함수의 일종이긴 하지만 클래스 안에 속해 있고 클래스의 멤버 변수들을 이용해서 구현된 것을 메서드라고 합니다.

ex)

public class Function {
    // 함수 정의
    // void - 리턴타입
    // test - 함수명
    // () - 매개변수
    public static void test() {
        System.out.println("코드1");
        System.out.println("코드2");
        System.out.println("코드3");
        System.out.println("코드4");
        return;
        // 함수가 끝나면 호출한 부분으로 리턴한다.
    }

- 함수 리턴

  • return문 이란 ?
    실행중인 메서드를 종류하고 호출한 곳으로 되돌아가도록 한다.
return;
reutrn a;
  • 반환 타입이 void일 경우 생략 가능, 컴파일러가 자동 추가됨.
    반환 타입이 void가 아닐 경우, 반드시 return문 필요
    public static double circleArea(int radius) { 
    // void -> double로 수정. 리턴타입은 리턴값과 자료형이 일치해야함.
        double result = radius * radius * 3.14;
        System.out.println(result);
        return result; // 함수에서 리턴할 때 result값을 들고감.
    }
        // 아래 방식은 한계가 있음
//    public static void circleArea2(int radius) {
//        System.out.println(radius * radius * 3.14 / 2);
//    }
//
//    public static void circleArea3(int radius) {
//        System.out.println(radius * radius * 3.14 * 2);
//    }

ex)

        // 1. 반지름으로 원의 넓이를 구하는 함수 만들기(정의).
        // 반지름 * 반지름 * 3.14
        // 함수에서 리턴할 때 값을 하나 가지고 올 수 있다. -> 리턴값
        // 2. 반지름이 5인 원의 넓이를 구해서 출력
        double num = circleArea(5);
        System.out.println(num); // 78.5
        // 3. 반지름이 5인 원의 넓이를 2로 나눈 값.
        System.out.println(num / 2);
        // 4. 반지름이 5인 원의 넓이를 2 곱한 값.
        System.out.println(num * 2);
        // 리턴 -> 함수가 작업한 결과를 직접 받을 수 있음.
        // 함수의 결과를 2차 가공할 수 있음.
    }

이상으로 함수와 메서드에 대하여 알아보았다.

profile
장찬익 입니다

0개의 댓글