Java - 접근 제한자

컴퓨터/Java

728x90
반응형

접근 제한자란? 

객체지향 프로그램언어인 Java에서는 Class를 통해 객체화 또는 인스턴스화를 시켜 프로그램 안에서 데이터들을 독립된 객체들로 바라보며 프로그래밍을 합니다. 이렇게 독립화된 객체들 안에는 각각의 멤버 변수들과 메서드들이 들어있습니다. 

이 독립화된 객체안의 멤버 변수와 메서드들을 사용하는 범위를 그 객체에만 국한할 것인지 외부에서도 사용할 것인지 등의 개념들을 적용하기 위해서 접근 제한자는 필수적입니다. 접근 제한자가 존재함으로 조금 더 근본적인 객체지향의 프로그래밍을 할 수 있게 됩니다.

 

public - 모든 접근을 허용함

public 키워드를 사용하면 모든 접근을 허용한다는 의미를 가지게 됩니다. 즉 객체화 또는 인스턴스화 시킨 데이터의 내용을 어떠한 곳에서도 사용할수 있게 됩니다.

 

private - 모든 접근을 허용하지 않음 (내부에서만 사용)

private 키워드를 사용하면 모든 접근을 허용하지 않습니다. 즉 객체화 또는 인스턴스화 된 데이터 내부에서만 사용이 가능합니다.

 

protected - 내부와 상속관계에서만 사용 

protected 키워드는 private와 비슷한 특성을 가지고 있습니다. 상속의 개념이 적용되는 하위 객체에서도 사용할수 있게 됩니다.

 

default - 기본 제한자로 같은 패키지 내에서만 접근이 가능합니다.

default키워드는 아무런 접근제한자를 설정하지 않았을 때 생기는 키워드로 Java 프로그래밍 안에서 동일한 패키지안에서만 적용되는 접근 제한자 키워드입니다. public 보다 한 단계 낮은 개념이라 생각하시면 됩니다.

 

활용 예시

본문에서는 아직 많은 내용을 배우지 않았기 때문에 default와 private의 차이점에 대하여 알아보도록 하겠습니다.

  • class 정의
package 접근제한자; 
public class Man {

	private String Gender = "남자";
	private String Addreass = "대한민국 서울";
	
	void intro() // defualt 접근 제한자 즉 같은 패키지 내부에서 사용 가능.
	{
		System.out.println("저의 성별은 "+Gender+"이며 사는 곳은 " +Addreass + "입니다.");
	}
	
}
  • 객체화 또는 인스턴스화 밑 독립된 객체의 데이터에 접근해보기
package 접근제한자;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Man man = new Man();
		man.Gender = "여자"  //error 발생! private으로 내부에서만 변경 가능
		man.Address = "부산 해운대구" // 동일 함
		man.intro(); // default 제한자로 같은 패키지 (접근제한자 패키지)이므로 실행 가능
	}

}

이런식으로 접근 제한자를 통해 독립된 객체 안의 정보들을 보호할 수 있게 됩니다.

 

 

728x90
반응형

'컴퓨터 > Java' 카테고리의 다른 글

Java - 얕은 복사와 깊은 복사  (0) 2021.07.21
Java - 오버로딩과 오버라이딩  (0) 2021.07.19
Java - class의 상속의 개념(extends)  (0) 2021.07.16
Java - Class 생성자  (0) 2021.07.08
Java - Class  (0) 2021.07.05

Commnet

G91개발일지

Gon91(지구일)

91년생 공학엔지니어의 개발일지

TODAY :

YESTER DAY :

TOTAL :