Ex) 필드의 예시
public class Car{
String name;
String color;
int maxSpeed;
int currentSpeed;
}
필드 ( 멤버변수 ) 예시
생성자(Constructor)
new 연산자로 호출되는 특별한 메소드다.
객체 생성시 초기화를 담당한다.
반드시 클래스의 이름과 동일한 이름을 가지고, 반환타입이 없다.
객체 생성할 때만 호출할 수 있다.
메소드(Method)
이름을 가진 수행문의 블록
객체의 고유한 기능을 담당한다.
메소드의 구성은 선언부와 구현부로 구성되어 있다
메소드의 선언부는 접근제어자 반환타입 메소드이름(매개변수타입 매개변수명, 매개변수타입 매개변수명, ...)으로 구성된다.
메소드의 구현부는 해당 메소드가 수행하는 작업에 대한 수행문이 포함되어 있다.
메소드의 구성
메소드 선언부
반환타입(return Type)
메소드 수행결과(출력)인 반환값에 대한 데이터 타입을 적는다
반환값이 없는 경우 반환타입은 void를 적는다
메소드는 오직 한 종류의 값만 반환할 수 있다
메소드의 반환타입이 void가 아닌 경우, 구현부안에는 return 반환값 구문이 반드시 포함되어 있어야 한다.
return문은 구현부(구현부 내의 수행문을 실행한) 실행한 결과로 획득된 값을 호출한 측에게 반환값으로 전달하는 수행문이다.
retrun문이 반환하는 반환값의 타입은 메소드 선언부의 반환타입과 일치해야한다.
// 반환타입이 void일 경우, return문이 필요없음
void 연습1() {
수행문;
수행문;
}
// 반환타입이 int일 경우, return 구문이 반드시 필요함
// 컴파일 에러 발생 - return 구문이 없음
int 연습2() {
수행문;
수행문;
}
// 반환타입이 int일 경우, return 구문이 반드시 필요함.
// 정수값을 반환하는 return 구문이 있음
int 연습2() {
수행문;
수행문;
return 정수값;
}
반환타입이 기본자료형인 경우
- 메소드를 호출한 측에 값이 제공된다.
반환타입이 참조자료형인 경우
- 참조자료형은 배열을 포함한 모든 객체가 반환값으로 반환된다.
- 참조자료형의 반환값은 객체의 주소값이다.
메소드 이름
수행문을 포함하고 있는 코드블록의 이름이다.
그 메소드가 수행하는 작업을 잘 나타내는 이름으로 적는다
메소드명은 보통 동사형이다.
매개변수 (Paramater)
매개변수는 메소드가 작업을 수행하는데 필요한 값들(입력값)을 제공받기 위한 변수다
매개변수는 필요한 값의 개수만큼 변수를 선언해야 하며, 각 변수들은 ,로 구분된다
매개변수의 타입이 같아도 변수의 타입을 생략할 수 없다
int add(int x, int y) { ... } // OK
int add(int x, y) { ... } // 에러, 매개변수 y의 타입이 정의되지 않았음
참조형 타입의 매개변수
- 매개변수에는 지정된 타입의 객체나 배열을 참조할 수 있는 주소값을 입력으로 요구한다.
- 매개변수에 지정된 타입의 객체에 대한 주소값 대신 null값이 입력값으로 전달되어도 상관없다.
- 단) 매개변수에 null이 전달될 수도 있는 경우에는 매개변수에 저장된 값이 null인지, 실제 주소값인지를 꼭 확인해야 한다.
메소드 구현부
메소드를 호출했을 때 수행할 수행문을 포함하는 부분이다.
수행문이 하나도 없는 구현부도 가능하다.
메소드 선언부의 반환타입이 void가 아닌 경우 구현부 안에는 반드시 return 키워드를 사용해서 값을 반환하는 수행문이 존재해야 한다.