개발자 미니민의 개발스터디

[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진수

 

 

 

블로그의 정보

개발자 미니민의 개발로그

mini_min

활동하기