티스토리 뷰
자바에서 객체끼리 비교하고 싶을 때 어떻게 해야할지 알아보자.
자바에서 비교하기 위해 equals, instanceof 등을 사용한다는 것을 검색을 통해 쉽게 볼 수 있다.
그렇다면, equals. compareTo, instanceof 등을 어떤 경우에 사용하는지 알기 쉽게 알아보자.
상황 1.) 서로 다른 객체의 메서드 값을 비교하고 싶을 때 => a.name.equals(b.name)를 사용
- a의 name과 b의 name값이 같은지 비교하고 싶다면 "a.name.equals(b.name)" 로 적어 비교가 가능하고 boolean형태로 반환
- 주의 : 주소값을 통한 비교를 하기때문에 객체자체끼리 비교할 수 없다. => a.equals(b)를 사용할 수 없음.
=> 당연히 다른 객체이니까 주소값이
상황 2.) 서로 다른 객체의 class 값을 비교하고 싶을 때
- 객체 a가 클래스 A에 해당하는지 클래스 B에 해당하는지 비교하고 싶다면 "a istanceof A" 혹은 "a instance B"로 적을 수 있으며 객체 a가 비교하는 클래스에 해당하면 true, 아니면 false로 반환
- 예제, 게임 캐릭터마다 class를 갖고 Barlog 캐릭터가 배틀을 하는 경우에 특수 실행문을 주고싶다면?
=> 객체로 만들어진 캐릭터가 Barlog 클래스인지 판단이 필요함.
blue 혹은 red는 아래에서 객체로 정의된 캐릭터 이름이다.
blue 혹은 red를 instanceof를 통해 Barlog 클래스인지 판단하고 서로 다른 캐릭터중 Barlog일 경우 특수 코드를 실행하게끔 조건을 줌.
'모바일소프트웨어 > 자바' 카테고리의 다른 글
vector (0) | 2021.10.21 |
---|---|
Generic class (0) | 2021.10.19 |
자바 문자열 다루기 (0) | 2021.10.11 |
Static변수와 객체생성의 관계 (0) | 2021.10.01 |
java 변수 (0) | 2021.09.28 |
- Total
- Today
- Yesterday
- 백준 15650 파이썬
- 11053 백준
- 스택 파이썬
- 코딩월드뉴스
- DRF 회원관리
- 기본 텍스트 분류
- c++덱
- 파이썬 알아두면 유용
- CREATE ASSERTION
- 백준 11053 파이썬
- mm1queue
- 10866 백준
- 온라인프로필 만들기
- 백준 숫자놀이
- CSMA/CD란?
- 시뮬레이션 c
- 백준 4963
- 소프트웨어공학설계
- 기사작성 대외활동
- 백준 10866
- 효율적인방법찾기
- 핀테크 트렌드
- stack 컨테이너
- 13886
- 모듈 사용법
- 백트래킹(1)
- 4963 섬의개수
- 딥러닝입문
- 영화 리뷰 긍정 부정 분류
- LAMBDA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |