TDD - Test Driven Development 방법론
테스트케이스 - 테스트 자동화 기술
TDD 개발 방식의 장점
TDD 개발 방식의 단점
TDD 방식에 대한 개인적인 생각
참고: http://clipsoft.co.kr/wp/blog/tddtest-driven-development-%EB%B0%A9%EB%B2%95%EB%A1%A0/
static 개념과 쓰임새
상속
class 오리 {
void 날다() {
System.out.println("오리가 날개로 날아갑니다.");
}
}
class 흰오리 extends 오리 {
}
class 고무오리 extends 오리 {
// 메서드 오버라이드
// 메서드 재정의 => 부모가 물려준 능력을 다시 구현한다.
void 날다() {
System.out.println("저는 날 수 없어요. ㅜㅠ");
}
}
class 로봇오리 extends 오리 {
void 공격() {
System.out.println("오리 공격!");
}
}
흰오리, 고무오리, 로봇오리는 모두 오리를 상속하고 있다. 따라서 오리는 아래 세 클래스의 부모 클래스.
오리를 상속하고 있는 세 클래스는 모두 오리클래스에 정의되어 있는 날다() 메서드를 사용할 수 있다.
그러나 자바에서는 다중 상속이 안되기 때문에 상황이 조금만 복잡해지면 한계가 있다.
다중 상속은 클래스가 동시에 하나 이상의 클래스를 상속받는 것을 뜻함. (아래와 같은 코드)
class C extends A, B {...}
자바는 이러한 불명확한 부분을 컴파일 타임에 애초에 잘라 낸 strict한 언어이다.
[개인적인 궁금증] 오버라이딩(Overriding) vs 오버로딩(Overloading)
참고: https://wikidocs.net/280#method-overriding
자동 형변환
// 가능
int i = 5;
float d = i;
// 불가능 -> 자바 컴파일 에러
float d = 5.0f;
int i = d;
class 자동차 {}
class 스파크 extends 자동차 {}
public static void main(String[] args){
자동차 a자동차 = new 스파크(); // 스파크 -> 자동차 형변환 (ok)
스파크 a스파크 = a자동차; // 자동차 -> 스파크 (X); 컴파일 에러
}
스파크 a스파크 = (스파크) a자동차; // (자동차 -> 스파크) -> 스파크 (ok)
참고: [LIKELION] 장희성 강사님 예제