접근 제한자가 없다면

객체의 정보를 외부로부터 보호하지 않는 경우, 데이터가 함부로 변경될 수 있습니다.
클라우드스터딩-자바-잘못된-접근-제한자-public

이러한 문제를 예방하기 위해, 적절한 접근 제한자가 필요합니다. 접근 제한자의 종류는 크게 4가지이며, 필드와 메소드에 적용할 수 있습니다.

  1. class AAA {
  2. /* 필드 */
  3. private String aaa; // 비공개
  4. int bbb; // 디폴트 공개
  5. protected double ccc; // 상속 공개
  6. public boolean ddd; // 완전 공개
  7. /* 메소드 */
  8. private void eee() {} // 비공개
  9. int fff() {} // 디폴트 공개
  10. protected double ggg() {} // 상속 공개
  11. public boolean hhh() {} // 비공개
  12. }

문제

주어진 코드는 Account와 Hacker 클래스로 동작한다. 초기 계좌에는 백만원(1,000,000원)이 입력되어있는데, 이를 0원으로 변경하려 한다.
클라우드스터딩-자바-접근-제한자-필요성-해킹

출력 예와 같은 결과를 얻도록, Hacker 클래스의 malcious() 메소드를 완성하시오.

출력 예

  1. Account { balance: 1000000 }
  2. Account { balance: 0 }
관련 강의로 이동

코드: java 1.8

public class Main {
public static void main (String[] args) {
// 1.
Account myAccount = new Account(1000000);
System.out.println(myAccount.toString());
// 2.
Hacker.malcious(myAccount);
// 3.
System.out.println(myAccount.toString());
}
}
class Account {
//
int balance;
//
public Account(int balance) {
this.balance = balance;
}
//
public String toString() {
return String.format("Account { balance: %d }", balance);
}
}
class Hacker {
// - 0
public static void malcious(Account account) {
/* 1. 0 . */
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

입력

정답이 궁금하다면? 코드를 제출해보세요!