명품 자바 프로그래밍

[명품 자바 프로그래밍] 6장 모듈과 패키지 개념, 자바 기본 패키지 정리

n_0_jun 2024. 10. 22. 14:00
반응형

 

1. Calendar 클래스 사용

  • Calendar 클래스는 날짜와 시간을 다루는 데 사용되는 추상 클래스입니다. Calendar 객체를 생성하여 현재 날짜와 시간을 가져오거나 특정 날짜와 시간을 설정할 수 있습니다.

예제: 현재 날짜 및 시간 출력

import java.util.Calendar;

public class CalendarEx {
    public static void printCalendar(String msg, Calendar cal) {
        int year = cal.get(Calendar.YEAR);
        int month = cal.get(Calendar.MONTH) + 1; // 월은 0부터 시작하므로 +1
        int day = cal.get(Calendar.DAY_OF_MONTH);
        int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK);
        int hour = cal.get(Calendar.HOUR);
        int hourOfDay = cal.get(Calendar.HOUR_OF_DAY);
        int ampm = cal.get(Calendar.AM_PM);
        int minute = cal.get(Calendar.MINUTE);
        int second = cal.get(Calendar.SECOND);
        int millisecond = cal.get(Calendar.MILLISECOND);

        System.out.print(msg + year + "/" + month + "/" + day + "/");
        switch(dayOfWeek) {
            case Calendar.SUNDAY: System.out.print("일요일"); break;
            case Calendar.MONDAY: System.out.print("월요일"); break;
            case Calendar.TUESDAY: System.out.print("화요일"); break;
            case Calendar.WEDNESDAY: System.out.print("수요일"); break;
            case Calendar.THURSDAY: System.out.print("목요일"); break;
            case Calendar.FRIDAY: System.out.print("금요일"); break;
            case Calendar.SATURDAY: System.out.print("토요일"); break;
        }
        System.out.print("(" + hourOfDay + "시)");
        if (ampm == Calendar.AM) System.out.print("오전");
        else System.out.print("오후");
        System.out.println(hour + "시 " + minute + "분 " + second + "초 " + millisecond + "밀리초");
    }

    public static void main(String[] args) {
        Calendar now = Calendar.getInstance();
        printCalendar("현재 ", now);
        Calendar firstDate = Calendar.getInstance();
        firstDate.clear();
        firstDate.set(2016, 11, 25); // 2016년 12월 25일
        firstDate.set(Calendar.HOUR_OF_DAY, 20); // 20시
        firstDate.set(Calendar.MINUTE, 30); // 30분
        printCalendar("처음 데이트한 날은 ", firstDate);
    }
}

2. String 클래스 사용

  • String 클래스: 문자열을 다루는 클래스이며, 불변(immutable) 특성을 가지고 있습니다. 문자열을 수정하는 메소드는 새로운 문자열을 반환합니다.

주요 메소드

  • concat(): 문자열 합치기.
  • trim(): 문자열 양쪽의 공백 제거.
  • replace(): 문자열의 특정 부분을 다른 문자열로 교체.
  • split(): 문자열을 주어진 구분자로 나누어 배열로 반환.
  • substring(): 특정 범위의 문자열을 잘라서 반환.
  • charAt(): 특정 인덱스의 문자 반환.

예제: 문자열 처리

String str = "  Hello, World!  ";
String trimmed = str.trim(); // "Hello, World!"
String replaced = str.replace("World", "Java"); // "  Hello, Java!  "
String[] parts = str.split(", "); // ["  Hello", "World!  "]
String sub = str.substring(2, 7); // "Hello"
char ch = str.charAt(1); // ' '

3. StringBuffer 클래스

  • StringBuffer: 문자열을 가변(mutable)하게 수정할 수 있는 클래스입니다. 문자열을 추가, 삽입, 삭제 등의 작업을 효율적으로 수행할 수 있습니다.

주요 메소드

  • append(): 문자열 추가.
  • insert(): 특정 인덱스에 문자열 삽입.
  • delete(): 특정 인덱스 범위의 문자열 삭제.
  • reverse(): 문자열 뒤집기.

예제: StringBuffer 사용

StringBuffer sb = new StringBuffer("Hello");
sb.append(" World!"); // "Hello World!"
sb.insert(5, ","); // "Hello, World!"
sb.delete(0, 5); // ", World!"
sb.reverse(); // "!dlroW ,"

4. 수학적 기능

  • Math 클래스: 다양한 수학적 기능을 제공하는 클래스입니다.

주요 메소드

  • Math.PI: 원주율.
  • Math.ceil(): 올림.
  • Math.floor(): 내림.
  • Math.sqrt(): 제곱근.
  • Math.exp(): e의 거듭제곱.
  • Math.random(): 난수 생성.

예제: 수학적 기능 사용

double a = Math.PI;
System.out.println(Math.PI); // 3.141592653589793
System.out.println(Math.ceil(a)); // 4.0
System.out.println(Math.floor(a)); // 3.0
System.out.println(Math.sqrt(9)); // 3.0
System.out.println(Math.exp(2)); // 7.38905609893065
System.out.println(Math.round(3.14)); // 3

5. 패키지 개념

  • 패키지: 관련된 클래스를 그룹화하여 이름 충돌을 방지하고, 코드의 조직화 및 재사용성을 높이는 방법입니다.

패키지 선언

package UI.Tools; // UI.Tools 패키지에 클래스 포함

패키지 임포트

import UI.Tools; // UI.Tools 패키지의 클래스 사용
  • 기본 패키지: 모든 클래스는 java.lang 패키지를 기본으로 상속받으며, 기본 패키지에 포함된 클래스들은 항상 import할 필요가 없습니다.

 

Java에서는 Calendar와 String 클래스, 그리고 패키지를 활용하여 날짜와 시간을 관리하고 문자열을 효율적으로 처리할 수 있습니다. 이러한 기능들은 Java 프로그래밍의 기본적인 도구로, 코드의 가독성과 재사용성을 높이는 데 기여합니다.

 
반응형