본문 바로가기

STUDY/국비과정

[JAVA 웹 개발 공부] 국비지원 10일차 - 접근제어자, 접근자와 설정자, 메서드 오버로딩, 생성자

접근제어자

 

접근 제어자는 멤버 또는 클래스에 사용되어, 해당하는 멤버 또는 클래스를 외부에서 접근하지 못하도록 제한하는 역할을 한다.

클래스나 멤버변수, 메서드, 생성자에 접근 제어자가 지정되어 있지 않다면, 접근 제어자가 default임을 뜻한다.

제어자
범위
대상
public
접근 제한이 전혀 없다.
클래스, 메서드, 멤버변수
protected
같은 패키지 내에서, 그리고 다른 패키지의 자손 클래스에서만 접근이 가능하다.
메서드, 멤버변수
(default)
같은 패키지 내에서만 접근이 가능하다.
클래스, 메서드, 멤버변수
private
같은 클래스 내에서만 접근이 가능하다.
메서드, 멤버변수

접근자와 설정자

 

클래스 안에 변수를 선언할 때 private을 붙이게 되면 외부로부터의 접근이 차단된다.

이 경우에 접근자와 설정자를 통해 데이터 값을 읽어 외부로 전달해 줄 수 있다.

*접근자(getters)

필드값을 반환한다.

get필드이름()

*설정자(setters)

필드값을 설정한다.

set필드이름()

+) 이클립스 getters setters 자동완성

클래스안 우클릭 > Source > Generate Gatters and Setters > Select All > Generate

메서드 오버로딩

 

1. 오버로딩

한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것을 '메서드 오버로딩(method overloading)' 또는 간단히 '오버로딩' 이라 한다.

2. 오버로딩의 조건

(1) 메서드 이름이 같아야 한다.

(2) 매개변수의 개수 또는 타입이 달라야 한다.

생성자

 

1. 생성자(Constructor)

생성자는 실제로 객체를 생성하는 메서드는 아니다.

생성자는 인스턴스(객체)가 생성될 때 호출되는 '인스턴스 초기화 메서드'이다.

생성자의 이름은 클래스 이름과 같다. 일반 메서드와 아주 흡사하지만 반환값(리턴값)을 가지지 않는다.

생성자는 주로 필드에 초기값을 부여할 때 많이 사용되지만 특별한 초기화 절차를 수행할 수도 있다.

 

+) 이클립스 Constructor 자동완성

클래스안 우클릭 > Source > Generate Constructor using Fields > Select All > Generate

 

 

2. 기본 생성자(default constructor)

기본 생성자는 매개 변수가 없는 생성자이다. 만약 생성자를 하나도 정의하지 않으면 자바 컴파일러는 기본 생성자를 자동으로 만든다. 기본 생성자에서는 자동적으로 모든 멤버 변수들을 기본값으로 초기화한다.

기본 생성자에서는 필드가 int와 같은 수치형 변수라면 0으로, 참조형 변수라면 null로, 논리형 변수라면 false로 초기화된다.

생성자를 하나라도 선언하면, 컴파일러는 기본 생성자를 추가하지 않는다.

 

 

this, this()

 

같은 클래스의 멤버들 간에 서로 호출할 수 있는 것처럼 생성자 간에도 서로 호출이 가능하다.

생성자의 이름으로 클래스 이름 대신 this를 사용한다.

1. this

this는 현재 객체 자신을 가리키는 참조 변수이다. this는 컴파일러에서 자동으로 생성한다.

생성자에서 매개 변수 이름과 필드 이름이 동일한 경우에 혼동을 막기 위해서 사용한다.

2. this()

this()는 다른 생성자를 의미한다. 흔히 가장 복잡한 생성자를 먼저 작성한 후에, 다른 생성자는 이 복잡한 생성자를 호출하게끔 하는데, 이런 경우에 this()가 사용된다.

this()는 반드시 생성자 안에서만 호출이 가능하며, 반드시 첫번째 문장이어야 한다. 또한 this()는 다른 생성자를 호출할 때만 사용하여야 한다.