접근 제어 지시자 (accesss modifier) 4 tpye
● 클래스 외부에서 클래스의 멤버 변수, 메서드, 생성자를 사용할 수 있는지 여부를 지정하는 키워드
● private : 같은 클래스 내부에서만 접근 가능 (외부 클래스, 상속 관계의 클래스에서도 접근 불가)
● 아무것도 없음 (default) : 같은 패키지 내부에서만 접근 가능 (상속 관계라도 패키지가 다르면 접근 불가)
● protected : 같은 패키지나 상속 관계의 클래스에서 접근 가능하고 그 외 외부에서는 접근 할 수 없음
● public : 클래스의 외부 어디서나 접근 할 수 있음
get()/ set() 메서드
● privaste 으로 선언된 멤버 변수 (필드)에 대해 접근, 수정할 수 있는 메서드를 public 으로 제공 get() 메서드만 제공되는 경우 read-only 필드
● 이클립스에서 자동으로 생성해주는 단축 기능이 존재한다.
정보 은닉
● prvate으로 제어한 멤버 변수도 puvlic 메서드가 제공되면 접근 가능하지만 변수가 public으로 공개되었을 때 보다 private 일때 각 변수에 대한 제한을 public 메서드에서 제어 할 수 있다.
● 객체 지향 프로그램에서 정보 은닉은 필요한 외부에서 접근 가능한 최소한의 정보를 오픈함으로써 객체의 오류를 방지하는 클라이언트 객체가 더 효율적으로 객체를 활용 할 수 있도록 해준다.
package ch06;
public class BankMainTest {
// 메인 함수
public static void main(String[] args) {
Bank bank = new Bank();
// System.out.println(bank.balance);
// bank.showinfo();
// System.out.println(bank.showifo); <-- 오류 발생(showinfo 사용)
bank.deposit(10_000);
bank.whitdraw(5_000);
bank.showinfo();
// 신입이 실수를 한 코드
// bank.balance = 100_000;
// bank.showinfo();
} // end of main
} // end of class
package ch06;
public class Bank {
// 정보 은닉
// 접근 제어 지시자 private - 자기 자신에서만 사용 가능
// 내부 접속 막을 때 프라이빗 사용
// String name; // 계좌 번호
// int balance; // 계좌 잔액
private String name; // 계좌 번호
private int balance; // 계좌 잔액
// 입급
public void deposit(int money) {
this.balance += money;
}
// 출금 - 도전 (잔액 0원인데 출금 요청)
public int whitdraw(int money) {
// 메서드 영역 안에 사용하는 변수는 지역 변수라고도 한다.
int result = 0;
this.balance -= money;
result = money;
return result;
}
// 잔액 확인
public void showinfo() {
System.out.println("현재 계좌 잔액은 " + balance + "입니다.");
System.out.println("현재 계좌 잔액이 부족합니다.");
}
} // end of class
if(this.balance<0){this.balance=0;}else{this.balance=this.balance-money;
'Java' 카테고리의 다른 글
[java] 대중교통 이용 프로그램 만들기 (0) | 2023.08.03 |
---|---|
[java] static (0) | 2023.08.03 |
[java] 객체와 객체간의 상호작용 (0) | 2023.07.31 |
[java] 생성자 (0) | 2023.07.31 |
[java] 인스턴스화 생성과 힙 메모리 (0) | 2023.07.31 |