본문 바로가기

코린이

혼공자 Chapter11 API 본문

자바/혼공 학습단 10기

혼공자 Chapter11 API

winsome99 2023. 7. 21. 17:16
반응형

11_1 java.lang 패키지

Object 클래스의 최상위 클래스로 사용
System 표준 입력 장치로부터 데이터를 입력받을 때 사용 표준 출력 장치로 출력하기 위해 사용
Class 클래스를 메모리로 로딩할때 사용
Wrapper(Byte, Short, Character, Integer, Float 등) 기본 타입의 데이터를 갖는 객체를 만들 때 사용 문자열을 기본 타입으로 변환할때 사용
Math 수학 함수를 이용할 때 사용

API

API는 라이브러리라고 부르기도 하고, 개발에 자주 사용되는 클래스 및 인터페이스의 모음을 말한다.

자바 API 도큐먼트

자바 표준 API 중에 우리가 원하는 API를 쉽게 찾아 HTML로 보여준다.

Object

  • 자바의 최상위 부모 클래스에 해당
  • 자바의 모든 클래스는 Object 클래스의 자식이거나 자손 클래스이다.

객체 비교(equals())

// equals 메소드
public boolean equals(Object obj){ ... }
Object obj1 = new Object();
Object obj2 = new Object();

boolean result = obj1.equals(obj2); // obj1는 기준 객체이고 obj2는 비교 객체
boolean result = (obj1 == obj2);

위의 boolean result는 결과가 서로 동일하게 나온다.

  • equals() 메소드는 두 객체를 비교해서 논리적으로 동등하면 true를 리턴 그렇지 않으면 false를 리턴
  • equals() 메소드를 재정의할 때에는 매개값이 기준 객체와 동일한 타입의 객체인지 먼저 확인해야 한다.

 

객체 해시코드(hashCode())

  • 객체를 식별하는 하나의 정수값을 말한다.
  • 객체의 메모리 번지를 이용해서 해시코드를 만들어 리턴하여 객체마다 다른 값을 가지고 있다.
  •  

객체 문자 정보(toString())

  • 객체의 문자 정보를 리턴한다.
    • 객체의 문자 정보란? 객체를 문자열로 표현한 값을 말한다.
  • 기본적으로 Object 클래스의 toString() 메소드는 “클래스이름 @16진수 해시코드”로 구성된 문자 정보를 리턴한다.

 

System 클래스

  • 운영체재의 일부 기능을 이용할 수 있다.
  • System 클래스의 모든 필드와 메소드는 정적 필드와 정적 메소드로 구성 
  • Sysyem.exit(0)
    // exit()는 int 매개값을 지정하도록 되어 있다(이 값을 종료 상태값이라고 함)
    현재 실행하고 있는 프로세스를 강제 종료시키는 역할을 한다. System.exit(0);는 강제 종료하여 System.out.println("마무리 코드");코드가 출력되지 않는다.
    long time = System.currentTimeMIllis(); // 밀리세컨드 단위
    long time = System.nanoTime(); // 나도세컨드 단위
    
  • 현재 시각 읽기(currentTimeMIllis(), nanoTime())
// exit()메소드
package week11;

public class ExitEXample {
    public static void main(String[] args){
        for(int i = 0; i <10; i++){
            if (i == 5) {
                System.exit(0);
            }
        }
        System.out.println("마무리 코드");
    }
}

프로그램 종료(exit())

 

Class 클래스

클래스와 인터페이스의 메타 데이터를 java.lang 패키지에 소속된 Class 클래스로 관리

class 객체 얻기(get.Class(), forName())

// 클래스로부터 얻는 방법
Class clazz = 클래스이름.class // 1
Class clazz = Class.forName("패키지...클래스이름") // 2

첫 번째와 두 번째 방법은 객체 없이 클래스 이름만 가지고 Class 객체를 얻는 방법이다.

// 객체로부터 얻는 방법
Class clazz = 참조변수.getClass(); // 3

세 번째 방법은 클래스로부터 객체가 이미 생성되어 있는 경우이다.

클래스 경로를 활용해서 리소스 절대 경로 얻기

String file1Path = clazz.getResource("상대경로.file").getPath();

String 메소드

문자열의 추출, 비교, 찾기, 분리, 변환 등 같은 다양한 메소드를 가지고 있다.

