개발/JAVA

[JAVA] 자바 접근 제한자 private

윤_ve 2021. 2. 8. 23:22

흔히 생성자, 메서드 ,변수 선언등을 할때 사용하는것에는 public과 private가 있다.

이를 접근제한자라고 하는데 말 그대로 해당 제한자가 붙은 위치에 접근을 허락하기도 하고 접근을 막으려고 숨기기도 하는 역할을 한다.

 

이런식으로 변수선언을 할때 앞에 넣어 줄 수 있는데, 위의 그림에서의 class Car1안에서만 해당 변수들을 사용할 수 있따는 말이다. 이러한 filed들을 private로 감춰 놓는 것을 캡슐화라고 한다. 

 

캡슐화는 객체지향의 언어의 특징이라고 할 수 있는데 목적은 정보의 보호에 있다. 왜냐하면 모든 정보가 많이 노출이 되면 이 코드를 보고, 또 재사용 해야하는 개발자나, 실제 사용자가 혼란을 겪을 수 있기 때문이다. 가령 한번만 쓰고 말 코드들은 private처리를 해서 다른 곳에서의 사용이 불가능 하게 하여 쓸데 없이 무분별하게 반복적으로 사용하는 것을 막을 수 있다. 

 

만약 변수를 private로 설정 한 뒤 다른 곳에서 사용하고 싶다면 public 메소드를 이용해 해당 변수를 사용할수 있게 한다.

위와 print()라는 메서드를 만들어 private변수들을 콘솔창에 출력되게 한 뒤 메인 메서드에 해당 print메서드를 불러와 사용하면 private변수 일지라도 다른곳에 사용할 수 있다.

 

또는, getter setter를 만들어 private변수를 읽고 사용할 수 있다.(getter만 있으면 읽기전용이 된다.)

 

해당 변수들을 생성자에 원하는 형태로 집어넣어 호출 할 수 있다. 이렇게 private를 활용하면 무분별한 사용을 막으면서도 필요할 때 언제든지 해당 변수를 사용할 수 있는 장점이 있다.