[JAVA] 자바 - 기본 API 클래스 (import, static import, object, equals)
by mini_min[JAVA]
자바 기본 API 클래스
외워야하지만 자바에 꼭 필요한 지식인 API 에 대해 배웠다.
✔️ import
패키지 : 비슷한 성격의 클래스 및 인터페이스를 모아놓은 폴더로, 하위 패키지를 가질 수 있다. 자바는 관련 표준 클래스들을 묶어 사용자들에게 제공한다. (효율성 업)
◾ import 문
- 만약, 외부 패키지의 클래스를 사용하려면, 패키지 명을 포함한 이름을 사용해야한다.
- import 문을 사용해서 사용할 패키지를 미리 명시하면 클래스 이름에 패키지 명을 생략할 수 있긴하지만... 헷갈릴듯
- 자바가 제공하는 java.lang 패키지는 자바를 컴파일 할 때 자동으로 import하기 때문에 import 하지 않는다.
💡 모든 클래스 import 하기 : import java.util.*;
✔️ import - 컴퓨터 시스템 날짜 시간
import java.util.Calendar;
public class Ex12 {
public static void main(String[] args) {
//컴퓨터 시스템 날짜 시간
Calendar cal = Calendar.getInstance();
System.out.printf("%tF %tA %tT\n", cal, cal, cal);
}
}
✔️ static import - sin 값 구하기
static import 는 정적인 멤버를 접근할 때, 클래스 이름 생략 가능.
import static java.lang.Math.*;
public class Ex02 {
public static void main(String[] args) {
java.util.Scanner sc = new java.util.Scanner(System.in);
double a, b;
System.out.print("각도? ");
a = sc.nextDouble();
b = cos(PI * a / 180.0);
System.out.println(a + "각도의 cos 값 : " + b);
sc.close();
}
}
💡 sin값 구하는 공식 : b = cos(PI * a / 180.0);
◾ 위에 코드를 보면, static import 가 쓰였다. static import 는 정적인 멤버(클래스 변수, 클래스 메소드) 접근할 때, 클래스 이름을 쓰지 않아도 된다! 원래 cos 와 PI 클래스 이름 써야하는데... 생략...
= 굳이 math 붙여서 쓰지 않아도 괜찮아진다.
✔️ Object 클래스 & equals 메소드 등...
- java.lang.object 클래스는 자바 클래스의 최상위 클래스이다.
- 아빠꺼는 내꺼, 내꺼는 내꺼.
- 아빠가 안주는 것은 있음. private 같은 것들.
◾ equals
== 연산자와 마찬가지로 객체 값이 아닌, 주소(참조값)을 비교한다. (==도 주소값 비교)
- 만약, 클래스 객체의 값 자체를 비교하고 싶다!!! 주소값 비교하기 싫다 하면, 사용자가 equals 메소드를 재정의 해야한다. 이렇게 재정의 하는 것을 overloading 이라고 한다.
System.out.println(t1 == t2); //객체는 주소 비교하여 false
System.out.println(t1.equals(t2));
// object equals() 는 주소 비교 false
💡 문자열은 다르다!!!!
//문자열은 == 으로 비교할 수 없다.
//문자열은 String 클래스의 equals() 를 이용하여 비교한다.
◾ toString
- 객체에 대한 클래스 이름과 정보를 "클래스이름@16진수해시코드값" 문자열로 리턴
- equals 과 마찬가지로 사용자 재정의하여 사용할 수 있다.
System.out.println(t1.toString());
System.out.println(t1);
// System.out.print 메소드에서는 t1만 출력해도
// t1.toString() 를 출력한 것과 동일한 결과를 출력한다.
◾ hashCode
- JVM이 객체 빠르게 검색할 수 있게 만들어진 값
- 객체에 대한 해쉬코드 값을 리턴
- 동일한 객체는 동일한 해쉬코드 가짐, 반대는 성립 불가
System.out.println(t1.hashCode()); // 10진수로 나옴
System.out.printf("%x", t1.hashCode()); //16진수
'Java' 카테고리의 다른 글
[JAVA] 자바 - Calendar 클래스 (달력 만들기, 나이 구하기) (0) | 2022.07.21 |
---|---|
[JAVA] 자바 - Wrapper class 란? 개념 정리 (0) | 2022.07.20 |
[JAVA] 자바 - singleton(싱글톤) 과 getInstance (0) | 2022.07.20 |
[JAVA] 자바 - 인스턴스/static 초기화 블록 의미 (0) | 2022.07.20 |
[JAVA] 자바 - this 의미와 사용법 (0) | 2022.07.20 |
블로그의 정보
개발자 미니민의 개발로그
mini_min