본문 바로가기
JAVA-Spring/캡슐화

JAVA 자바 [ 객체 지향 프로그래밍 ] 제 2장 캡슐화

by Super Santj 2019. 7. 15.

    추상화는 내가 저장하고 싶은 대상을 저장 할 수 있도록 설계도를 작성하는것이다. 말그대로 저장하고싶은 대상을 굉장히 자유롭게 저장을 하는것이다라는 의미이다. 하지만 이러한 높은 자유도는 현실세계에서 논리적 또는 이론적으로 말이안되는 데이터를 저장할수있게도 되는데, 가장 큰 문제점이 엉터리 적인 값이 저장이된다는 것이다. 이러한 데이터는 저장할 가치가 없어 오히려 저장 매체의 용량만 차지하게되고 혼란이 올수도있다.

그리하여 추상화는 설계도를 만들수는 있으나 제한적이지 않는 자유도가 굉장히 높은 설계도는 버그 또는 문제점을 야기 하기가 쉽다. 즉 우리는 이러한 문제를 해결할수 있는 방법, 캡슐화에 대해 알아보자.

JAVA 자바 캡슐화는 데이터(멤버 변수에 저장된 값)을 보호, 은닉하는 목적이 주 된 목적이다.

마치 오라클의 제약조건과 의미가 굉장히 비슷하고, JAVA 자바의 캡슐화는 올바른 값만 저장이 될 수 있도록 처리해주는 방법을 의미한다.

** 중요 **

캡슐화를 적용 시키는 방법_

1. 모든 멤버 변수 앞에 private를 붙이면 엉터리 값의 저장을 막을 수 있다.

붙이고 나면 발생할수 있는 에러 내용은 ~ is not visible. (멤버 변수는 외부에서 접근이 안되고 데이터 저장도 안된다.)

2. 각각의 멤버 변수에 직접 접근이 불가하여, 간접적인 접근방식(메소드를 통하여)으로 데이터 값을 넣어주어야 하고, 저장할수밖에 없다.

Setter, Getter Method를 만들어 주면(작성하면) 된다.

Setter Method => 외부에서 값을 입력 받아서 저장시킬때 사용하는 메소드 이다. [주로 웹 프로그래밍에서 사용]

형식 _   (매개변수 O, 반환값 X)

public void set 멤버변수이름(자료형 매개변수명){

    멤버변수 = 매개변수명;

}

 

Getter Method => 멤버변수에 저장된 값을 불러와서 출력할때 사용.

형식 _

public 멤버변수의 반환형(String, int, double,,,) get 멤버변수명(){

    return 멤버변수명;

}

여기서 public은 외부에서 접근을 허락해주는 메소드 이다.  

** 중요 **

그리고 이렇게 복잡하게 입력을 하게되는 이유는 말그대로 값의 입력 범위를 지정해주기위함이다. 범위를 정해주는 방법은 조건문은 if문을 이용 작성할수가 있다.

자바는 메소드를 만들어주고 메소드를 호출해주면 되는것이다. 이것이 곧 자바를 잘하는 지름길이다.

댓글