●접근지정자 ; 클래스의 멤버들에 대한 접근을 제어하는 키워드
모든 클래스의 멤버는 직접적인 접근이 허용되는 것과 허용되면 안되는 정보가 있습니다.
//private : 클래스 내부에서만 사용가능한 멤버를 정의하는 키워드 (클래스 내부에서만 자유롭게 접근이 가능함)
//public : 접근에 제한이 없는 멤버를 정의하는 키워드
//protected: child class 에서만 자유롭게 접근이 가능
//default : 접근 지정자를 지정하지 않으면 자동으로 갖게되는 접근지정자이며, 같은 패키지내에서 자유롭게 접근 가능
(같은 패키지 안에서는 public과 동일한 접근제한)
클래스 Acccount 의 멤버변수의 접근지정자로 private을 설정한 경우 예시 (은행 계좌 코드)
1
2
3
4
5
6
7
8
|
class Account {
private double balance;
public void init(double n) {
balance = n;
}
|
cs |
- 위와 같이 클래스 내에 있는 멤버메소드를 이용하여 멤버변수의 값을 세팅한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
public void withrow(double money) {
Scanner sc = new Scanner(System.in);
System.out.println("비밀번호 네자리를 입력하세요");
int pass = Integer.parseInt( sc.nextLine() );
if( pass != 1234 ) {
System.out.println("비밀번호가 맞지 않습니다");
return;
}
if( money > balance ) {
System.out.println("잔액이 부족합니다.");
return;
}
balance -= money;
System.out.println(money + "원 출금이 완료되었습니다");
//System.out.printf("현재 잔액은 %.2f 원 입니다.\n\n", balance);
display();
}
|
cs |
-출금 메소드 withrow 만들기 (비밀번호는 1234)
-같은 클래스 내에 있는 display() 메소드 호출 가능
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
public double getBalance() {
return balance;
}
public void display() {
// System.out.printf("현재 잔액은 %.2f 원 입니다.\n\n", balance);
System.out.printf("현재 잔액은 %.2f 원 입니다.\n\n", getBalance() );
}
public void deposit(double money) {
if( money <= 0 ) {
System.out.println("입금액 오류. 관리자에게 문의하세요");
return;
}
balance += money;
System.out.println(money + "원 입금이 완료되었습니다");
//System.out.printf("현재 잔액은 %.2f 원 입니다.\n\n", balance);
display();
}
|
cs |
-balance 잔액을 반환해주는 getBalance() 메소드를 만들고
잔액을 보여주는 display 메소드에서 바로 getBalance()메소드 호출 가능
마찬가지로 deposit 출금 메소드에서도 바로 display 메소드를 사용함으로써 출력 가능
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
public class Class06 {
public static void main(String[] args) {
Account a = new Account();
// a.balance = 100000; // private 멤버는 클래스 외부에서는 객체이름을 통해서도 접근이 금지
a.init(100000.0);
a.withrow(50000.0);
a.deposit(200000.0);
a.display();
System.out.printf("현재 잔액은 %.2f 원 입니다.\n\n", a.getBalance() );
}
}
|
cs |
클래스 Account의 객체변수 a 생성
Account 클래스의 멤버변수인 balance의 접근지정자는 private이므로
클래스 외부인 메인 메소드에서 객체명.변수명으로 직접적인 접근이 금지
'JAVA > 수업 복습' 카테고리의 다른 글
자바 공부기록 36 - 생성자(Constructor) (0) | 2022.04.26 |
---|---|
자바 공부기록 35 - getter setter 메서드 생성 (0) | 2022.04.26 |
자바 공부기록 33 - 멤버 메소드 (0) | 2022.04.25 |
자바 공부기록 32 - 클래스 (0) | 2022.04.22 |
자바 공부기록 31 - 메소드 매개변수 - int...a (0) | 2022.04.21 |