본문 바로가기

2021 정보처리기사/참고자료: 정보처리기사

객체 지향 개발의 특성, 캡슐화

728x90
반응형

 

 

  객체지향개발(Object Oriented Programming)의 특성:  캡슐화

객체지향개발의 특성은 크게 네 가지가 있고, 이중에서 캡슐화(Encapsulation)에 대해서 알아본다.



캡슐화(Encapsulation) 


- 관련있는 변수와 함수를 하나의 클래스로 묶고 외부에서 쉽게 접근할 수 없도록 은닉하는 것이 핵심이다 (장점: 정보은닉)

- 객체에 직접적인 접근을 막고, 외부에서 내부의 정보에 직접 접근하거나 변경할 수 없고, 객체가 제공하는 필드와 메소드를 통해서만 접근할 수 있다.

- 정보은닉의 장점은 정보손상 및 오용방지, 데이터가 변경되어도 다른 객체에 영향을 주지 않기 때문에 독립성이 좋고, 처리된 결과사용으로 이식성이 좋고, 모듈화가 잘 되며 유지보수나 확장시 오류의 범위를 최소화 할 수 있는 등등 다양하다.


  정보은닉이 뭘까? JAVA의 캡슐화 예제를 통해 이해하기 (출처: 라다 IT)
public class member {

	private String id;
	private String pw;
	private int age;

	//getter
	public String getId() {
		return id;
	}
	public String getPw() {
		return pw;
	}
	public int getAge() {
		return age;
	}

	//setter
	public void setId(String id) {
		this.id = id;
	}
	public void setPw(String pw) {
		this.pw = pw;
	}
	public void setAge(int age) {
		this.age = age;
	}
}
위의 예제는 일반적으로 회원관리시 회원정보를 캡슐화하여 회원정보를 은닉하여 보안을 높이는 효과가 있습니다.
member 클래스의 모든 변수는 private으로 접근제어자 선언을 해놓았기 때문에 member 클래스 내부에서만 접근이 가능합니다. 접근을 위해 setter와 getter 라는 장치를 만들어 내부에서 접근가능합니다. 입력할때는 set가져올때는 get을 사용하여 작동할 수 있음을 확인할 수 있습니다.

※ member 클래스 내부에 있는 변수들은 접근제어자가 private으로 선언이 되어있기 때문에 member 클래스 내부에서만 접금이 가능합니다.

☞ setter : member클래스내에 있는 변수(id)에 회원의 아이디값을 저장
☞ getter : member클래스내에 있는 변수(id)에 저장되어 있는 회원의 아이디값을 리턴

 

 

 

도움이 된 사이트
라다it

 

 

 

728x90