시소당
1. 객체지향
객체는 시스템을 구성하는 실체로서 각 객체는 한 구성원의 특성과 상태변화를 구현하는 기본 단위라 할 수 있다.
즉, 소프트웨어를 구성하고 실제 소프트웨어를 작동시키는 실체들 다시 말하자면 논리와 데이터가 분리되어 있는 기존의 구조적 사고에서 과감히 탈피하여 논리와 데이터가 결합된 객체들이 시스템을 이룬다는 것이다.
2. 객체지향 프로그래밍의 장점
- 생산성 향상
- 자연적인 모델링
객체, 클래스, 속성 상속 및 다형성 등은 우리의 일상생활에서 보통 사람들이 대하고 생각하는 방식을 그래도 프로그램 언어로 표현 할 수 있게 해준다.
- 재사용
한 프로그램 내에서 subclass들이 superclass의 속성을 표현한 코드를 재사용하며, 새로운 프로그램 개발시 기존 프로그램이 갖고 있는 클래스 상속 구조에서 많은 클래스들을 재사용 할 수 있다.
- 유지보수
기존의 기능을 수정시 함수를 새롭게 바꾸더라도 캡슐화와 그 함수의 세부 정보가 은폐되어 있어 주변에 미치는 영향을 최소화 한다. 새로운 객체의 종류를 추가시에는 속성 상속을 통하여 기존의 기능을 활용하고 존재하지 않은 새로운 속상만 추가하면 되므로 매우 경제적이다.
그밖에 점진적 프로그램 개발의 용이성, 요구사항 변화에 대한 안정된 프로그램 구조 등의 장점을 들 수 있다.
3. 객체지향 프로그래밍의 활용에 따른 고안할 점
재 사용성과 실용적인 프로그래밍을 위해서는 이보다 좋은 방법은 없을 것이다. 하지만 초기 설계가 중요하다. 막상 객체를 구성하고도 쓰임이 거의 없거나 유연성을 보장해 주지 않는다면 확장성 및 변화에 기민하게 대처하기 힘들다. 가장 중요한 점은 기존 개발된 코드에 영향을 최소화하며 열려있는 구조로 디자인해야 객체지향의 효과를 누릴 수 있다.
즉, 요구사항 변화에 대해 안정된 프로그램 구조를 갖도록 하는것이 최상의 목표이다.
4. 변수 권한 활용
권한이란 적용범위를 정하는 것이다. 외부 환경에 열리거나 닫혀있음인데 이를 적절히 사용하지 못하면 뜻하지 않은 오류를 범할 수 있으며 예측되지 못한 예외 상황이 나타날 수 있다.
public : 어느 class에서나 참조가능
protected : 같은 package내의 calss에서만 참조가능. 자식 class가 다른 package에 있을경우, 그 자식 class도 참조가능.
default : 같은 package내의 calss에서만 참조가능.
private : 같은 class 내에서만 참조 가능.
5. 추상 클래스 활용
추상 클래스는 선언부만 있지 실제 body가 없는 메소드를 포함한 클래스 이다.
활 용 대상은 superclass에서 공통된(필수) 기능은 메소드에 정의를 하여 subclass에서 상속하여 사용토록 하며 특화된 기능은 추상 메소드화 해서 subclass에서 각각의 요구조건에 맞게 정의하여 사용할 때 효과적이다.
6. 인터페이스 활용
인 터페이스란 서로 관계가 없는 객체들이 서로 상호 작용을 하기 위해 사용되는 방법이다. 이는 합의된 행동을 의미하는 프로토콜과 가장 유사한 개념이다. 가장 큰 장점으로는 기존 코드의 오염을 가하지 않는 조건에서 재사용과 호환성이 매우 높은 유연한 프로그램을 만들수 있다.
- 서로 관계가 없는 클래스들 사이의 유사한 특성들을 부자연스러운 클래스 관계를 설정하지 않고 얻어내야 하는 경우
- 하나 또는 그 이상의 클래스들에서 똑같이 구현 되어질 것 같은 메서드를 선언해야 하는 경우
- 클래스 자체를 드러내지 않고 객체의 프로그래밍 인터페이스를 제공해야 하는 경우
출처 : http://ingenuity.egloos.com/category/JAVA