현실세계 에서 어떤 제품을 만들때 부품을 먼저 개발하고 이 부품들을 하나씩 조립해서 완성된 제품을 만들듯이, 소프트웨어를 개발할 때에도 부품에 해당하는 객체들을 먼저 만들고, 이것들을 하나씩 조립해서 완성된 프로그램을 만드는 기법을 객체 지향 프로그래밍(OOP: Object Oriented Programming) 이라고 한다
그러면 객체란?
객체란 물리적으로 존재하거나 추상적으로 생각할수 있는 것 중에서 자신의 속성을 가지고 있고 다른 것과 식별 가능한 것을 말한다. 예를 들어 물리적으로 존재하는 자동차, 자전거, 책, 사람과 추상적인 학과, 강의, 주문등이 모두 객체가 될수 있다.
객체는 속성과 동작으로 구성되어 있는데 예를 들어 사람은 이름, 나이등의 속성과 웃다, 걷다 등의 동작이 있다. 자바는 이속성과 동작들을 각각 필드와 메소드라고 부른다.
객체의 상호작용
현실세계에서 일어나는 모든 현상은 객체와 객체간의 상호작용으로 이루어져 있다. 객체들은 각각 독립적으로 존재하고, 다른객체와 서로 상호작용 하면서 동작한다. 객체들 사이의 상호작용 수단은 메소드이고 객체가 다른 객체의 기능을 이용하는 것이 바로 메소드 호출이다.
객체 간의 관계
객체는 개별적으로 사용될수 있지만, 대부분 다른 객체와 관계를 맺고 있다. 이 관계의 종료에는 집합 관계 , 사용관계가 있다. 집합 관계에 있는 객체는 하나는 부품이고, 하나는 완성품에 해당한다. 예를 들어 자동차는 엔진, 타이어, 핸들 등으로 구성되므로 자동차와 이부품들은 집합의 관계라고 할수 있다.
객체 지향 프로그래밍(OOP:Object Oriented Programming)
만들고자 하는 완성품인 객체를 모델링하고, 집함 관계에 있는 부품 객체와 사용 관계이 있는 객체를 하나씩 설계한 후 조립하는 방식으로 프로그램을 개발하는 기법이다.
객체지향 프로그래밍의 특징!
특징으로는 캡슐화, 상속, 다형성을 들수 있다. 여기서는 캡슐화를 다뤄볼 예정이다.
캡슐화(Encapsulation)
캡슐화란 객체의 필드, 메소드 를 하나로 묶고, 외부객체는 객체내부의 구조를 알지 못하며 객체가 노출해서 제공하는 필드와 메소드만 이용할 수 있다.
캡슐화 하는이유는 외부의 잘못된 사용으로 인해 객체가 손상되지 않도록 하는데 있다. 자바 언어는 캡슐화된 멤버를 노출시킬 것인지, 숨걸것인지를 결정하기 위해 접근 제한자(Access Modifier)를 사용한다. 접근 제한자는 객체의 필드와 메소드의 사용 범위를 제한함으로써 외부로부터 보호한다.
'JAVA' 카테고리의 다른 글
다형성(Polymorphism) (0) | 2020.11.09 |
---|---|
상속(InherItance) (0) | 2020.11.09 |
람다식(3) (0) | 2020.11.01 |
람다식(2) (0) | 2020.11.01 |
람다식이란? (0) | 2020.11.01 |