리턴 타입 메소드 이름(매개 변수) 설명
char char A(int index) 특정 위치의 문자를 리턴한다.
boolean equals(Object anObject) 두 문자열을 비교한다.
byte[] getBytes() byte[]로 리턴한다.
byte[] getBytes(Charset charset()) 주어진 문자셋으로 인코딩한 btye[]로 리턴한다.
int indexOf(String str) 문자열 내에서 주어진 문자열의 위치를 리턴한다.
int length() 총 문자의 수를 리턴한다.
String replace() target 부분을 replacement로 대치한 새로운 문자열을 리턴
String substring() beginlndex 위치에서 끝까지 잘라낸 새로운 문자열을 리턴
String substring() beginIndex 위치에서 endIndex 전까지 잘라낸 새로운 문자열을 리턴
String toLowerCase() 알파벳 소문자로 변환한 새로운 문자열을 리턴
String toUpperCase() 알파벳 대문자로 변환한 새로운 문자열을 리턴
String trim() 앞뒤 공백을 제거한 새로운 문자열을 리턴
String vauleOf() 기본 타입 값을 문자열을 리턴

wrapper(포장) 클래스

  • 기본 타입의 값을 갖는 객체를 생성할 수 있다.
    • 이런 객체를 포장 객체라고 한다.(기본 값을 내부에 두고 포장함)
  • 포장 객체의 특징: 포장하고 있는 기본 타입 값은 외부에서 변경할 수 없다.
    • (변경하고 싶으면 새로운 포장 객체를 만들어야 한다.)

박싱(boxing)과 언박싱(Unboxing)

  • 기본 타입의 값을 포장 객체로 만드는 과정을 박싱
  • 반대로 포장 객체에서 기본 타입의 값을 얻어내는 과정을 언박싱
  • 생성자를 이용하지 않아도 포장 클래스마다 가지고 있는 정적 valueOf() 메소드를 사용박싱된 포장 객체에서 다시 기본 타입의 값을 얻어내기 위해서는 각 포장 클래스마다 가지고 있는 기본 타입이름+ Value() 메소드를 호출
  • Integer obj = Integer.valueOf(1000); Integer obj = Integer.valueOf("1000");

포장 값 비교

  • 포장 객체는 내부의 값을 비교하기 위해 ==와 ≠연산자를 사용하지 않는 게 좋다.
    • 내부의 값을 비교하는 게 아닌 포장 객체의 참조를 비교

Math 클래스

수학 계산에 사용할 수 있는 메소드를 제공

메소드 설명
int abs(int a) 절대값
double ceil(double a) 올림값
double floor(double a) 버림값
int max(int a, int b) double max(double a, double b) 최대값
int min(int a, int b) double min(double a, double b) 최소값
double random() 랜덤값
double rint(double a) 가까운 정수의 실수값
long round(double a) 반올림값

 

11_2 java.util 패키지

Date 클래스

날짜를 표현하는 클래스 객체 간에 날짜 정보를 주고받을 때 매개 변수나 리턴 타입으로 사용

// Date 객체 생성
Date now = new Date(); 

Date 객체의 toString()메소드는 영문으로 리턴하여 원하는 날짜 형식의 문자열을 얻으려면 java.text 패키지의 SimpleDateFormat 클래스를 사용

SimpleDateFormat sdf = new SimpleDateFormat("yyyy년 mm월 dd일 hh시 mm분 ss초");

format() 메소드를 호출해서 원하는 형식의 날짜 정보를 얻을 수 있다.

String strNow = sdf.format(now);

Calendar 클래스

달력을 표현한 클래스로 Calendar 클래스는 추상 클래스로 new 연산자를 사용해서 인스턴스를 생성할 수 없다.

getInstance() 메소드를 이용하면 현재 운영체제에 설정되어 있는 시간대를 기준으로 Calendar 하위 객체를 얻을 수 있다.

Calendar now = Calendar.getInstance();
반응형

'자바 > 혼공 학습단 10기' 카테고리의 다른 글

chapter12 스레드  (0) 2023.07.29
혼공단 3주차 미션  (0) 2023.07.23
혼공자 chapter10 예외 처리  (0) 2023.07.19
혼공자 chapter08 인터페이스  (0) 2023.07.15
혼공자 Chapter07. 상속  (0) 2023.07.14
Comments