Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
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
more
Archives
Today
Total
관리 메뉴

햄발

접근 제어 지시자 본문

Java

접근 제어 지시자

햄발자 2024. 4. 17. 11:16

 

 

 

접근 제어자  - 정보 은닉, 캡슐화

객체의 각각의 상태값은 직접 변수를 통해서 변경하는 것이 아닌 기능(행위, 메서드)을 통해서 변경하게 설계 해야 한다.

 

접근 제어 지시자

클래스 외부에서 클래스의 멤버 변수, 메서드, 생성자를 사용할 수 있는지 여부를 지정하는 키워드

 

  • public           →      어디에서든 접근 가능 함.
  • default          →     같은 패키지 내에서 접근 가능
  • protected         상속 배운 이후
  • private          →     해당 .java 안에서만 접근이 가능하다.

 

예시

package basic.ch10;

// 은행
public class Bank {

// 아무것도 지정하지 않으면 default 제어 지시자이다.
// private 클래스 안에서만 사용이 가능하다.
String name;
int balance;   

// 입금하다. 
public void deposit(int money) {
balance = balance + money;
showInfo();
}

// 출금하다. 
public int withdraw(int money) {
// 방어적 코드를 작성 
if(balance < money) {
System.out.println("잘못된 요청입니다.");
return 0;
}
balance = balance - money;
showInfo();
return money;
}

// 현재 은행의 총 잔액을 출력 하다. 
public void showInfo() {
System.out.println("현재 잔액은 : " + this.balance + " 입니다.");
}
}

 

package basic.ch10;

public class BankTest {

// 코드의 시작점 
public static void main(String[] args) {

Bank bank1 = new Bank();
bank1.name = "우리은행";
bank1.deposit(10_000); // deposit 리턴타입 --> void --> 값을 받을 수 없음? why?
int getMoney = bank1.withdraw(10_000); // withdraw 리턴 타입 --> int --> 값을 받을 수 있음  
System.out.println(">>>>>> 출금 >>>>>>>>>");
System.out.println("금액 : " + getMoney);


} // end of main 

} // end of class 

'Java' 카테고리의 다른 글

static 변수  (0) 2024.04.19
this  (0) 2024.04.19
생성자 (constructor)  (0) 2024.04.16
객체지향 패러다임  (0) 2024.04.16
RunTime Data Area  (0) 2024.04.16