[기초] 시리즈는 본강의를 수강후 정리한 글들 입니다.
메소드 개요
- 메소드
- 클래스를 구성하는 구성요소에서 해당 클래스의 행위를 의미하는 것
- 메소드를 이해하기 위해서는 먼저 함수 function 가 무엇인지 이해해야 함.
- 함수
- 입력, 기능, 출력으로 구성되며 함수의 기능에 따라 입력과 출력은 없을 수 있음.
- 함수와 메소드의 구분은 클래스의 소속여부로 나누며 특정 클래스에 소속된 경우, 그렇지 않을 경우 함수.
메소드의 구성 및 정의
- 클래스의 구성요소로 메소드의 역할은 해당 클래스의 데이터에 대한 제어
- 특정 클래스의 데이터, 즉 필드 값의 변경은 곧 해당 클래스의 특정 행위가 수행되는 것
- ex) 계좌의 잔액을 특정 금액 만큼 빼는 메소드는 곧 출금 행위를 의미
메소드의 구성 및 정의2
- 클래스는 다수의 메소드를 가질 수 있으며, 그 메소드의 기능은 메소드 호출을 통해 수행.
- 필드와 마찬가지로 메소드에도 접근 지정자를 지정하여 메소드 호출에 대한 범위를 지정 가능
- 메소드는 static 키워드를 이용해 클래스 메소드와 인스턴스 메소드로 정의
메소드 호출의 이해
- 용어의 차이!
- 메소드의 입력값 = 파라미터 / 메소드 호출 시 입력값 = 전달인자 (혼용됨)
- 인스턴스 메소드 (static이 안붙은 메소드)
- 객체가 인스턴스화 된 이후에만 호출이 가능한 메소드
- 즉, 인스턴스 메소드를 호출하기 위해서는 객체 생성을 먼저 한 이후에 생성한 참조변수를 통해서 호출 가능
오버로딩 (overloading)
- 메소드의 이름을 같게 하고, 파라미터를 달리하여 여러 메소드를 정의하는 방법
- 자바의 메소드 시그니처 : 정의된 메소드들을 구분할 수 있는 방법
- 메소드의 이름부터 파라미터까지.
- 메소드의 반환 타입은 메소드 시그니처에 포함되지 않기 때문에 메소드 오버로딩과는 관련 없음.
- 메소드 오버로딩은 하나의 클래스 내에서의 기능이며 파라미터는 타입, 순서, 개수를 달리하여 구분할 수 있어야 함.
- 자바의 메소드 시그니처 : 정의된 메소드들을 구분할 수 있는 방법
- 메소드의 바인딩 : 메소드를 호출 했을 때 그 실행 메소드가 정의되어 있는 그 정의 코드를 수행하는 연결
- 정적 바인딩 (static) : 프로그램 시작 시점에 바인딩이 고정됨
- c언어. 그러므로 메소드의 이름을 동일하게 할 수 없음.
- 동적 바인딩 (Dynamic) : 프로그램이 실행이 되다가 결정됨. 프로그램이 실행되다가 해당 메소드가 호출 되는 시점에 연결
- 자바 / 동적 바인딩이 진행되기 때문에 메소드 오버로딩이 가능
- 정적 바인딩 (static) : 프로그램 시작 시점에 바인딩이 고정됨
'☕JAVA > 🐣 강의 [JAVA]' 카테고리의 다른 글
[JAVA][기초] Java 메모리 모델 (0) | 2022.10.05 |
---|---|
[JAVA][기초] 생성자 Constructor (0) | 2022.10.05 |
[JAVA][기초] 연산자 (0) | 2022.10.04 |
[JAVA][기초] 클래스의 이해3 - 필드의 정의 (2) Data Type 의 이해 (0) | 2022.09.30 |
[JAVA][기초] 클래스의 이해2 - 필드의 정의 (1) 변수 Variable (0) | 2022.09.29 |