06. this 레퍼런스
07. 객체의 치환
08. this( )
# 메소드 형식
º 메소드
- 메소드는 함수이며, 함수 만드는 방법과 동일
- 모든 메소드는 반드시 클래스 안에 있어야 함(캡슐화 원칙)
º 메소드 구성 형식
- 접근 지정자
-> public, private, protected, default(접근 지정자 생략된 경우)
- 리턴 타입
-> 메소드가 반환하는 결과값의 데이터 타입
- 메소드 이름, 인자, 코드
# 인자 전달 - call by value
º 자바의 메소드 호출 시 인자 전달 방식
- 값에 의한 호출(call by value)
º 기본 데이터 타입의 값을 전달하는 경우
- 값이 복사되어 전달
- 메소드의 매개 변수의 값이 변경되어도 호출한 인자의 값은 변경되지 않음
º 객체 혹은 배열을 전달하는 경우
- 객체나 배열의 레퍼런스 만이 전달됨
-> 객체나 배열이 통째로 복사되어 전달되는 것이 아님
- 메소드의 매개 변수와 호출한 인자가 서로 객체나 배열을 공유
# 메소드 오버로딩 (overloading)
º 한 클래스 내에서 이름이 같은 두 개 이상의 메소드 작성
- 메소드의 인자 개수 또는 타입이 달라야 한다.
- 메소드의 리턴 타입만 달라서는 안 된다. (컴파일 에러)
// 메소드 오버로딩이 성공한 사례
class MethodOverloading {
public int getSum(int i, int j) {
return i + j;
}
public int getSum(int i, int j, int k) {
return i + j + k;
public double getSum(double i, double j) {
return i + j;
}
}
// 메소드 오버로딩이 실패한 사례
class MethodOverloadingFail {
public int getSum(int i, int j) {
return i + j;
}
public double getSum(int i, int j) {
return (double)(i + j);
}
}
# this 레퍼런스
º this의 기초 개념
- 현재 객체 자기 자신을 가리킴
-> 자기 자신에 대한 레퍼런스
-> 같은 클래스 내에서 클래스 멤버, 변수를 접근할 때 객체 이름이 없으면 묵시적으로 this로 가정
- 같은 클래스의 다른 생성자 호출 시 사용
- 생성자 내에서만 사용 가능 (다른 메소드에서는 사용 불가)
- 반드시 생성자 코드의 제일 처음에 수행
º this의 필요성
- 객체의 멤버 변수와 메소드 변수의 이름이 같은 경우
- 객체 자신을 메소드에 전달 또는 반환할 때
# 생성자 (constructor)
º 생성자는 메소드임.
º 생성자의 이름은 클래스 이름과 동일
º 생성자는 new를 통해 객체를 생성할 때만 호출
º 생성자도 오버로딩이 가능
º 생성자는 리턴 타입을 지정할 수 없음.
º 생성자는 하나 이상 정의되어야 함.
- 개발자가 생성자를 하나도 정의하지 않으면 자동으로 기본 생성자가 정의
- 기본 생성자는 디폴트 생성자 (default constructor)라고도 하며, 컴파일러에 의해 자동으로 생성
-> 클래스에 생성자가 하나라도 존재하면 자동으로 기본 생성자가 생성되지 않음.
'JAVA > 자바 이론' 카테고리의 다른 글
Java | 5-1 상속과 다형성 (0) | 2021.05.25 |
---|---|
Java | 4-3 클래스와 객체 (0) | 2021.04.15 |
Java | 4-1 클래스와 객체 (0) | 2021.04.14 |
Java | 3-2 예외 처리 (0) | 2021.04.12 |
Java | 3-1 반복문과 배열 (0) | 2021.04.12 |