백엔드/Java

[Java] 객체지향언어의 특징

Se Yeon 2022. 9. 27. 08:40

객체지향프로그래밍(Object Oriented Programing) 이란 ?

 

컴퓨터 프로그래밍의  한가지 기법으로 객체를 생성하고 사용하는 프로그래밍 방법이다.
프로그램을 그저 데이터와 처리방법으로 나누는게 아닌 다수의 객체를 만들고 이들의 상호작용을 통해 만들어지는 방식이다.

명령어들로 이루어진 목록이 아니라 역할이 나뉘어져 있는 독립된 객체들의 그룹으로 생각하면 편하다.



객체 지향 프로그래밍(OOP)의 특징

 캡슐화

    캡슐화는 일반적으로 변수와 함수를 클래스로 묶는 작업을 말한다. private으로 정의하며 정보은닉이 가능하다는 장점이 있다. 

상속

  자식 클래스에서 부모 클래스로부터 부모의 모든 자원을 물려받는 것을 의미한다. 지정예약어인 extends에 의해서 정해진다. 하나의 부모 클래스가 여러 자식 클래스를 가질 순 있지만 반대의  경우는 불가능하다.


다형성

  다형성은 형태가 같은데 다른 기능을 하는 것을 의미한다. 예를 들어서 고양이 클래스에 "울음"이라는 속성이 정의되어있다고 한다면 사자도 같은 고양이과이기에 "울음"을 상속받는다. 이것이 앞에서 말한 상속이다. 하지만 실제로 사자와 고양이의 울음소리는 다르기 때문에 고양이는 "야옹" 사자는 "크아앙" 이렇게  운다. 이렇게 같은 속성을 상속받아도 기능이 다른것을 다형성이라고 한다. 다른곳에서 본 예시인데 가장 잘 와닿는거같다.



추상화

  추상화는 객체들의 공통적인 특징을 묶어서 하나의 클래스로 정의하는 것을 말한다. 예를 들어서 연어 초밥과 새우 초밥은 서로 다른 객체지만 공통점이 있다. 이러한 공통점을 묶어서 "초밥"이라는 클래스로 묶을 수 있는 것이다.