학습(구)/Java(구)

클래스와 객체

잉아당 2021. 3. 18. 21:50
728x90

객체지향 프로그래밍

- 실 객체를 SW 객체로, 사건을 메시지로 모델링 하여 프로그램을 제작하는 기술입니다.

- 이벤트 드리븐을 주로 객체지향으로 작성합니다.

 

절차지향 프로그래밍

- 프로그램 드리븐을 주로 절차지향으로 작성합니다..

- 연산 프로그래밍시 주로 사용 되며 UI가 없는 프로그램입니다.

 

클래스화(Classification)
- 실 객체들을 모두 모아 하나의 클래스로 기술 하는것을 말합니다.

- 모든 객체는 클래스 기반으로 생성됩니다.

- 이때 객체의 내용 뿐만 아니라 클래스의 내용도 포함하므로 주의 해야 합니다.

 

추상화(Abstraction)

- 답을 구하는 것과 관련이 적거나 없는 부분을 요약 및 생략하여 간단하게 만드는 기술입니다.

- 설계 및 구현의 복잡성을 제거하는데 모든 부분을 개발자가 판단합니다.

 

상속(Inheritance)

- 부모의 멤버를 자식이 물려받는 행위 입니다.

- 설계가 용이 해지고 중복 코딩을 방지해줍니다.

 

캡슐화(Encapsulation)

- 멤버를 캡슐로 싸서 보호하는 기술입니다.

- 객체사이의 관계 단순화를 실현 해줍니다. 이는 필요한 부분만 보여주기 때문에 결합도가 낮아져 가능합니다.

- 데이터는 프로퍼티 구현으로 캡슐화를 나타냅니다. Getter,Setter가 있는 것을 의미합니다.

ex) 기존 에는 배열을 사용하고 캡슐화가 되어있지 않아 이를 사용하는 객체들은 직접 사용하고 있습니다. 이때 배열이 링크드 리스트로 변경을 하게 되면 사용하는 객체들의 모든 방식을 전부 변경해 주어야 합니다. 그러나 Getter,Setter를 사용하고 있을 경우 해당 부분만 변경하면 되기때문에 로컬라이즈를 구현하기 편합니다.

 

다형성(Polymorphism)

- 객체 지향에서 가장 중요한 개념으로 프레임워크 기반 프로그램 제작을 가능하게 만들어줍니다.

- 하나의 문장으로 다양한 기능을 수행하게 하는데 업캐스팅, 오버라이딩, 메서드 동적바인딩 등을 이용해 구현합니다.

 

객체 관계 

- 관계를 맺지 못하고 있는 객체의 경우 JVM의 쓰레기 수집기가 이를 회수합니다.

- 상속 관계 : 상속에 의한 관계입니다.

- 포함관계 : 객체의 필드에 의해 구현되어 부품으로써 사용되는 관계입니다. 즉 다른 객체의 주소를 가지고 있습니다.

ex)중첩 클래스 및 중첩 인터페이스

- 사용관계 : 메서드 호출에 의해 맺어지는 관계로 별도의 객체로 이루어져 메서드를 통해 일을 요청하는 관계입니다.

'학습(구) > Java(구)' 카테고리의 다른 글

오버로딩과 오버라이딩  (0) 2021.03.22
클래스와 객체의 멤버  (0) 2021.03.22
제어문  (0) 2021.03.18
타입 변환과 다형성 구현  (0) 2021.03.18
참조 타입  (0) 2021.03.17