티스토리 뷰

한화시스템/백엔드

[BE] JAVA_API

jjam-mo 2024. 7. 13. 15:27

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 + "입니다.");
    }
}

 

'한화시스템 > 백엔드' 카테고리의 다른 글

[BE] JAVA_반복문  (0) 2024.07.13
[BE] JAVA_조건문  (0) 2024.07.13
[BE] JAVA_패키지, 임포트  (0) 2024.07.13
[BE] JAVA_메소드  (0) 2024.07.13
[BE] JAVA_연산자  (0) 2024.07.13
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함