메소드
: 객체의 동작에 해당하는 실행 블록 void methodName() {....}
- 필드를 읽고 수정
- 다른 객체를 생성해 다양한 기능을 수행
- 객체간의 데이터 전달의 수단
- 외부로부터 매개값을 받을 수 있음
- 실행 후 어떤 값을 리턴
메소드 선언
메소드 선언은 선언부(리턴타입, 메소드 이름, 매개변수 선언)와 실행블록으로 구성
ⓐ 리턴타입 : 메소드는 리턴값이 있을 수도 있고 없을 수도 있는데,
실행 후 결과를 호출한 곳에 넘겨줘야 할 경우 리턴값이 있어야 한다.
POWERON의 경우 전원만 키면 되기 때문에 리턴값이 없다. ->저장할 변수가 없어도 됨
-> void
계산기의 ADD의 경우 값을 더한 결과값이 있어야 하기 때문에 리턴값이 있다. -> 결과값을 저장할 변수 필요
-> 리턴값의 타입(int, double, ...)
ⓑ 메소드 이름
- 숫자로 시작하면 안됨, $와 _ 제외한 특수문자 X
- 소문자로 작성(관례)
ⓒ 매개변수 선언
- 메소드가 실행할 때 필요한 데잍를 외부로부터 받기 위해 사용됨
ⓓ 매개변수의 수를 모를 때
-> 매개변수를 배열 타입으로 선언
sum1()과 sum2() 메소드의 실행문이 완전 일치
=> 매개변수의 선언방법만 다를 뿐 매개변수의 타입이 배열이므로 처리내용이 같음
리턴문
ⓐ 리턴값이 있는 메소드
: 메소드 서언에 리턴타입이 있는 메소드는 반드시 리턴문을 사용해서 리턴문을 지정해야함
: 리턴문이 실행되면 메소드 즉시 종료
: Unreachable code 오류 >> return 이후에 실행문이 오면 발생( return 이후의 실행문은 실행 x)
ⓑ 리턴값이 없는 메소드(void)
: 리턴값이 없는 메소드에서도 return문을 사용할 수 있다( = 종료)
메소드 호출
- 메소드는 클래스 내, 외부의 호출에 의해 실행된다.
- 클래스 내부의 다른 메소드에서 호출 : 메소드 이름으로 호출
- 클래스 외부에서 호출 : 원 클래스로부터 객체를 생성한 뒤, 참조 변수를 이용해서 메소드를 호출해야 함
( 객체가 존재해야 메소드도 존재하기 때문에)
ⓐ 객체 내부에서 호출
ⓑ 객체 외부에서 호출
객체 생성 > .(도트 연산자)를 사용해 메소드 호출
메소드 오버로딩
하나의 메소드 이름으로 여러 기능을 담음
조건 : 매개변수의 타입, 개수, 순서 중 하나가 달라야 함
( 매개변수의 타입과 개수, 순서가 똑같을 경우 매개변수 이름만 바꾸는 것은 오버로딩이 아님)
매개값을 다양하게 받아 처리할 수 있도록 하기 위해서 사용
1. 사각형의 넓이를 구하는 방법 오버로딩(직사각형, 정사각형)
인스턴스멤버와 this
* 인스턴스 멤버 : 객체를 생성한 후 사용할 수 있는 필드 & 메소드
필드와 메소드는 객체에 소속된 멤버이기 때문에 객체없이는 사용할 수 없음
객체 외부에서 인스턴스에 접근하기 위해 참조변수를 사용한다면,
객체내부에서도 인스턴스 멤버에 접근하기 위해 this를 사용함
> 주로 생성자와 메소드의 매개변수 이름이 필드와 동일한 경우, 인스턴스 멤버인 필드임을 명시하고자 할 때 사용됨
'STUDY > JAVA' 카테고리의 다른 글
JAVA - 패키지, import문 (0) | 2022.04.18 |
---|---|
JAVA - 정적멤버와 static & 싱글톤(singleton) (0) | 2022.04.18 |
JAVA - 객체지향프로그래밍(필드, 생성자) (0) | 2022.04.13 |
JAVA - 열거타입 (0) | 2022.04.13 |
JAVA - 향상된 for문 (0) | 2022.04.13 |