Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- java변수
- 시스템 환경 변수 편집
- 인텔리제이 한글 깨짐 해결법
- 상수
- break문
- for문
- Thread
- 인텔리제이 기초 설정
- 집합관계
- While
- OPP개념
- function
- 연관관계
- 반복문
- multi-threading
- IntelliJ IDEA
- Java
- continue문
- 형 변환
- 메서드 오버로딩
- Java데이터 타입
- 접근제어지시자
- 자바 멀티스레딩
- JAVA기초
- 컴파일
- this예약어
- JAVA객체지향
- 포함관계
- 생성자
- 메서드
Archives
- Today
- Total
최원종의 개발 블로그
접근 제어 지시자 (access modifier) 본문
접근 제어 지시자 4가지
public : 어디서나 접근 가능
default : 같은 패키지 내에서만 접근 가능
private : 해당 클래스 파일 내부에서만 접근 가능
protected : 상속을 배운 후 이해하기
정보 은닉이란?
클래스 내부에서 사용할 변수나 메서드를 private으로 선언해서 외부에서 접근하지 못하도록 하는 것
실습 코드
package ch09;
//객체를 설계하는 도면이라고 생각
public class Bank {
//** 접근 제어 지시자 (public, default, private)
//public 누구나 접근 가능
String name;
//default (아무것도 쓰지 않음)
int balance;
//private
private String accountNumber;
}
package ch09;
public class Account {
//default = 같은 패키지 내에서만 접근 가능
String name;
//내 클래스 파일 내부에서만 접근 가능
private int balance;
//나의 멤버 변수 balance의 값만 리턴하는 기능
public int getBalance() {
return balance;
}
//입금하다
public void deposit(int money) {
balance += money;
}
//출금하다
public void withDraw(int money) {
balance -= money;
}
//현재 잔액 출력 기능
public void showInfo() {
System.out.println("현재 잔액 : " + balance + " 원 ");
}
}
접근 제어 지시자 문법을 사용해야 하는 이유
package ch09;
public class AccountMainTest {
public static void main(String[] args) {
Account account1 = new Account();
account1.deposit(10_000);
account1.withDraw(6_000);
account1.showInfo();
//접근 제어 지시자 문법, 왜 사용하는가?
//신입 개발자가 실수로 코드를 잘못 작성하는 경우
//우리는 객체의 행위인 입금하는 기능을 만들어 두었는데
//실수로 바로 멤버 변수에 접근해서 값을 수정 한다면...
//account1.balance = 10_000; < -- private 때문에 접근 불가
account1.showInfo();
//실수할 가능성이 있다.
//balance 멤버 변수에 외부에서는 안보이게 접근을 차단해보자.
//private
//만약 사용하는 측에서 현재 잔액의 값만 리턴받고 싶다면?
int currentMoney = account1.getBalance();
System.out.println("currentMoney : " + currentMoney);
}//end of main
}//end of class

'Java > Java 객체지향' 카테고리의 다른 글
| get, set 메서드 (0) | 2026.02.26 |
|---|---|
| this 예약어 사용 방법 3가지 (0) | 2026.02.25 |
| 객체지향 프로그래밍(객체간 상호작용) (1) | 2026.02.25 |
| 생성자 (0) | 2026.02.24 |
| 메서드 (0) | 2026.02.24 |
