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 |