# 접근 제한자가 없다면 객체의 정보를 외부로부터 보호하지 않는 경우, 데이터가 함부로 변경될 수 있습니다. ![클라우드스터딩-자바-잘못된-접근-제한자-public](https://i.imgur.com/aWNxJRs.png) 이러한 문제를 예방하기 위해, 적절한 접근 제한자가 필요합니다. 접근 제한자의 종류는 크게 4가지이며, 필드와 메소드에 적용할 수 있습니다. ``` class AAA { /* 필드 */ private String aaa; // 비공개 int bbb; // 디폴트 공개 protected double ccc; // 상속 공개 public boolean ddd; // 완전 공개 /* 메소드 */ private void eee() {} // 비공개 int fff() {} // 디폴트 공개 protected double ggg() {} // 상속 공개 public boolean hhh() {} // 비공개 } ``` ## 문제 주어진 코드는 Account와 Hacker 클래스로 동작한다. 초기 계좌에는 백만원(1,000,000원)이 입력되어있는데, 이를 0원으로 변경하려 한다. ![클라우드스터딩-자바-접근-제한자-필요성-해킹](https://i.imgur.com/RmB5LCQ.png) 출력 예와 같은 결과를 얻도록, Hacker 클래스의 malcious() 메소드를 완성하시오. ## 출력 예 ``` Account { balance: 1000000 } 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으로 변경하세요. */ } }

입력

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