인터페이스
: 인터페이스를 사이로 앞, 뒤의 개발 코드가 서로 통신하는 접점. 앞 뒤의 통신 규약 -> 동시 개발 가능
: 다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할까지 담당하는 일종의 추상 클래스를 의미.(자바에서 추상 클래스는 추상 메소드, 생성자, 필드, 일반 메소드도 포함할 수 있다.)
자바 클래스를 선언할 때 extends 키워드로 다른 클래스를 상속하지 않으면 암시적으로 java.lang.Object 클래스를 상속한다.
==>자바의 모든 클래스는 Objact의 클래스를 상속한다.(즉 Objact는 자바의 최상위 부모클래스)
-Objact 클래스는 필드가 없고 메소드로 구성되어 있다. 모든 클래스들이 Objact 클래스를 상속하므로 모든 클래스에서 이용할 수 있다.
Object 클래스의 메소드
-equals()
public boolean equals(Object obj) {...}
: Object로 모든 객체가 매개값으로 대입될 수 있다. / 리턴 타입 : boolean 두 객체가 동일한 객체라면 true 아니면 false 리턴
: 논리적으로 동등하다는 의미(직접 사요되지 안혹 하위 클래스에서 재정의(오버라이딩)되어 논리적으로 동등비교)
-hashCode()
: 객체 해시코드 : 객체를 식별할 하나의 정수값. 객체의 메모리 번지를 이용해서 해시코드를 만들어서 리턴==> 객체마다 다른 값을 가지고 있다.
논리적 동등 비교 시 오버라이딩 할 필요성이 있는데 컬렉션 프레임워크에서 HashSet, HashMap, Hashtable은 아래 방법으로 동등한지 비교
-toString()
: Object클래스의 toString() 메소드는 객체의 문자 정보를 리턴
객체 문자 정보 : 객체를 문자열로 표현한 값
-기본적으로 "클래스명@16진수해시코드"로 구성된 문자 정보 리턴
Object obh = new Object();
System.out.println(obj.toString());
--->java.langObject@de6ced
toString()메소드 리턴값은 자바 어플리케이션에서 가치 없는 정보
->Object의 하위클래스는 toString() 메소드를 재정의(오버라이딩)하여 간결하고 유익한 정보를 리턴하도록 되어있다.
ex)java.util패키지의 Date클래스는 toString() 메소드를 오버라이딩하여 현재 시스탬의 날짜와 시간 정보를 리턴한다.
String 클래스는 toString()메소드를 오버라이딩하여 저장하고 있는 문자열을 리턴한다.
public class ToStringExample {
public static void main(String[] args){
Object obj1 = new Object();
Data obj2 = new Data();
System.out.println(obj1.toString());
System.out.println(obj2.toString());
}
}
실행 결과
java.lang.Object@1b15692
Wed Nov 13 09:33:06 KST 2020
다이나믹 디스패치
:
'스파르타 부트캠프(spring)' 카테고리의 다른 글
[내일배움캠프_spring] 주간회고 WIL - 4주차 (0) | 2022.12.04 |
---|---|
자바 심화 강의 정리(OSI 7계층)_221202 (0) | 2022.12.04 |
자바 심화 강의 정리(JVM구조, 메모리코드 정리) (0) | 2022.12.01 |
[내일배움캠프_spring] 4주차_미니프로젝트2(4일차) (0) | 2022.11.30 |
[내일배움캠프_spring] 4주차_미니프로젝트2(3일차) (0) | 2022.11.28 |