언어/JAVA

[JAVA] 접근지정자(AccessModifier)

hvoon 2022. 9. 7. 17:41

-모든 클래스의 멤버는 현실에 존재하는 대상의 정보로써 직접적인 접근이 허용되는 것과 허용되면 안되는 정보가 있음.

-접근 지정자는 클래스의 멤버들에 대한 접근을 제어하는 키워드

-클래스의 멤버필드/메소드는 접근지정자(private, protected, public)에 의해서 외부에서의 접근을 제어할 수 있음.

-접근지정자를 사용하지 않는 경우 기본지정으로 public이 설정되며 클래스외부에서의 임의의 사용으로 값을 대입하거나 얻을 수 있음.

-이는 멤버필드의 값이 강제로 수정될 수 있다는 뜻

-이를 방지하고 무분별한 접근을 막기위해 멤버변수에 private를 지정함

class Account{
	private double balance; // 계좌정보 클래스에 잔액이 저장된 멤버변수
// private 멤버에 접근할 수 있는 권한은 내부에 있는 메서드에만 허용됨
	public void display() {
// 멤버메서드에 보통 public으로 지정해서 멤버변수값을 세팅하거나 
// 얻어쓰는 방식으로 운용함
		System.out.printf("현재 잔액은 %.2f원 입니다.\n",balance);
	} // 잔고 확인 가능
	public void initBanance(int i) {
		balance=i;
	}
	public void withraw(int i) {
		balance-=i;
	}
	public void deposit(int i) {
		balance+=i;
	}
}

public class Class01 {
	public static void main(String[] args) {
		Account a=new Account();
		a.initBanance(100000); // 잔액 초기화
		a.display(); // 화면에 잔액 표시
// 같은 클래스 내부의 멤버메서드끼리는 앞에 객체이름 없이 
// 서로를 자유롭게 호출 가능함
		a.withraw(5000); // 출금
		a.display();
// a.balance=100000; 
//private 멤버는 클래스 외부에서는 객체 이름을 통해서도 접근 금지
		a.deposit(20000); // 입금
		a.display();
	}
}