| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
- 디자인 패턴
- 오라클
- 정리
- jsp
- Next.js
- 자바
- 스프링
- 서버
- 미니정리
- 코드테스트
- web
- 알고리즘
- 프로그래머스
- JavaScript
- 백엔드
- 프론트엔드
- node.js
- spring
- 스프링부트
- 쿼리
- 자바스크립트
- java
- jpa
- 데이터베이스
- 코드 테스트
- oracle
- MySQL
- 프런트엔드
- BACK-END
- SQL
- Today
- Total
참치코더의 꿈 메모장
2021/08/02 Java - 메소드 본문
메소드 선언은 선언부와 실행부분으로 구성된다.
메소드 선언부를 메소드 시그니처라고 한다.
리턴타입 메소드이름 ( [매개변수 선언, ...] ) {
실행할 코드를 작성하는 곳
}
리턴 타입 : 메소드가 리턴하는 결과의 타입을 표시한다.
메소드 이름: 메소드의 기능이 들어나도록 식별자 규칙에 맞게 이름을 지어준다.
매개 변수 선언 : 메소드를 실행 할 때 필요한 데이터를 받기 위한 변수를 선언한다.
메소드 실행 블록 : 실행할 코드를 작성한다.
메소드 선언
메소드 선언은 선언부(리턴타입, 메소드이름, 매개 변수 선언)와 실행 블록으로 구성된다.
리턴 타입
리턴 타입은 리턴값의 타입을 말한다.
* 메소드는 리턴 값이 있을 수도 있고, 없을 수도 있으나 리턴값이 있을 경우 리턴 타입이 선언부에 명시되어야 한다.
* 리턴값이 없는 메소드는 리턴 타입을 void로 기술하고 리턴값이 있는 메소드는 리턴값의 타입을 기술한다
* 리턴 타입이 있다고 해서 반드시 리턴값을 변수에 저장할 필요는 없다.
메소드 이름
메소드 이름은 자바 식별자 규칙에 맞게 작성하면 된다.
숫자로 시작하면 안되고, $와 _를 제외한 특수 문자를 사용하지 말아야 한다.
관례적으로 메소드 이름은 소문자로 작성한다
서로 다른 단어가 혼합된 이름이라면 뒤이어 오는 단어의 첫 글자는 대문자로 작성한다.
매개 변수 선언
매개 변수는 메소드가 실행할 때 필요한 데이터를 외부로부터 받기 위해 사용된다.
리턴문(return)
메소드 선언에 리턴 타입이 있는 메소드는 반드시 리턴문을 사용해서 리턴값을 지정해야 한다.
만약 return 문이 없다면 컴파일 에러가 발생하고, return 문이 실행되면 메서드는 즉시 종료된다.
return 리턴값;
* return문의 리턴값은 리턴 타입이거나 리턴 타입으로 변환될 수 있어야 한다.
리턴값이 없는 메소드 : void
리턴값이 없는 메소드는 리턴 타입으로 void를 사용한다.
그런데 void로 선언된 메소드에서도 return 문을 사용할 수 있다.
이것은 리턴값을 지정하는 것이 아니라 메소드 실행을 강제 종료시키는 역할을 한다.
return;
메소드 호출
메소드는 클래스 내,외부의 호출에 의해 실행된다
클래스 내부의 다른 메소드에서 호출할 경우에는 단순한 메소드 이름으로 호출하면 되지만,
클래스 외부에서 호출할 경우에는 우선 클래스로 부터 객체를 생성한 뒤
참조 변수를 이용해서 메소드를 호출해야 한다.
객체 내부에서 호출
메소드(매개값, ...)
리턴값이 있는 메소드를 호출하고 리턴값을 받고 싶다면
타입 변수 = 메소드(매개값, ...);
이때 변수 타입은 메소드 리턴 타입과 동일하거나, 자동 형변환이 될 수 있어야 한다.
객체 외부에서 호출
외부 클래스에서 메소드를 호출하려면 우선 객체를 생성해야 한다.
메소드는 객체에 소속된 멤버이므로 객체가 존재하지 않으면 메소드도 존재하지 않기 때문이다.
클래스 참조변수 = new 클래스(매개값, ...);
객체가 생성되었다면 참조 변수와 함께 도트(.) 연산자를 사용해서 메소드를 호출할 수 있다.
도트(.) 연산자는 객체 접근 연산자로 객체가 가지고 있는 필드나 메서드에 접근할 때 사용된다.
메소드 오버로딩
클래스 내에 같은 이름의 메소드를 여러 개 선언하는 것을 메소드 오버로딩이라고 한다.
메소드 오버로딩의 조건은 매개 변수의 타입, 개수, 순서 중 하나가 달라야 한다는 점이다
* 메소드 오버로딩이 필요한 이유는 매개값을 다양하게 받아 처리할 수 있도록 하기 위해서이다.
* JVM은 일차적으로 매개변수의 타입을 보지만 일치하지가 않으면 자동 타입 변환이 가능한지 검사한다.
'JAVA' 카테고리의 다른 글
| 2021/08/10 Java - 인스턴스 멤버와 정적 멤버 (0) | 2021.08.10 |
|---|---|
| 2021/08/04 Java - 토이 프로젝트(게시판 만들기) (0) | 2021.08.04 |
| 2021/08/01 Java - 생성자 (0) | 2021.08.01 |
| 2021/08/01 Java - 필드 (0) | 2021.08.01 |
| 2021/08/01 Java - 객체 지향 프로그래밍 (0) | 2021.08.01 |