이다닷

[JAVA] Day 4-객체지향 프로그래밍 본문

JAVA

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

이다닷 2021. 7. 28. 15:53

1. 절차지향 프로그래밍이란?

어떤 문제를 해결하기 위한 과정을 순서대로 나열해서 한 단계씩 해결해 나간다. 특정 기능을 수행하는 함수를 만들어 필요할 때 호출해서 실행한 후 그 결과를 받아오는 방식으로 논리적 흐름에 따라 제어하는 방식이다. 뒤죽박죽인 코드의 순서와 기능에 따른 구분이 없이 쭉 나열해서 오류가 발생한 곳을 찾기에도 매우 어려웠기 때문에 등장했다.

2. 객체지향 프로그래밍이란?

프로그램을 짤 때 동일한 목적이나 기능을 하는 변수와 함수들을 각각 하나로 묶어서 객체로 만들고 그 객체들끼리 상호 통신하면서 프로그램 전체가 돌아가도록 코드를 구성한다. 오류가 발생했을 때 프로그램 전체를 살펴보지 않고 각 객체들을 살펴보면서 수정한다는 장점이 있다.

2.1 객체지향 프로그래밍의 특성

  • 추상화
  • 캡슐화
  • 상속성
  • 다형성
  • 동적바인딩

-추상화

공통의 속성이나 기능을 묶어 이름을 붙이는 것이다. 객체 지향적 관점에서 본다면 클래스를 정의하는 것을 바로 추상화라고 정의 내릴 수 있다.

-캡슐화

객체의 필드, 메소드를 하나로 묶고 실제 구현 내용을 감추는 것을 의미한다. 외부의 잘못된 사용으로 인해 객체가 손상되지 못하도록 객체가 노출해서 제공하는 필드와 메소드만 이용할 수 있도록 한다.

-상속성

상위 개념의 특징을 하위 개념이 물려받는 것이다. 상위 클래스의 속성과 기능을 그대로 이어받아 사용할 수 있게하고, 기능의 일부분을 추가해야 할 경우 상속받은 하위클래스에서 해당 기능만 수정하여 사용할 수 있게 한다.

-다형성

하나의 클래스나 메소드가 다양한 방식으로 동작이 가능한 것을 의미한다. 부모클래스에서 상속받은 내용을 자식클래서에서 재정의하고 재정의한 내용을 다시 부모클래스에 덮어쓸 수 있도록하는 오버라이딩과 같은 메소드임에도 불구하고 매개변수가 다를 경우 각기 다른 행위를 하는 오버로딩이 존재한다.

-동적바인딩

공급자가 제공하는 서비스의 추가나 변경이 발생했을 경우 사용자가 영향을 받지 않도록 한다. 실행되는 시점에 호출될 함수가 결정되는 것을 말한다.

'JAVA' 카테고리의 다른 글

[JAVA] Day 5 - 컬렉션 프레임웍  (0) 2021.09.03
[JAVA] Day 3-클래스에 대해서  (0) 2021.07.26
[JAVA] Day 2-메소드  (0) 2021.07.20
[JAVA] Day 2-변수  (0) 2021.07.20
[JAVA] Day 2-배열  (0) 2021.07.20