본문 바로가기

전체 글47

함수형 인터페이스 (Functional Interface) 함수형 인터페이스란? 오직 하나의 추상메서드만 갖는 인터페이스 디폴트 메소드가 있더라도 추상메서드가 오직 하나면 함수형 인터페이스이다. (예시) public interface CustomFuntionalInterface { int customFunction(int a, int b); } @FunctionalInterface 함수형 인터페이스임을 나타내는 어노테이션이다. @FunctionalInterface로 인터페이스를 선언했지만 실제로 함수형 인터페이스가 아니면 컴파일러가 예외를 발생시킨다. 추상 메소드가 1개 이상이라면 컴파일 에러가 발생하는 것이다. @FunctionalInterface public interface Consumer { void accept(T t); } 함수형 인터페이스의 종류 아.. 2022. 3. 30.
추상화란? 추상화란? = 일반화 시킨다. 공식화 시킨다. 단순하게 만든다. 어떤 양상, 세부사항, 구조를 좀 더 명확하게 이해하기 위해 특정 절차나 물체를 의도적으로 생략하거나 감춤으로써 복잡도를 극복하는 방법이다. (예시) 커피가루를 녹인다. 티백을 우린다. ⇒ x를 y한다. 추상클래스 적용 사례 public abstract class Beverage() { protected void prepare() { boilWater(); brew(); pourInCup(); } private void boilWater() { // ... } private void brew() { // ... } private void pourInCup() { // ... } } public class Coffee extends Bever.. 2022. 3. 17.
compareTo()가 0을 반환하면 어떤 순서로 정렬되나? 우테코 2주차에서 학습로그로 compareTo() 파헤치기를 작성했다. 페어와 학습로그 말하기에서 해당 내용을 이야기하고 페어와의 질문 시간을 가졌다. 페어가 'compareTo()로 정렬을 할 때 비교한 값이 같으면 어떤 순서로 지정이 되는지' 질문을 하였지만 대답하지 못했다. 🥲 페어가 말하길, 비교한 값이 같으면 리스트에 삽입된 순서로 지정되지 않을까라고 했지만, 확실히 하는 것이 좋을 것 같아 이렇게 글을 작성해본다. 아래와 같은 객체가 있다고 치자. public class RacingCar implements Comparable { private final String name; private final int position; public RacingCar(final String name, f.. 2022. 2. 19.
Java Stream.max() 사용법 일단 Stream.max() 를 공식문서에서 확인해보자. Comparator의 구현체가 파라메터로 전달되어야 한다. 일단 max()를 적용하려는 객체에 객체들간의 순서를 지정할 수 있는 Comparable 인터페이스를 구현하겠다. public class RacingCar implements Comparable { private static final int DEFAULT_POSITION = 0; private int position = DEFAULT_POSITION; // 중간 생략 @Override public int compareTo(RacingCar anotherCar) { return this.position - anotherCar.position; } } compareTo()에 대한 설명을 잠깐.. 2022. 2. 14.
Comparable의 compareTo() 파헤치기 공식문서 파헤치기 Comparable 인터페이스에는 compareTo() 라는 메소드가 존재한다. 오늘은 이것에 대해 공부할 것 이다. Description (설명) : Compares this object with the specified object for order. 현재 객체와 특정 객체를 비교하여 순서를 지정한다. Method Detail을 보자! Compares this object with the specified object for order. Returns a negative integer, zero, or a positive integer as this object is less than, equal to, or greater than the specified object. 현재 객체와.. 2022. 2. 14.
JUnit 사용법 JUnit 이란? Java에서 사용할 수 있는 대표적인 테스트 프레임 워크이다. 다른 언어에서 사용할 수 있는 테스트 프레임워크들도 있는데, 보통 (언어의 약자)Unit 이라고 불리운다. ex ) CUnit, CppUnit, PHPUnit, PyUnit Gradle Dependency dependencies { testImplementation 'org.assertj:assertj-core:3.22.0' testImplementation 'org.junit.jupiter:junit-jupiter:5.8.2' } 자주 사용하는 JUnit Method assertThat - isTrue(), isFalse() true, false 값을 확인할 때 @Test @DisplayName("assertThat으로 t.. 2022. 2. 11.