1. API 개요
1-1. API란?
💡Application Programming Interface(API)는 응용프로그램에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있도록 만든 인터페이스
- 쉽게 말해 우리가 구현할 수 없거나 구현하기 번거로운 기능들을 JDK를 설치하면 사용할 수 있도록 제공한 소스코드(클래스나 인터페이스)들을 의미한다.
- 더 쉽게 말해 누가 작성해 놓은 소스코드이니 가져다 쓰는 방법을 제공해 주는 것이다.
- 모든 코드를 우리가 다 외울 수 없으니 API 문서를 별도로 제공해주고 있다.
2. Math 클래스
2-1. Math 클래스란?
💡수학에서 자주 사용하는 상수들과 함수들을 미리 구현해 놓은 클래스
(https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Math.html)
Math 클래스는 static member로만 구성
즉, Math.메소드() 와 같이 Math 클래스에서 제공하는 API를 사용할 수 있다.
2-2. Math 클래스 확인
package com.ohgiraffers.section03.math;
public class Application1 {
public static void main(String[] args) {
/* 수업목표. Math 클래스에서 제공하는 static 메소드를 호출할 수 있다. */
/* 설명. 참고로, java.lang 패키지 소속은 inmport 또는 풀 클래스명을 쓸 필요가 없다. */
/* 설명. 1. 절대값 출력 */
System.out.println("-32.1의 절대값: " + Math.abs(-32.1)); // java.lang은 생략 가능
/* 설명. 2. 최대값, 최소값 출력 */
System.out.println("10과 20 중 더 작은 것은: " + Math.min(10, 20));
System.out.println("20과 30 중 더 큰 것은: " + Math.max(20, 30));
/* 설명. 3. 난수 생성 */
System.out.println("난수 생성: " + Math.random());
}
}
// 실행 결과
-32.1의 절대값: 32.1
10과 20 중 더 작은 것은: 10
20과 30 중 더 큰 것은: 30
난수 생성: 0.4017441260606679
package com.ohgiraffers.section03.math;
public class Application2 {
public static void main(String[] args) {
/* 수업목표. 사용자 지정 범위의 난수를 발생시킬 수 있다.(ver. java.lang.Math 클래스) */
/* 설명. 1. 0 ~ 9까지의 난수 생성 */
int random1 = (int)(Math.random() * 10) + 0;
System.out.println("random1 = " + random1);
/* 설명. 2. 1 ~ 10까지의 난수 생성 */
int random2 = (int)(Math.random() * 10) + 1;
System.out.println("random2 = " + random2);
/* 설명. 3. 10 ~ 15까지의 난수 생성 */
int random3 = (int)(Math.random() * 6) + 10;
System.out.println("random3 = " + random3);
/* 설명. 4. -128 ~ 127까지의 난수 생성 */
int random4 = (int)(Math.random() * 256) - 128;
System.out.println("random4 = " + random4);
/* 설명. 5. 80 ~ 100까지의 난수 생성 */
int random5 = (int)(Math.random() * 21) + 80;
System.out.println("random5 = " + random5);
/* 설명. 6. -188 ~ 10까지의 난수 생성 */
int random6 = (int)(Math.random() * (188 + 1 - 10)) + (-188);
System.out.println("random6 = " + random6);
int random7 = (int)(Math.random() * 45) + 1;
System.out.println("random7 = " + random7);
}
}
// 실행 결과
random1 = 6
random2 = 5
random3 = 12
random4 = -124
random5 = 88
random6 = -82
random7 = 29
3. Scanner 클래스
💡콘솔 입력 제공!
3-1. 스캐너(Scanner)란?
💡java.util.Scanner 클래스
읽은 바이트를 문자, 숫자, 실수, boolean, 문자열 등 다양한 타입으로 변환하여 리턴하는 클래스
- Scanner는 “토큰 단위”로 데이터를 읽어 온다.
(토큰 : 공백문자 - Spacebar/Tab/Enter 로 구분 되는 요소)
3-2. Scanner에서 자주 쓰이는 메서드
메서드 |
기능 |
next() |
String으로 읽어온다.(띄어쓰기 이후는 읽지 않음) |
nextLine() |
String으로 읽어온다.(띄어쓰기 포함 한 줄을 읽는다. Enter 이전까지) |
nextInt() |
int로 읽어온다. |
nextBoolean() |
boolean으로 읽어온다 |
nextByte() |
byte로 읽어온다 |
nextShort() |
short로 읽어온다 |
nextLong() |
long을 읽어온다 |
nextFloat() |
float로 읽어온다 |
nextDouble() |
double로 읽어온다 |
3-3. Scanner 확인
package com.ohgiraffers.section04.scanner;
import java.util.Scanner; // 스캐너는 다른 패키지의 클래시이자 non-static 이라 new 사용!
public class Application1 {
public static void main(String[] args) {
/* 수업목표. java.util.Scanner를 이용한 다양한 자료형 값 입력 받기 */
Scanner sc = new Scanner(System.in); // 콘솔에 입력하겠다는 뜻
/* 목차. 1. 문자열 입력 받기 */
/* 설명. next()는 공백 또는 개행문자를 취급하지 않고 그 전까지만 버퍼에서 가져옴 */
System.out.print("이름을 입력하세요: "); // ln 없애면 옆에서 커서가 깜빡인다.
String lastName = sc.next(); // 입력할 때까지 대기 / "유 관순"을 입력했다면 "유"
String firstName = sc.next(); // "유 관순"을 입력했다면 "관순"
System.out.println("name = " + lastName + ", " + firstName);
/* 설명. nextLine()이 아닌 Scanner 메소드를 활용하다 nextLine()을 쓰게되면 고려할 것 */
sc.nextLine(); // 버퍼에 남아 있는 개행 처리용 구문(엔터 제거)
/* 설명. nextLine()은 공백 또는 개행문자까지 취급해 버퍼에서 모두 가져옴 */
System.out.print("이름을 입력하세요2: ");
String name2 = sc.nextLine(); // 공백(스페이스) 및 엔터를 제대로 처리
System.out.println("name2 = " + name2);
/* 목차. 2. 정수형 입력 받기 */
System.out.print("나이를 입력하세요: ");
int age = sc.nextInt();
System.out.println("age = " + age);
/* 목차. 3. 실수형 입력 받기 */
System.out.print("키를 입력하세요: ");
double height = sc.nextDouble();
System.out.println("height = " + height);
/* 목차. 4. 논리형 입력 받기 */
System.out.print("참과 거짓 중 한가지를 true 또는 false로 입력하세요 :");
boolean isTrue = sc.nextBoolean();
System.out.println("isTrue = " + isTrue);
/* 목차. 5. 문자열 입력 받기 */
System.out.print("아무 문자나 하나만 입력하세요: ");
char answer = sc.next().charAt(0); // 메소드 체이닝
System.out.println("입력하신 문자는 " + answer + "입니다.");
}
}