JAVA(9)
-
JAVA 인터페이스 기능과 디폴트 메소드(Default Method)
1. Interface의 기능 (1) 구현을 강제 모든 메소드가 추상메소드이므로, 구현을 강제한다. (2) 다형성을 제공 login() 메소드를 강제하는 Login 인터페이스가 있고 KakaoLogin, NaverLogin 두 개의 구현체가 있는 상황이다. public interface Login { void login(); } public class KakaoLogin implements Login{ @Override public void login() { System.out.println("카카오 로그인 진행"); } } public class NaverLogin implements Login{ @Override public void login() { System.out.println("네이버 로그인..
2022.10.20 -
Java equals()와 hashCode()
오브젝트의 동일성과 동등성 Java에서 "두 객체가 같다"라는 말은 두 가지로 해석될 수 있다. 두 개의 오브젝트가 완전히 같은(identical) 오브젝트라고 말하는 것과, 동일한 정보를 담고 있는(equal) 오브젝트라고 말하는 것은 분명히 다르다. 전자를 동일성(identity) 비교라 하고 후자를 동등성(equality)비교라고 한다. 동일성은 ==, 동등성은 equals() 메소드를 이용해 비교한다. 동일성은 하나의 오브젝트를 두 개의 레퍼런스 변수가 가리키고 있는 상태 동등성은 두 개의 다른 오브젝트가 메모리 상에 존재하나, 로직상의 정의에 따라 오브젝트 정보가 같다고 판단 equals()와 hashCode() java.lang.Object 클래스는 eqauls()와 hashCode() 메소드..
2022.10.19 -
Optional<T>
Optional 타입의 객체에는 모든 타입의 참조변수를 담을 수 있다. 참조변수를 직접 담지 않고 Optional에 담는 이유는 1) Null을 직접 다루는 것은 NullPointerException의 위험이 존재한다. Optional을 이용하면 Null을 간접적으로 다룰 수 있다. 2) 위와 같은 이유로, Optional을 사용하지 않으면 Null 체크를 if문 등으로 해주어야 하는데, 이는 코드가 지저분하다. Optional 객체 생성하기 String str = "abc"; Optional opt = Optional.of(str); Optional opt2 = Optional.ofNullable(null); // 가능 Optional opt2 = Optional.of(null); // NullPoin..
2022.02.16