[Java] 단위 변환기

2022. 1. 8. 12:52·TIL/Java
728x90
반응형

단위 변환기

단위 변환기를 만들어봅시다.

우리가 만들 단위 변환기는 인스턴스를 생성하지 않고도 사용할 수 있도록, 클래스 변수와 클래스 메소드로만 이루어져 있습니다. 언제든 간편하게 사용할 수 있는 도구를 만드는 거죠!

 

상수

이 클래스와 관련 있는 상수(static final 변수)를 만들어야 합니다.

 

1 파운드 = 0.45359237 킬로그램
1 인치 = 2.54 센티미터

위의 두 공식을 이용해서 상수 네 개(KILOGRAMS_PER_POUND, POUNDS_PER_KILOGRAM, CENTIMETERS_PER_INCH, INCHES_PER_CENTIMETER)를 만들어보세요.

 

예시

 

public static final double KILOGRAMS_PER_POUND = 0.45359237;

 

클래스 메소드

앞서 만든 상수들을 활용하여 무게와 길이 단위를 전환하는 메소드를 만들어주세요. 추가로 섭씨에서 화씨로, 또 화씨에서 섭씨로 전환하는 메소드도 만들어주세요.

섭씨를 화씨로 전환하는 수학적 공식은 아래와 같습니다:

 

°F = °C × (9 / 5) + 32

 

그리고 화씨를 섭씨로 전환하는 수학적 공식은 아래와 같습니다:

 

°C = (°F − 32) x (5 / 9)

 

보너스: private 생성자

UnitConverter 클래스는 인스턴스를 만들지 않고, static한 방법으로만 사용하고 싶습니다. 이런 경우, 생성자를 private으로 선언하여 인스턴스 생성을 막을 수 있습니다.

UnitConverter의 생성자를 private으로 만들어 외부에서 인스턴스 생성을 못 하게 막아주세요!

 

35 lb -> 15.88 kg
62 kg -> 136.69 lb
12.2 in -> 30.99 cm
3.82 cm -> 1.50 in
48 °F -> 8.89 °C
-9 °C -> 15.80 °F

 

 

본인 작성 코드

 

public class UnitConverter {
    // 필요한 상수 정의
    public static final double KILOGRAMS_PER_POUND = 0.45359237;
    public static final double POUNDS_PER_KILOGRAM = 2.204623;
    public static final double CENTIMETERS_PER_INCH = 2.54;
    public static final double INCHES_PER_CENTIMETER = 0.393701;

    // 인스턴스 생성 불가
    private UnitConverter() {

    }

    public static double toPounds(double kilograms) {
        double pounds = kilograms * POUNDS_PER_KILOGRAM;
        return pounds;
    }

    public static double toKilograms(double pounds) {
        double kilo = pounds * KILOGRAMS_PER_POUND;
        return kilo;
    }

    public static double toCentimeters(double inches) {
        double centi = inches * CENTIMETERS_PER_INCH;
        return centi;
    }

    public static double toInches(double centimeters) {
        double inches = centimeters * INCHES_PER_CENTIMETER;
        return inches;
    }

    public static double toFahrenheit(double celsius) {
        // 메소드 내부를 채워주세요 °F = °C × (9 / 5) + 32
        double f = celsius * 1.8 + 32;
        // celsius * 9 / 5 + 32 -> (9 / 5)를 하면 정수형으로 변환되어 원하는 값이 안나오니 괄호를 풀어주기
        return f;
    }

    public static double toCelsius(double fahrenheit) {
        // 메소드 내부를 채워주세요 °C = (°F − 32) x (5 / 9)
        double c = (fahrenheit - 32) / 1.8;
        return c;
    }
}

 

결과

728x90
반응형

'TIL > Java' 카테고리의 다른 글

[Java] 숫자 도구(Math, Random)  (0) 2022.01.10
[Java] String 클래스(대소문자 변환, 문자열비교_equals)  (0) 2022.01.10
[Java] 인스턴스 메소드 vs 클래스 메소드  (0) 2022.01.07
[Java] 인스턴스 변수 vs 클래스 변수  (0) 2022.01.07
[Java] 예외(Exception) - 코드 안전하게 만들기(try-catch 예외 처리)  (0) 2022.01.07
'TIL/Java' 카테고리의 다른 글
  • [Java] 숫자 도구(Math, Random)
  • [Java] String 클래스(대소문자 변환, 문자열비교_equals)
  • [Java] 인스턴스 메소드 vs 클래스 메소드
  • [Java] 인스턴스 변수 vs 클래스 변수
야리니
야리니
오늘보다 내일 더 성장하는 개발자가 되기 위한 야리니 블로그입니다 :)
    반응형
    250x250
  • 야리니
    야리니의 step by step
    야리니
  • 링크

    • GitHub
    • Linkedin
  • 전체
    오늘
    어제
    • 분류 전체보기 (478) N
      • TIL (379)
        • Java (97)
        • Kotlin (28)
        • JPA (16)
        • Spring (37)
        • Oracle (22)
        • JDBC (7)
        • Web(HTML, CSS, JS, jQuery) (90)
        • View Template (31)
        • AWS (7)
        • HTTP (7)
        • CS (5)
        • Linux, Unix (2)
        • Python (20)
      • Trouble Shooting(Error) (37)
      • Algorithm (15)
      • Git,GitHub (8)
      • Diary (24) N
      • 독서 (9)
      • Etc (6)
        • Mac (1)
        • 학원준비과정 (2)
  • 블로그 메뉴

    • 방명록
    • 태그
  • 공지사항

    • 안녕하세요 :)
  • 인기 글

  • 태그

    CSS
    oracle
    쌍용교육센터
    java기초
    Kotlin
    HTML
    코틀린
    국비지원학원
    java
    백엔드 개발자
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
야리니
[Java] 단위 변환기
상단으로

티스토리툴바