객체지향 프로그래밍 (Object-Oriented Programming)
Sunrin/Layer7

객체지향 프로그래밍 (Object-Oriented Programming)

1. 객체란?

1) 객체

 

객체는 어떠한 행동을 포함하는 데이터이다.

자신의 속성을 갖고 있고 다른 것과 식별이 가능한 것을 말한다.

 

 - 데이터 : 이름과 값을 가지는 속성이다.

 - 동작 : 일련의 동작을 정의한 함수이다.

 

자바에서 이런 속성과 동작을 각각 필드와 메소드라고 부른다.

 

 

2) 객체의 예시

 

개가 있다. 하지만 개의 속성은 모두 다르다.

 

Property

 dog.name = "meongmeong"
 dog.sound = "bowwow"
 dog.age = 5
 dog.color = "brown"

2. 객체지향 프로그래밍 언어의 특징

1) 캡슐화 Encapsulation

 : 데이터와 데이터를 처리하는 함수를 하나로 묶은 것을 의미한다.

 (1) 캡슐화된 내용이 외부에 정보 은닉이 되어 변경이 발생할 때 오류의 파급 효과가 적다.

 (2) 재사용에 용이하다.

 

2) 상속 Inheritance

 : 부모 클래스의 모든 속성과 연산을 자식 클래스가 물려받는 것을 의미한다.

 (1) 자식 클래스 내에서 속성과 연산을 다시 정의하지 않아도 

      부모의 클래스를 자신의 클래스처럼 사용할 수 있다. (반대로는 불가능)

 (2) 자식 클래스는 부모 클래스로부터 상속받은 것 + 추가해서 사용할 수 있다. (재사용 가능)

 

3) 다형성 Polymorphism

 : 같은 타입이지만 실행결과가 다양한 객체를 이용할 수 있는 성질이다.

 (1) 하나의 메세지에 대해 각 클래스가 가지고 있는 고유한 방법으로 응답할 수 있는 것 (???)

 (2) ㄴ> 쉽게 말해 프로그램 언어의 각 요소들이 다양한 자료형에 속하는 것이 허가되는 성질이다.

 


3. 객체지향 프로그래밍이 필요한 이유

객체가 필요한 이유를 학교에 비유해보자

프로그램 학교
객체 정보보호과, 소프트웨어과, IT경영과, 콘텐츠디자인과
데이터 정보과의 데이터,
솦과의 데이터,
아경과의 데이터,
콘디과의 데이터
객체마다 고유한 데이터와 동작이 있다.

1) 객체마다 어떻게 기능하는지, 크게는 프로그램이 어떤
    동작을 하는지 쉽게 파악할 수 있다.

2) 객체끼리 고유의 데이터를 함부로 볼 수 없다.
과(부서)마다 고유한 데이터와 업무가 있다.

1) 과마다 어떻게 기능하는지, 크게 학교는 무슨일을 하는지
   쉽게 파악할 수 있다.

2) 부서끼리 부서의 데이터를 함부로 볼 수 없다.(은닉화)

 

 

'Sunrin > Layer7' 카테고리의 다른 글

HackCTF : Cryptography, Smooth CipherText, Classic Cipher  (0) 2020.11.06
컨테이너와 도커  (0) 2020.09.16
Stack pivoting  (0) 2020.09.08
운영체제의 메모리 할당 알고리즘  (0) 2020.09.02
Codegate 2018 BaskinRobbins31  (0) 2020.09.02