재정의

    toString() 을 재정의하는 것을 잊지말자

    toString() 을 재정의하는 것을 잊지말자

    Spring boot에서 JPA로 쿼리문을 실행하여 값을 얻는데 문제가 발생했다. 현재 필자의 상황은 User 테이블에서 PK인 userId를 이용해서 필드 now_emotion과 ad_id를 조회하고자 했다. 그리고 조회된 ad_id를 출력하니 19가 아닌 클래스명과 주소값인 com.healing4u.healing4umobileWeb.model.Advertisement@116da866 이 출력되는 것이다. (클래스명을 출력하는 메서드는 user.getAdId().getClass() ) 이때의 코드는 아래와 같다. @Service public class UserService { @Autowired private UserRepository userRepository; @Autowired private Ad..

    기초 #8. 인터페이스 (+익명 구현 객체)

    기초 #8. 인터페이스 (+익명 구현 객체)

    인터페이스란 ▶하나의 틀, 규격을 말한다! ▶생성자가 없다. (인터페이스에서는 생성의 개념이 없다.) ▶추상클래스와 목적이 같은데, 즉 지정받거나 상속받는 클래스들의 공통요소를 묶기 위함이다. 하지만 추상클래스와는 차이점이 있다. ▶추상클래스와 인터페이스의 차이점 인터페이스 추상클래스 동작 가능성 (생성자 유무) (단, 추상메서드일 경우)동작 실행 개념이 없기 때문에 실질적인 동작구현(블록 {})이 없다. (생성자 X) 실행 개념이 있는 일반 메서드는 구현할 수 있지만 추상메서드의 경우, 동작구현을 하지 않는다.(블록 {}이 없다.) 재정의 강제성 인터페이스에서 정의한 요소를 하위클래스가 모두 재정의하도록 강제성을 부여한다. 재정의 강제성은 있지만 하위클래스가 필요한 요소를 선택해서 쓸수 있다. ** 동..