본문 바로가기

개발/Java

(56) GITHUB 방명록
추상 클래스의 응용 - 템플릿 메서드 패턴 개발/Java / 2021. 4. 26. 템플릿 메서드 추상 메서드나 구현된 메서드를 활용하여 코드의 흐름(시나리오)을 정의하는 메서드 final로 선언하여 하위 클래스에서 재정의 할 수 없게 함 프레임워크에서 많이 사용되는 설계 패턴 추상 클래스로 선언된 상위 클래스에서 템플릿 메서드를 활용하여 전체적인 흐름을 정의하고 하위 클래스에서 다르게 구현되어야 하는 부분은 추상 메서드로 선언하여 하위 클래스에서 구현하도록 함 템플릿 메서드 예제 1. 추상 클래스 Car 구현 public abstract class Car { public abstract void drive(); public abstract void stop(); public void startCar() { System.out.println("시동을 켭니다."); } public voi..
추상 클래스(abstract class) 개발/Java / 2021. 4. 26. 추상 클래스란? 구현 코드 없이 메서드의 선언만 있는 추상 메서드(abstrct method)를 포함한 클래스 메서드 선언(declaration) : 반환 타입, 메서드 이름, 매개변수로 구성 메서드 정의(definition) : 메서드 구현(implementation)과 동일한 의미 구현부(body)를 가짐 → ({ }) int add(int x, int y); //선언 int add(int x, int y) { } // 구현부가 있음, 추상 메서드 아님 abstract 예약어를 사용 추상 클래스는 new 할 수 없음( 인스턴스화 할 수 없음) 추상 클래스 구현하기 메서드에 구현 코드가 없으면 abstract로 선언 abstract로 선언된 메서드를 가진 클래스는 abstract로 선언 모든 메서드가 ..
다운 캐스팅과 instanceof 개발/Java / 2021. 4. 26. 다운 캐스팅(downcasting) 업캐스팅된 클래스를 다시 원래의 타입으로 형 변환 하위 클래스로의 형 변환은 명시적으로 해야 함 *앞 예제 코드 Customer vc = new VIPCustomer( ); //묵시적 VIPCustomer vCustomer = (VIPCustomer) vc; //명시적 Instanceof Instanceof를 이용하여 인스턴스의 형 체크 원래 인스턴스의 형이 맞는지 여부를 체크하는 키워드 True / False를 반환 *앞 예제 코드 if ( customerE instanceof GoldCustomer) { GoldCustomer vc = (GoldCustomer)customerE; System.out.println(customerE.showCustomerInfo( )..
오버라이딩(Overriding) 개발/Java / 2021. 4. 25. 오버라이딩(Overriding) 상속받은 하위 클래스에서 메서드 재정의 하기 상위 클래스에 정의된 메서드의 구현 내용이 하위 클래스에서 구현할 내용과 맞지 않는 경우 하위 클래스에서 동일한 이름의 메서드를 재정의 할 수 있음 전 상속 내용에서 봤던 예제를 보면.. Customer클래스에는 calcPrice( )[할인율] 메서드가 선언되어있지만, VIPCustomer 클래스에는 적용 X 재정의 구현 예제 @Override public int calcPrice(int price) { bonusPoint += price * bonusRatio; return price - (int)(price * salesRatio); } @overriding 애노테이션 (annotation) annotation은 spring..
객체 간의 상속 개발/Java / 2021. 4. 24. 클래스 상속 · 새로운 클래스를 정의할 때 이미 구현된 클래스를 상속(inheritance) 받아서 속성이나 기능을 확장하여 클래스를 구현 · 이미 구현된 클래스보다 더 구체적인 기능을 가진 클래스를 구현해야 할 때 기존 클래스를 상속 상속하는 클래스 : 상위 클래스, parent class, base class, super class 상속받는 클래스 : 하위 클래스, child class, derived class, subclass 상속의 문법 class B extends A { } extends 키워드 뒤에는 단 하나의 클래스만 올 수 있음 자바는 단일 상속(single inheritance)만을 지원 상속을 구현하는 경우 ① 상위 클래스는 하위 클래스보다 더 일반적인 개념과 기능을 가짐. ② 하위 ..
객체 배열을 구현한 클래스 ArrayList 개발/Java / 2021. 4. 23. ArrayList java.util 패키지에서 제공 - ArrayList는 객체 배열을 좀 더 효율적으로 관리하기 위해 자바에서 제공해 주는 클래스 기존의 배열 선언과 사용 방식 · 배열의 길이를 정하고 요소의 개수가 배열의 길이보다 커지면 배열을 재할당하고 복사 · 배열의 요소를 추가하거나 삭제하면 다른 요소들의 이동에 대한 구현을 해야 함 객체 배열 생성 ArrayList 변수명 = new ArrayList(); ArrayList 사용 예제

반응형