[Java]접근제어자/종류/사용 이유

우니·2023년 7월 23일
0

접근제어자란?

자바의 접근제어자는 클래스, 메소드, 인스턴스 및 클래스 변수를 선언할 때 사용됨으로써 외부에서 접근하지 못하도록 제한하는 역할을 합니다.

접근 제어자는 4가지 종류가 있는데

1) public
누구나 접근할 수 있도록 할때 사용

2) protected
같은 패키지 내에 있거나 상속받은 경우에만 접근 가능

3) package-private
아무런 접근 제어자를 적어주지 않을 때이며, 같은 패키지 내에 있을 때만 접근 가능

4) private
해당 클래스 내에서만 접근 가능

또한, 클래스와 멤버에 따라 사용할 수 있는 접근제어자의 종류가 다릅니다.

클래스 - public, package-private
메서드, 멤버번수 - public, protected, package-private, private

클래스의 접근 제어자

위에서 언급한대로 클래스를 정의할 때 사용할 수 있는 접근제어자는 public, package-private 두가지입니다.

public 클래스

모든 클래스에서 해당 클래스에 대한 접근이 가능합니다

package-private

같은 패키지 안의 클래스에서만 접근이 가능합니다.

메서드의 접근 제어자

메소드를 정의할때 사용할 수 있는 접근제어자는 public, protected, packate-private, private 4가지 입니다.

public 메서드

모든 클래스에서 접근이 가능합니다.

private 메서드

같은 클래스 안에 있는 멤버들만 접근이 가능합니다

protected 메서드

같은 패키지 안의 모든 클래스와, 다른 패지키의 자식 클래스에서 접근이 가능합니다

package-private

같은 패키지 안의 클래스에서만 접근이 가능합니다

접근제어자 사용 이유

프로그램은 개발자가 프로그래밍 한대로 돌아가게 하는것을 목적으로 한다. 그런데 객체를 사용하는 사용자 입장에서 객체 내부적으로 사용하는 변수나 메서드에 접근하게 되면 개발자가 의도하지 못한 오동작을 일으킬 확률이 높다. 그렇기에 접근제어자를 사용해서 로직이 망가지는것을 방지하는 것이다.
또한, 프로그램의 규모가 커질수록 접근제어자를 사용함으로써 코드의 관리가 편리해진다. 변수나 메서드가 private하면 클래스의 외부에서 접근할 수 없다는것을 알고 있다. 그렇기에 코드를 수정할때 더 적은 범위에만 신경을 쓸 수 있다.

0개의 댓글