티스토리 뷰

Java 공부일지

접근제어

AleXtep 2018. 3. 3. 15:58

이번시간에는 접근제어(access control)에대해서 공부해보도록 합시다. 접근제어란 무엇이냐..? 만약 어느 회사에서 직원의 신상정보에 관한 클래스가 있다고 생각해봐요. 누구나 그 클래스에 접근하여 신상정보를 변경하거나 (특히 주민번호, 계좌번호 등등)하면 엄청난 문제가 일어날 수 있습니다. 그래서 클래스의 멤버(필드와 메소드)에 접근하는것에 있어서 제어하는것을 접근제어 라고합니다. 이런 접근제어는 과연 어떤것들이 있을까요? 우리가 많이 보았던 대표적인 public, private, protected, 그리고 아무것도 적히지 않은 default가 있습니다. 


1.public - 멤버앞에 붙게되면 그 멤버는 누구나 자유롭게 접근할수 있는 멤버가 됩니다.

2.private - 전용이라는 의미로 그 해당 클래스 안에서만 접근가능한 멤버가 됩니다.

3.protected - 부모클래스와 자식클래스만이 접근할수 있는 멤버가 됩니다.(상속에서 다시 이야기해 봅시다!)

4.default - 사실 지금까지 가장 많이본 것인데 앞에 아무것도 적혀있지 않을때! 그때는 동일한 패키지 안에서만 접근가능한 멤버가 됩니다. 




위를 보시면 A라는 이름의 클래스를 생성하고 Test클래스의 메인메소드 안에 obj를 참조변수로 갖는 객체를 생성하여 그 멤버들의 값을 설정하였습니다. 하.지.만....

a는 public이므로 누구나 자유롭게 접근할수 있기에 상관이 없고, b역시 default 임으로 같은 패키지 안에서는 접근가능함으로 역시 상관이 없지만, c는 private 가 앞에 붙었음으로 동일한 클래스 내에서만 접근이 가능합니다. A라는 클래스를 벗어나게 되면 접근 할 수 없게 되는 것 이죠. (사실 패키지를 만들지 않았기에 default패키지에 같이 속하게 됩니다)


앞에서는 필드에대해서만 언급을 하였지만, 메소드 역시 마찬가지 입니다. 여기까지 접근 제어 access control에 대해서 공부하도록 합시다 !!!

'Java 공부일지' 카테고리의 다른 글

생성자(Constructor)  (0) 2018.03.05
접근자와 설정자  (0) 2018.03.03
String 클래스 사용  (0) 2018.03.02
UML  (0) 2018.03.02
메소드 오버로딩  (0) 2018.03.02
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함