[Java 객체지향] 접근 제어 지시자

2022. 1. 25. 19:29·Java & Kotlin
목차
  1. 접근 제어 지시자 (access modifier)
  2. Getter & Setter
  3. 예제 코드

접근 제어 지시자 (access modifier)

  • 클래스, 멤버 변수, 메서드 등 자료형 앞에 제시되어 외부에서의 접근을 제한하여 정보를 보호할 수 있는 키워드이다.
  • 접근 제어 지시자를 이용하여 정보를 보호할 수 있다.
  • public : 외부 어디에서나 사용 가능
  • private : 같은 클래스 내부에서만 사용 가능 ( 외부 클래스 또는 상속 관계에서도 접근 X)
  • protected : 같은 패키지나 상속 관계의 클래스에서 접근 가능, 그 외 외부 클래스 X  
  • default : 같은 패키지 내에서만 접근 가능, 상속 관계라도 패키지가 다르면 X

 

Getter & Setter

  • private으로 멤버 변수를 선언했더라도 public 메서드를 이용해 값을 가져오거나 변경하는 것이 가능하다.
  • get() 메서드만 사용할 수 있으면 read-only
  • 이클립스에서 <우클릭 → Source → Generate Getters and Setters> 해주면 멤버 변수 별로 getter와 setter를 자동으로 만드는 것이 가능하다. (완전 편리)
  • 이름은 달라도 되지만 통상적으로 쓰이는 것은 get & set

 


예제 코드

날짜를 입력받아 유효한 날짜인지 확인하여 출력해주는 프로그램

 

CheckDate.java

- month의 setter에서 달이 유효한지 확인하여 isValid 값을 수정한다.

- isValid 변수는 클래스 내부에서 날짜가 유효한지 체크할 때만 사용하므로 다른 클래스에서 값을 변경할 필요가 없으므로 read-only 필드이다.

- boolean 값은 default로 false값을 갖는다.

package ch10_prac;

public class CheckDate {
	
	private int year;
	private int month;
	private int day;
	private boolean isValid;	// 유효한 날짜인지 체크하는 flag.
	
	public void setYear(int year) {
		this.year = year;
	}
	
	public int getYear() {
		return year;
	}

	public int getMonth() {
		return month;
	}

	public void setMonth(int month) {
		if (month >= 1 && month <= 12) {
			isValid = true;
			this.month = month;
		}
		else {
			isValid = false;
		}
	}

	public int getDay() {
		return day;
	}

	public void setDay(int day) {
		this.day = day;
	}
	
	public void showDate() {
		if (isValid) {
			System.out.println(year + "년 " + month + "월 " + day + "일 입니다.");
		}
		else {
			System.out.println("유효하지 않은 날짜입니다");
		}
	}

}

 

CheckDateTest.java

- CheckDate 클래스의 멤버 변수가 private으로 설정되어 마지막 문장은 수행되지 않는다. (오류 메세지 : not visible)

package ch10_prac;

public class CheckDateTest {

	public static void main(String[] args) {
		
		CheckDate date = new CheckDate();
		date.setDay(25);
		date.setMonth(1);
		date.setYear(2022);
		
		date.showDate();
		
		// date.day = 30;
	}

}

 

수행 결과

1) 유효한 달 (1~12) 값을 입력했을 경우

2022년 1월 25일 입니다.

2) 유효하지 않은 달 값을 입력했을 경우

유효하지 않은 날짜입니다
저작자표시 비영리 변경금지 (새창열림)

'Java & Kotlin' 카테고리의 다른 글

[Java 객체지향] 캡슐화  (0) 2022.01.25
[Java 객체지향] 참조 자료형 변수  (0) 2022.01.25
[Java 객체지향] 생성자  (0) 2022.01.25
  1. 접근 제어 지시자 (access modifier)
  2. Getter & Setter
  3. 예제 코드
'Java & Kotlin' 카테고리의 다른 글
  • [Java 객체지향] this 키워드
  • [Java 객체지향] 캡슐화
  • [Java 객체지향] 참조 자료형 변수
  • [Java 객체지향] 생성자
Sue
Sue
개발 공부 로그
Sue's devlog개발 공부 로그
  • Sue
    Sue's devlog
    Sue
  • 전체
    오늘
    어제
    • 분류 전체보기 (122)
      • Algorithm (2)
      • WEB (8)
      • Java & Kotlin (83)
      • Spring (26)
      • Database (1)
      • Infra (0)
      • Git (1)
      • devlog (1)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Sue
[Java 객체지향] 접근 제어 지시자

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.