Capsulation ( 캡슐화 )

양혜정·2024년 2월 4일
1

Begin_java

목록 보기
52/71
post-thumbnail

캡슐화( = 은닉화)

  • 가장 중요한 데이터 보호 기술

접근제한자(접근지정자, accessmodifier)


- field 의 캡슐화(EnCapsulation == 은닉화)

private String userid;
private String passwd;
private String name;
private String jubun;
private String register_day;

-> 외부에서 사용할 경우 getter, setter 사용
-> 외부에서 사용하지 않을 경우 getter, setter 사용 X

  • 캡슐화 되어진 field를 메소드를 통해 접근하도록 만들기
    -> 외부에서 사용
    -> getter, setter

- setter

set + field name 으로 구성되어 있다.
이때, field name 의 첫글자는 반드시 대문자

-> setFieldname ' { } ' 안에는 fieldname 에 들어갈 조건을 작성해준다.

Ex)
⊙ userid

// === setter === //
public void setUserid(String userid) {
	if(userid == null || userid.isBlank()) {
    // null. 은 불가능 하므로 null 일경우를 먼저쓰기!
    	System.out.println
        ("[경고] 아이디는 공백이 아닌 글자로 입력해주세요");
    } else {
    	// 정규표현식 패턴 작성
		Pattern p = Pattern.compile
        				("^[A-Za-z][A-Za-z0-9]{2,9}$");
       // 패턴이 일치하는지 확인 (참, 거짓)
       Matcher m = p.matcher(userid);
       // 판별하기
       if(m.matches()) {	// 패턴이 일치할 경우
       		this.userid = userid;
       } else {	// 패턴이 일치하지 않을 경우
			System.out.println("[경고] 아이디는 3~10글자로, " 
    + "첫글자는 영문이어야 하고 나머지는 영문 또는 숫자로만 "
    + "이루어져야 합니다.\n");
       }	// end of if~else----------
    }	// end of if~else---------------
}	// end of public void setUserid(String userid)--------

// === getter === //
public String getUserid() {
	return userid;
}	// end of public String getUserid()------------

- getter

get + field name 으로 구성되어 있다.
이때, field name 의 첫글자는 반드시 대문자

-> getFieldname ' { } ' 안에는 fieldname 에 return 값을 작성해준다.

Ex)
⊙ userid

public String getUserid() {
	return userid;
}	// end of public String getUserid()------------

참고

정규표현식 : https://velog.io/@jjoung-2j/%EC%A0%95%EA%B7%9C%ED%91%9C%ED%98%84%EC%8B%9D-Regular-Expression


정리

my.day12.a.capsulation -> Gujikja, Ctrl_gujikja, Main_gujikja

0개의 댓글

관련 채용 정보