드디어 미션 마지막 날이다!!
50일이 짧다면 짧지만 꾸준히 강의를 듣도록 동기부여를 해준것 같다.
오늘은 오브젝트(Object) 클래스에 대해 공부해보았다.
Object 클래스는 모든 클래스의 최상위 클래스이다.
java.lang.Object 클래스이다.
모든 클래스는 Objet 클래스에서 상속을 받는다.
모든 클래스는 Object 클래스의 메서드를 사용할 수 있다.
모든 클래스는 Object 클래스의 일부 메서드를 재정의 하여 사용할 수 있다.
equals() 메서드에 대한 설명이다.
hashCode() 메서드의 반환값: 인스턴스가 저장된 가상머신의 주소를 10진수로 반환해준다.
일반적으로 equals() 를 오버라이딩하면 hashCode() 도 오버라이딩 해준다.
<추가공부>
출처 : blog.naver.com/partner0516/221656256179
Object 클래스자바에서 Object 클래스는 모든 클래스 중에서
부모 클래스가 없는 클래스예요.
상속 들어오기 전까지만 해도 extends를 사용한 적이 없는데
무슨 말인가 하고 봤더니,
추가적인 설정을 안해도
클래스가 생성되면서 상속을 받지 않는다면 기본적으로
Object클래스를 상속받는다고 해요
즉, 클래스 중에서 최상단에 있는 클래스죠
이 Object클래스에는 기본적으로 들어있는 메소드들이 있어요
메소드
내용
boolean equals(Object obj)
현재 객체와 obj가 같은지를 확인해줍니다.
String toString()
객체를 나타내주는 문자열을 나타내줍니다.
protected void finalize()
사용하지 않는 객체가 없어지기 전에 호출합니다.
Class getClass()
객체의 클래스형을 나타내줍니다.
int hashCode()
객체의 해쉬 코드를 반환합니다.
https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/lang/Object.html
Object (Java SE 13 & JDK 13 )
Constructor Summary Constructors Constructor Description Object () Constructs a new object. Method Summary All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected Object clone () Creates and returns a copy of this object. boolean equals ( Obje...
docs.oracle.com
위 사이트에 가시면 더 많은 정보가 나와있어요^^
그럼 위의 표들에 대한 예시들을 한 번 나타내볼게요
1.instanceof 연산자
먼저 위 메소드를 알아보기 전에 instanceof 연산자에 대해서 알아볼게요
이 연산자는 객체가 해당 클래스인지 확인하는 연산자예요
위 소스처럼 객체a의 클래스가 A형태이므로 true가 나오고
객체 b도 마찬가지입니다.
2.equals()
이 메소드는 익숙하실거예요
문자열 비교할 때 사용했었거든요
설명 그대로입니다. 현재 객체와 비교하고 싶은 객체를
넣어서 참,거짓을 나눕니다.
위 코드는 객체가 서로 다르기 때문에 둘다 false가 나왔어요
그런데 만약 클래스가 같은 걸 확인하고 싶으면 어떻게 해야할까요?
A클래스에서 equlas메소드를 오버라이드해서
제 의도에 맞추어서 재정의 해주면됩니다.
위 코드처럼 재정의 해주게 되면
클래스가 같은지 안같은지를 판별해주는 메소드로
다시 태어납니다.
3.toString()
Object클래스에 있는 toString 메소드는
객체가 가진 정보를 문자열로 반환해줍니다.
그런데 위와 같은 결과가 나오면
저희 입장에서는 쓸 일이 없겠죠?
그래서 이 메소드도 오버라이드로 재정의 해주는겁니다.
훨씬 보기 깔끔해졌죠?
또, toString 메소드로 재정의 해준다면 따로 메소드를 호출하지 않고
객체를 넣어도 똑같은 문자열이 나오는걸 확인할 수가 있어요
4.finalize()
이 메소드는 가비지 컬렉터라고 하는 자바에서 사용하지 않는 객체를
정리해주는게 있어요 그 가비지 컬렉터가 객체를 소멸시키기 전에
호출해주는 메소드라고 하네요.
그런데 오라클 자바 사전에서도 더이상 사용되지 않는다고 써져있으니
넘어가겠습니다.
5.getClass()
이 메소드는 객체의 클래스를 알려주는거예요!
제가 equlas()메소드 예시를 보여줄 때, 클래스 비교를 예로 들어서
따로 오버라이드를 했죠?
하지만 그럴필요가 없었네요
위 코드와 같이 해주면 제대로
객체끼리 클래스를 비교할 수가 있어요!
패스트캠퍼스 강의: https://bit.ly/3ilMbIO
'언어공부 > JAVA&SPRING' 카테고리의 다른 글
이클립스, STS 서버 구동시간 늘리기 Server Tomcat Server at localhost was unable to start within 45 seconds (0) | 2021.01.22 |
---|---|
패스트캠퍼스 Java 웹 개발 마스터 올인원 패키지 Online. 챌린지 참여 후기 (0) | 2020.10.14 |
[패스트캠퍼스 수강 후기] 자바 인강 100% 환급 챌린지 49회차 미션 (0) | 2020.09.27 |
[패스트캠퍼스 수강 후기] 자바 인강 100% 환급 챌린지 48회차 미션 (0) | 2020.09.26 |
[패스트캠퍼스 수강 후기] 자바 인강 100% 환급 챌린지 47회차 미션 (0) | 2020.09.25 |
댓글