230223_자바 기초

왕감자·2023년 2월 23일
1

강의 메모

목록 보기
1/6

TDD(Test Driven Development) 방법론

  • 실패하는 테스트를 만든다.
  • 실패를 제거하라(어떠한 꼼수도 사용가능)
  • 리팩토링

TDD 단계

  1. Red 단계에서는 실패하는 테스트 코드를 먼저 작성
  2. Green 단계에서는 테스트 코드를 성공시키기 위한 실제 코드를 작성
  • 최대한 빠르게 작성(5분~10분)
  1. Blue 단계에서는 중복 코드 제거, 일반화 등의 리팩토링
  2. 1부터 반복

Java 클래스

자바는 기본적으로 초기화를 안하면 null 값(쓰레기 값)이 들어간다.
클래스는 설계도(not 객체, 인스턴스)
멤버 변수를 스태틱 변수로 만들면 각각의 객체에 해당 변수가 존재하지 않는다. 오직 클래스가 변수를 가진다.

클래스가 하는 일: 3가지

  • 변수 만들기
  • 객체 만들기
  • 리모컨 만들기
int a;					// 정수만 담을 수 있는 변수 a 생성, 정수 쓰레기값 0이 들어가있다.
a = 10; 				// a라는 변수에는 오직 정수만 들어갈 수 있다.

class Car(){			// 설계도
	void run();			// 기능이 3가지
    void lightOn();
    void lightOff();
}

// 클래스는
/* 가짜 리모컨 */
Car aCar; 				// aCar라는 객체를 가리키는 레퍼런스에 null 값(쓰레기 리모컨)
						// 기능이 3가지인 자동차가 있는데 그 자동차를 조종하려면 리모컨 버튼이 3개 있어야한다.
aCar.run();				// error: NullPointerException

Car aCar = new Car();
/* 자동차 설계도(클래스)로 자동차 객체를 변수 외!부!에 만든다.
   자동차 객체는 자신을 조종할 수 있는 리모콘(this)를 가지고 태어난다. 
   즉 자동차 객체 만들 때 자동차 리모콘도 같이 만들어진다.
   자동차 객체는 자신이 들고 있는 리모콘(this)를 복사해서 반환한다.
   a자동차 안에 들어있던 쓰레기 리모콘이 진짜 리모콘으로 대체된다. */

Java 상속

extends 키워드(is로 생각하고 써라)
상속은 오직 하나만 가능하다.
객체지향은 중복코드를 없애기 위해서 존재한다. 객체지향적인 방식으로
객체지향
상속했을 때 override(재정의) 자식은 자신의 메소드가 우선순위가 높다.
자바는 다중상속을 막는다. 상속 받은 두 부모의 메소드가 겹칠때 애매한 지점이 생길 수 있기 때문이다.

double d = 1; 			// 자동형변환 
무기 a무기 = new(); 	// 칼 리모컨이 생기는데, 무기리모컨으로 형변환해서 들어간다. (자동형변환)

a무기.공격(); 			// error: 무기 클래스에 기능(메소드, 버튼)이 없음.

class 무기(){}

classextends 무기{
	void 공격(){
    System.out.println("칼로 공격합니다.");
    }
}

예제

// 문제 : 자동차 리모콘이 페라리 객체를 가리키게 한 후
// 해당 리모콘이 가리키고 있는 객체를 다시 페라리 리모콘으로 가리키게(참조하게) 하는 코드를 작성해주세요.

class Main {
    public static void main(String[] args) {
        자동차 차1 = new 페라리();

        페라리 페라리차 = (페라리)1;
    }
}
class 자동차 {
    void 달리다() {}
    void 서다() {}
}
class 페라리 extends 자동차 {
    void 뚜껑이_열리다() {}
}
profile
감자 심기

0개의 댓글