[TIL] 코드 집중화와 추상화

1) 코드 집중화와 추상화

1-1) 코드 집중화를 하는 이유

  • 코드를 집중화하면 유지보수를 할 때 이점이 많다.

1-2) 코드 집중화하기


  • 공통된 기능을 뽑아 하나의 캡슐 단위로 묶는다.

1-3) 코드 집중화의 장점

  • 코드를 집중화 해 일괄처리를 용이하게 할 수 있다.

  • 코드 집중화를 하면 생산성 향상으로 대량 생산이 가능하다.

1-4) 추상클래스는 공통분모이다.


  • Exam 클래스를 통해 다른 여러가지 Exam1,Exam2...등을 파생시킬 수 있다.

  • 뼈대'로만' 써야 하지만 그렇다고 해서 뼈대 그 자체를 이용할 수 없다는 것은 아니다.
    (뼈대만을 이용할 수 있어도 추상클래스이다.)

1-5) abstract의 의미


public abstract class Exam {

}

  • abstract는 추상클래스를 부모(기반)클래스로만 쓰게 한다.

  • 자식 객체를 만들때 부모도 그제서야 비로소 객체가 된다.

  • abstract를 써주면 뼈대로만 독단적으로 쓸 수 없다.

  • paint 메소드를 추상클래스에 올리지 않은 이유는 각 paint가 구현하는 것이 다르기 때문이다.

  • 호출할 때에는 특화된 자료형으로 호출할 수 밖에 없다.

shapes[i].paint(); → shape에 paint가 없으므로 오류가 난다.

  • avg는 올려도 의미가 없다.

  • avg는 Exam에 이름은 올려놓고 구현은 하지 않는다.


public class Exam {
	
    public abstract double avg();
    
}

  • abstract의 의미는 avg가 공통분모로 꼭 필요한 기능이지만 구현은 하지 않았고 자식 객체들에서 구현해야 한다는 것을 나타내준다.

좋은 웹페이지 즐겨찾기