JAVA/자바 이론 / / 2021. 4. 14. 17:12

Java | 4-2 클래스와 객체

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
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유