# 연습문제 E - 자바 API
## 13 접근 제한자와 게터 세터
---
### 이론 요약
![클라우드스터딩-접근제한자-게터-세터-요약](https://i.imgur.com/lH6c84w.png)
#### 접근 제한자
- 접근 제한자란, 외부로부터 접근을 제어하는 키워드이다.
- 접근 제한자의 종류는 4가지로, private/default/protected/public 이 있다.
- private은 비공개, public은 완전 공개를 의미한다.
#### 게터와 세터
- private 필드는 외부 접근이 불가능하다
- 게터를 사용하면 private 필드를 우회적으로 가져올 수 있다.
- 세터를 사용하면 private 필드를 우회적으로 변경할 수 있다.
### 실습 리뷰
private 선언된 인스턴스 변수. 이를 게터와 세터로 다루는 방법.
```
public class KnightTest {
public static void main(String[] args) {
// 객체 생성
Knight knight1 = new Knight("돈키호테", 30);
// 정보 출력
System.out.println("[객체 생성]");
System.out.printf("\t%s\n", knight1.toString());
// 체력 증가: 기존 체력 + 30
knight1.setHp(knight1.getHp() + 30);
// 결과 출력
System.out.println("[체력 증가 +30]");
System.out.printf("\t%s\n", knight1.toString());
}
}
class Knight {
// 필드
private String name;
private int hp;
// 생성자
public Knight(String name, int hp) {
this.name = name;
this.hp = hp;
}
// 게터
public int getHp() {
return this.hp;
}
// 세터
public void setHp(int hp) {
this.hp = hp;
}
// toString
public String toString() {
return String.format("Knight { name: %s, hp: %d }", this.name, this.hp);
}
}
```
## 14 자바 API
---
### 이론 요약
![클라우드스터딩-자바-API-요약](https://i.imgur.com/To9S18W.png)
#### 자바 API란
- 자바 API란 미리 만들어진 도구(클래스)이다.
- 자바 API는 패키지를 통해 제공된다.
#### 패키지
- 패키지란, 소스코드를 담는 디렉터리이다.
- 패키지는 관련 코드를 묶거나, 같은 이름의 코드를 구분하기 위해 사용한다.
#### 자바 API 사용 예
- 자바 API 문서 또는 구글링을 통해 API를 검색한다.
- 학습 시 많이 사용하는 API로 Math, Random, ArrayList 등이 있다.
### 실습 리뷰
로또 번호 생성하기
```
import java.util.Collections;
import java.util.Arrays;
import java.util.ArrayList;
public class SimpleLottoMachine {
public static void main(String[] args) {
// 45개의 공을 만든다
ArrayList<Integer> numbers = new ArrayList<Integer>();
for (int i = 1; i <= 45; i++) {
numbers.add(i); // 1 ~ 45
}
// 섞는다
Collections.shuffle(numbers);
// 뽑는다
int[] picked = new int[6];
for (int i = 0; i < 6; i++) { // numbers의 앞 6개 숫자를 가져옴!
picked[i] = numbers.get(i);
}
// 결과 출력
System.out.printf("자동 생성 번호: %s", Arrays.toString(picked));
}
}
```
## 확인하기
---
<div class="interact_responsive_padding" style="padding:100% 0 0 0;position:relative;margin-bottom:5px;"><div class="interact_responsive_wrapper" style="height:100%;left:0;position:absolute;top:0;width:100%;"><iframe id="interactApp5d08717ccec9cd00147ca2a7" width="100%" height="100%" style="border:none;max-width:100%;margin:0;" allowTransparency="true" frameborder="0" src="https://quiz.tryinteract.com/#/5d08717ccec9cd00147ca2a7/q/1?method=iframe"></iframe></div></div>
## 도서구매
<a href="http://www.yes24.com/Product/Goods/104740689"><img src="http://image.yes24.com/goods/104740689/XL" width="50%" /></a>