[JAVA] 객체지향프로그래밍

김주현·2021년 3월 31일
0

객체지향이란 객체를 만드는 것입니다.
여기서 객체란 변수와 메소드의 집합입니다.

여기서 본문이 있으면 객체 안에는 본문과 관련된 메소드와 변수가 모여있는 것이고, 댓글 안에는 댓글과 관련된 메소드와 변수가 있을 것입니다.
서로 연관이 있는 것은 객체에 속해있게 되고, 연관성이 떨어지면 객체라는 껍데기를 중심으로 구분,분류되는 것입니다.

객체지향의 특성은 크게 추상화,캡슐화,상속성,다형성이 있습니다.

추상화 (abstract)

추상화란 공통의 속성이나 기능을 묶어 이름을 붙이는 것입니다.

  • 오버워치 -> 블리자드가 만든 FPS 게임 -> FPS 게임 -> 게임
  • 소나타 -> 중형 세단 -> 세단 -> 자동차 -> 이동수단
  • 아이폰7 -> 아이폰 -> 스마트폰 -> 휴대전화 -> 무선 전화기 -> 전화기 -> 통신 기기 -> 기계…

위와같이 일상 속에 보이는 대부분의 개념들을 추상화할 수 있습니다.

부품화

하나의 프로그램은 여러 형태의 로직으로 구성되어 있고, 그 로직과 관련된 변수와 메소드로 그룹화 한 것이 객체입니다.
이렇게 객체를 만들면 다른 곳에도 활용할 수 있게 되고 재활용성이 높아집니다. 마치 객체를 다른곳에도 재활용 가능하도록 부품화한다는 것입니다. 부품화는 한개로 이루어져 있지 않고 여러개의 부품으로 구성되어 있고 문제가 발생했을 때 찾기 쉽고 각 부품마다 상속을 받을 수 있습니다.

캡슐화와 은닉화

캡슐화란 속성과 행위들을 관련있는 것끼리 묶는 것입니다.
이 때 중요한 것은 외부에서 접근이 필요한 부분을 제외하고는 내부로 숨기는 것입니다.
외부로부터 세부적인 내용을 숨기는 것을 정보 은닉(information hiding)이라고 합니다.

상속

상속은 객체지향의 핵심 기능 중에 하나로 대상이 되는 클래스의 모든 특징들을 물려 받는 것을 말합니다.

인터페이스

인터페이스는 연결점 같은 역할을 해서 케이블처럼 공유하는 역할을 해줍니다.

2개의 댓글

comment-user-thumbnail
2021년 3월 31일

1) 객체라는 것은 추상클래스로 선언한 클래스 변수들을 총칭하는 것.
2) 인터페이스는, 추상클래스로 만든 객체가 한 두개가 아니라, 엄청나게 많은 경우, 이 객체들에게 일괄적으로 동일 메서드(함수)를 적용하는 방법. (https://wikidocs.net/217)

1개의 답글