Java에서 제공하는 기본 패키지
- java.lang
자바 language 패키지 : 스트링,수학등 자바 프로그래밍에 필요한 기본적인 클래스와 인터페이스
자동으로 사용가능하기때문에 import 필요없음.
- java.util
날짜,시간,해시맵등 다양한 유틸리티 클래스와 인터페이스 제공
- java.io
키보드,모디터등 입출력을 할수있는 클래스와 인터페이스 제공
Object 클래스
java.lang 패키지에 포함되어있고, 모든 클래스의 상위 클래스이다.
모든 클래스에 강제 상속되며, 모든 객체가 공통적으로 가지는 객체의 속성을 나타내는 메소드를 가지고있다.
(==연산자)와 equals()의 차이점
==연산자는 참조변수가 가리키는 주소값을 비교한다.
equals() 메소드는 문자열같은 경우 내용을 비교한다.
Point a = new Point(2,3);
Point b = new Point(2,3);
Point c = a;
class Point {
int x, y;
public Point(int x, int y) {
this.x= x; this.y =y;
}
}
Point a = new Point(2,3);
Point b = new Point(2,3);
Point c = a;
if(a == b)// false
System.out.println("a==b");
if(a == c)// true
System.out.println("a==c");
위의 코드를 그림으로 나타내면
즉, a와 c는 같은 객체를 참조하고 있기때문에 a==c는 true다.
그러나, b는 다른 객체를 참조하고 있기 때문에 a==b는 false다.
두 객체의 내용을 비교하고 싶을때는, 모든 클래스의 조상인 Object가 가진 toString()메소드를
오버라이딩하여 비교한다.
class Point3{
private int x,y;
public Point3(int x,int y) {
this.x = x;
this.y = y;
}
// toString 메소드를 해시코드가 나오는것이 아닌 객체 값을 비교할수있게 오버라이딩하여 사용한다.
public boolean toString(Object obj) {
Point3 p = (Point3)obj;
if(x==p.x&&y==p.y) {
return true;
} else return false;
}
}
public class EqualsEx {
public static void main(String[] args) {
Point3 a = new Point3(3, 3);
Point3 b = new Point3(3, 3);
Point3 c = new Point3(3, 4);
if(a==b) {
System.out.println("a==b");
}else {
System.out.println("a!=b"); }
if(a.toString(b)) {
System.out.println("a is equal to b");
}else {
System.out.println("a is not equal to b");
}
'Category > JAVA' 카테고리의 다른 글
[JAVA] thread란? (0) | 2023.11.15 |
---|---|
[JAVA] Collection FrameWork (0) | 2023.11.13 |
[JAVA] 예외 처리 (0) | 2023.10.24 |
[JAVA] 객체지향프로그래밍_2.상속과 다형성 (0) | 2023.10.22 |
[JAVA] 객체지향 프로그래밍_ 1. 클래스와 인스턴스 (1) | 2023.10.18 |