본문 바로가기

개발/Java53

[3주차] Java 중급 - 인터페이스는 왜 사용하는가 인터페이스가 하는 일 클래스나 프로그램이 제공하는 기능을 명시적으로 선언 일종의 클라이언트 코드와의 약속이며 클래스나 프로그램이 제공하는 명세 (specification) 클라이언트 프로그램은 인터페이스에 선언된 메서드 명세만 보고 이를 구현한 클래스를 사용할 수 있음 어떤 객체가 하나의 인터페이스 타입이라는 것은 그 인터페이스가 제공하는 모든 메서드를 구현했다는 의미임 인터페이스를 구현한 다양한 객체를 사용함 - 다형성 예) JDBC 인터페이스 하나의 인터페이스를 여러개의 클래스가 구현했다고 하더라도, 클라이언트의 클래스 사용방법은 동일(호출하는 방법이 동일)하다. (동일한 interface를 구현했기 때문) 2023 KAKAO Tech Campus_BackEnd 필수 과정 Java 3주차 강의 정리 .. 2023. 6. 25.
[3주차] Java 중급 - 구현 코드가 없는 인터페이스 인터페이스란? interface 인터페이스 이름 { public static final float pi = 3.14F; public void makeSomething(); } 모든 메서드가 추상 메서드로 선언됨 public abstract 모든 변수는 상수로 선언됨 public static final Java 8부터 default method 와 정적 메서드(static method) 기능의 제공으로 일부 구현 코드가 있음 인터페이스 정의와 구현 점선 화살표는 구현한다(implements)는 의미 인터페이스는 상속이 아닌 구현한다(implements)는 개념 Calc 인터페이스를 Calculator 클래스가 구현하고 CompleteCalc 클래스가 상속받음 CompleteCalc는 Calc를 타입상속(C.. 2023. 6. 25.
[3주차] Java 중급 - 추상 클래스를 활용한 템플릿 메서드 패턴 템플릿 메서드 추상 메서드나 구현된 메서드를 활용하여 코드의 흐름(시나리오)를 정의하는 메서드 final로 선언하여 하위 클래스에서 재정의 할 수 없게 함 framework에서 많이 사용되는 설계 패턴 추상 클래스로 선언된 상위 클래스에서 템플릿 메서드를 활용하여 전체적인 흐름을 정의하고 하위 클래스에서 다르게 구현되어야 하는 부분은 추상 메서드로 선언하여 하위 클래스에서 구현하도록 함 템플릿 메서드 예제 이탤릭체로 쓰여진 것은 추상클래스 혹은 메서드이다. run()이 template 메서드 역할을 할 것이다. Car.java package ch10; public abstract class Car { public abstract void drive(); public abstract void stop();.. 2023. 6. 25.
[3주차] Java 중급 - 추상 클래스의 의미와 구현하는 방법 추상 클래스란? // 예시 int add(int x, int y); // 선언 이렇게 선언만 하면 추상 메서드임 int add(int x, int y) { } // 구현부가 있음, 추상 메서드 아님 구현 코드 없이 메서드의 선언만 있는 추상 메서드 (abstract method)를 포함한 클래스 메서드 선언 (declaration) : 반환타입, 메서드 이름, 매개변수로 구성 메서드 정의 (definition) : 메서드 구현 (implementation)과 동일한 의미 구현부(body)를 가짐({ }) abstract 예약어를 사용 추상 클래스는 new 할 수 없음 (인스턴스화 할 수 없음) 추가적으로 추상클래스의 반대는 concrete class (구체적 클래스)이다. 추상 클래스 구현하기 메서드에 .. 2023. 6. 25.