JAVA :: Test128~129_자바에서 기본적으로 제공하는 주요 클래스(Object 클래스)

2023. 9. 16. 18:02· 📚 Study/Java

◎ ob1과 ob1.toString()의 출력값이 같은 이유는

    객체를 출력하면 기본적으로 to.String() 메소드가 호출되기 때문

    그래서 ob1만 출력해도 기본적으로 to.String()메소드가 호출되어 결국 같은 해시코드 값이 출력

 

 

▼ Test128

class Test
{
private int a = 10;
public void write()
{
System.out.print("a : " + a);
}
}
public class Test128
{
public static void main(String[] args)
{
Test ob1 = new Test();
Test ob2 = new Test();
System.out.println("10 == 9 : " + (10 == 9));
//--==>> 10 == 9 : false
int a = 10;
int b = 10;
System.out.println("a == b : " + (a == b));
//--==>> a == b : true
// ※ 『==』 비교 연산자는 피연산자의 크기를 비교함을 확인(관찰)
System.out.println("ob1 == ob2 : " + (ob1 == ob2));
//--==>> ob1 == ob2 : false
// ※ 객체(Object)들을 비교하는 과정에서 사용하는 『==』 연산자는
// 크기를 비교하는 것이 아니라 대상 객체의 주소를 비교
System.out.println();
System.out.println("-----------------------------------------------------------------");
System.out.println();
System.out.println("ob1 : " + ob1);
System.out.println("ob1.toString() : " + ob1.toString());
//--==>> ob1 : Test@15db9742
// ob1.toString() : Test@15db9742
System.out.println("ob2 : " + ob2);
System.out.println("ob2.toString() : " + ob2.toString());
//--==>> ob2 : Test@6d06d69c
// ob2.toString() : Test@6d06d69c
// 『클래스명@해시코드』
// ※ 해시코드(hashcode)
// : 자바 내부적으로 객체를 구분하기 위해 사용하는 것.
// 메모리의 주소값으로 생각하면 절대로 안된다.
// ※ 객체가 같으면 hashcode(해시코드)가 같지만
// hashcode(해시코드)가 같다고 해서 같은 객체는 아니다.
}
}

 

▼ Test129

class NewCar
{
private int velocity; //-- 자동차의 속도
private int wheelNum; //-- 자동차의 바퀴 갯수
private String carName; //-- 자동차의 이름
NewCar(int speed, String name, int wheel) // 생성자
{
velocity = speed;
carName = name;
wheelNum = wheel;
}
}
public class Test129
{
public static void main(String[] args)
{
//NewCar nCar1 = new NewCar(); // 작성한 구문은 매개변수 없는 생성자가 없으므로 해당 구문은 에러
NewCar nCar1 = new NewCar(250, "벤츠", 4);
NewCar nCar2 = new NewCar(150, "아우디", 4);
// equals()
System.out.println("1-1 : " + nCar1.equals(nCar2));
System.out.println("1-2 : " + (nCar1 == nCar2));
//--==>> 1-1 : false //-- 객체의 주소값으로 비교
// 1-2 : false
NewCar nCar3 = nCar1; //-- 객체 복사 → 얕은 복사(참조형) → 주소값 복사
System.out.println("2-1 : " + nCar1.equals(nCar3));
System.out.println("2-2 : " + (nCar1 == nCar3));
//--==>> 2-1 : true
// 2-2 : true
// toString()
System.out.println("3-1 : " + nCar1.toString());
System.out.println("3-2 : " + nCar2.toString());
System.out.println("3-3 : " + nCar3.toString());
//--==>> 3-1 : NewCar@15db9742 // 16진수 형태
// 3-2 : NewCar@6d06d69c
// 3-3 : NewCar@15db9742
// hashCode()
System.out.println("4-1 : " + nCar1.hashCode());
System.out.println("4-2 : " + nCar2.hashCode());
System.out.println("4-3 : " + nCar3.hashCode());
//--==>> 4-1 : 366712642 // 10진수 형태
// 4-2 : 1829164700
// 4-3 : 366712642
//-- 결과값을 16진수 형태로 바꾸게 되면
// 『toString()』메소드가 반환한 결과값 확인 가능.
// getClass()
System.out.println("5-1 : " + nCar1.getClass());
System.out.println("5-2 : " + nCar2.getClass());
System.out.println("5-3 : " + nCar3.getClass());
//--==>> 5-1 : class NewCar
// 5-2 : class NewCar
// 5-3 : class NewCar
//-- 생성된 객체를 통해
// 해당 객체의 기반 설계도(클래스)를 확인할 수 있는 기능을 가진 메소드.
// clone() //-- 객체 기반
// finalize() //-- 객체 직렬화
// 기타 나머지 메소드는 스레드 처리와 관련이 있다.
}
}
저작자표시 (새창열림)
'📚 Study/Java' 카테고리의 다른 글
  • JAVA :: Test132_자바에서 기본적으로 제공하는 주요 클래스(BigInteger 클래스)
  • JAVA :: Test130~131_자바에서 기본적으로 제공하는 주요 클래스(Wrapper 클래스, 오토 박싱, 오토 언박싱)
  • JAVA :: Test126~127_자바에서 기본적으로 제공하는 주요 클래스들
  • JAVA :: Test125_중첩 클래스(Annoymous 클래스)
bono-hye
bono-hye
bono-hye
공부를 합시다👩🏻‍💻
bono-hye
전체
오늘
어제
  • 분류 전체보기 (506)
    • 📚 Study (225)
      • Java (148)
      • Oracle (28)
      • JDBC (4)
      • Javascript (9)
      • JSP & Servlet (19)
      • JQuery (6)
      • Spring (9)
      • Springboot (0)
      • 개인 공부 (2)
    • ✏️ 문제풀이 (280)
      • 백준 (181)
      • 프로그래머스 (99)

블로그 메뉴

  • 홈
  • 글쓰기
  • 관리
hELLO · Designed By 정상우.v4.2.1
bono-hye
JAVA :: Test128~129_자바에서 기본적으로 제공하는 주요 클래스(Object 클래스)
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.