JAVA를 잡아라!...

JAVA_08_메서드 본문

JAVA/JAVA_멘토씨리즈

JAVA_08_메서드

onivv 2023. 12. 31. 18:15

#1 메서드(method)

  • 클래스 안에서 특정 기능을 수행하기 위해 코드들을 하나의 블록으로 따로 묶어 놓은 집합
  • 메서드를 구현함으로써 특정 기능이 여러 번 필요할 때, 코드를 반복적으로 사용하는 것을 피할 수 있음
  • ==> 코드 재사용 가능, 중복된 코드 제거 가능
  • 모듈화 : 코드들의 집합을 따로 분리하는 것

기본 구조

접근제한자 반환타입 메서드명(자료형 변수명1, 자료형 변수명2,...) {
	// 기능을 수행할 코드들
}
  • 접근 제한자(access modifier)
    • 해당 메서드에 접근할 수 있는 범위를 결정
    • 클래스/메서드/필드에 대한 접근을 어느 범위까지 제한하느냐에 대한 지시어
  • 반환 타입(return type)
    • 메서드 호출시 블록 안에 있는 코드들을 실행한 후 결과값을 반환함
    • 메서드를 호출했을 때 결과값으로 돌려받을 데이터의 자료형
    • 반환값이 없는 경우엔 반환 타입 'void' 사용
      • 기본 자료형 : 정수형, 문자형, 실수형, 논리형
      • 참조 자료형 : 배열, 클래스, ...
  • 메서드 이름
    • 변수처럼 이름을 가지고, 메서드 호출시 사용
    • 하나의 메서드에 하나의 기능만 수행하도록 작성
    • 메서드명만으로 메서드 기능을 쉽게 알 수 있도록 설정

메서드를 메모리에 할당하는 방법

// ex) main 메서드
public static void main(String[] args) {
	// public : 모든 클래스에서 접근 가능
	// static : 프로그램 시작과 동시에 메모리에 할당
	// void : 반환할 값이 없음
}
  1. 라이브러리 클래스에 있는 메서드
    • 인스턴스 메서드 : 객체를 생성함과 동시에 객체의 멤버들이 메모리에 할당. 객체를 생성한 후 사용 가능
    • 정적 메서드 : 프로그램 시작과 동시에 메모리에 자동으로 할당. 바로 사용 가능
  2. 실행 클래스에 있는 메서드
    • 객체를 생성할 방법이 없기 때문에, 무조건 static으로 메서드 선언

메서드 호출

메서드있는클래스 참조변수 = new 클래스();
참조변수.메서드명();
(단, 같은 클래스에 있는 메서드를 호출할 때는 메서드명만 호출)
  • 다른 클래스에 선언된 메서드 사용 : 해당 클래스의 객체 생성 후 인스턴스의 메서드 호출
  • 같은 클래스에 선언된 메서드 사용 : 바로 호출 가능

 

#2 매개변수 & return

▶ 매개변수

  • 특정 기능을 수행하기 위한 메서드는 기능을 수행할 때 사용할 인자를 받을 수 있음
  • 메서드 정의할 때, 소괄호()안에 작성

▶ 리턴값(return value)

접근제한자 반환타입 메서드명() {
	// 기능을 수행할 코드들
	return 결과값;
}
  • 메서드를 호출할 때, 메서드로부터 실행한 결과값
  • 메서드가 반환할 값이 있다면 반드시 return 구문을 통해 결과값을 반환하고 메서드 종료
  • 리턴값이 없는 메서드의 경우, 반환 타입이 void --> return; 을 이용해 메서드 종료 가능

 

#3 getter() & setter()

  • 객체의 필드를 객체 밖에서 필드에 마음대로 접근하고 값을 변경하면 문제 생길 수 있음!
  • 객체 지향 프로그래밍에서는 메서드를 통해서 필드의 값을 불러오고, 필드의 값을 변경해야 함
  • 즉, 필드를 사용하려면 메서드를 이용하도록 설계 가능
    • < 장점 >
    • 필드를 보호할 수 있음
    • 메서드에서 필드에 들어갈 값을 검증한 후 필드에 대입
    • 외부에서 사용할 필드의 값을 정제한 후 값 제공
  • private 필드 : 객체 외부에서 접근이 불가하지만, 필드가 선언된 클래스에서는 접근 가능
    • getter() : private 필드를 객체 외부에서 값을 불러오기 위해 구현하는 메서드
    • setter() : private 필드의 값을 대입