728x90 java21 추상 클래스와 인터페이스의 차이 인터페이스와 추상 클래스는 인스턴스화 하는 것이 불가능 하고 구현부가 없는 추상 메서드를 가질 수 있다. 또 한 java8에서 인터페이스에 디폴트 메서드가 추가된 후로 수상 클래스와 인터페이스의 차이가 모호해진 감이 있다. 하지만 이 둘은 여전히 다음과 같은 차지를 가지고 있다. 1. 인터페이스에서는 모든 변수가 public static final이다. 메서드는 public abstract이다. 2. 추상 클래스에서는 static 이나 final이 아닌 필드를 지정할 수 있고, public protected private 메소드르 가질 수 있다. 3. 인터페이스를 구현하는 어떤 클래스는 다른 여러개의 인터페이스들을 함께 구현할 수 있다. 자바는 다중상속을 지원하지 않기 때문에 추상클래스를 상속받은 서브클.. 2022. 1. 3. Junit5 소개 Junit5은 유닛테스트를 해야 하는 자바 개발자가 가장 많이 사용하고 있는 test framework이다. Junit5는 여러 단계로 모듈화가 되어있다. Junit Platform: 테스트를 실행해주는 런처를 제공한다. TestEngine API 제공 Jupiter: TestEngine API 구현체이며 JUnit 5를 제공한다 Vintage: JUnit4, JUnit3을 지원하는 TestEngine구현체이다. @BeforeAll: 모든 테스트가 실행하기 전에 한번 실행된다. @BeforeAll을 사용하는 메서드는 반드시 static이여야 한다. 또 한 반환값이 없어야 한다. @AfterAll: 모든 테스트가 실행된 후 한번 실행된다. @BeforeAll과 같이 메서드는 반환값이 없어야 하며 stati.. 2021. 11. 28. interface의 default method와 static method Java8부터 interface에 default method와 static method를 사용할 수 있게 되었다. Default method와 static method는 해당 interface를 implements하는 모든 인스턴스가 같은 기능이 있었으면 좋겠다는 이유로 추가되었다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 public interface Foo { /** * 이름을 출력하는 추상 메서드 */ void pri.. 2021. 11. 20. 패키지와 클래스 규칙, 특성 클래스: 1. 하나의 소스파일에는 public으로 선언된 클래스의 정의를 하나만 둘 수 있다 2. 소스파일의 이름은 public으로 선언된 클래스의 이름과 동일해야 한다. 패키지: 특성: 1. 클래스 접근 방법의 구분 - 서로 다른 패키지의 두 클래스는 인스턴스 생성 시 사용하는 이름이 다르다 2. 클래스의 공간적인 구분 - 서로 다른 패키지의 두 클래스 파일은 저장되는 위치가 다르다 규칙: 1. 클래스의 이름과 구분이 되도록 패키지의 이름은 모두 소무자로 구성한다 2. 인터넷 도메인 이름의 역순으로 패키지 이름을 구성한다 3. 패키지 이름의 끝에 클래스를 정의한 주체 또는 팀을 구분하는 이름을 추가한다. 2021. 3. 4. 이전 1 2 3 4 5 6 다음 728x90