개발자 데뷔!

07. [Java] 정보은닉 with 접근제어자 (public&private) 본문

프로그래밍 언어/Java

07. [Java] 정보은닉 with 접근제어자 (public&private)

물꼮이 2022. 1. 31. 21:15

 

정보은닉
; information hiding

접근제어자(private, public)을 통해 이루어짐

접근 제어자 

: (access modifier)

 객체지향 프로그램에서는, 예약어를 사용해 

클래스 내부의 변수, 메서드, 생성자 등에 대한 

접근권한을 지정할 수 있다. 

 

접근제어자의 종류

접근 제어자 설명
public 외부 클래스 어디에서나 접근(변경) 가능
private 같은 클래스 내부에서만 접근(변경) 가능 (외부클래스 X)
protected 같은 패키지 내부 & 상속관계의 클래스 에서만 접근 가능 
X (아예 없는경우) (default), 같은 패키지 내부에서만 접근 가능 

 

 private은 같은 클래스 내부에서만 접근 가능하기 때문에,
 해당 클래스의 외부에서, ~.~.~ ..등 도트연산자(.)를 통한 접근하는 방식은  사용불가 하다 

 


Getter, Setter

getter = get() 메서드
setter = set() 메서드 

private으로 선언해 도트연산자(.)로 접근할 수 없는 변수들의 값을 가져오기 위해,

 class 내부에 선언하는 값을 전달해주는 메서드 

package hiding;

public class Student {
	
	int studentID;
	private String studentName;
	int grade;
	String address;
	
	// get : 값을 가져옴
	public String getStudentName() {
		return studentName;
	}

	// set : 값을 지정함
	public void setStudentName(String studentName) {
		this.studentName = studentName;
	}

}

* 이때, get(), set() 메서드 자체는 public 으로 선언해야 함!

* get(), set()메서드는, 멤버변수에 옳지 못한 값이 들어가는 상황을 막기 위해 사용된다.

 

getter, setter 자동생성하는 방법

모든 getter, setter는 eclipse 환경에서 자동으로 만들 수 있다. 

마우스 우클릭 > source > Generate Getters and Setters 클릭 > 메서드 생성할 멤버변수 선택 > ok

 


참조변수 사용

  • 참조변수.멤버변수
  • 참조변수.메서드

위처럼 도트(.)연산자를 사용해, 인스턴스의 멤버변수와, 메서드에 접근 할 수 있다.

 

'프로그래밍 언어 > Java' 카테고리의 다른 글

09. [Java] 객체 간 협력  (0) 2022.01.31
08. [Java] this 예약어  (0) 2022.01.31
06. [Java] 인스턴스 생성 (new)  (0) 2022.01.31
05. [Java] 클래스의 기본구조 & Main 함수 사용  (0) 2022.01.31
04. [Java] 연산자  (0) 2022.01.31