티스토리 뷰
#객체란?
말 그대로 대상을 나타내는 단어입니다.
사람 한명 한명이 객체라 할 수 있고, 책 한권을 객체라 할 수 있습니다.
사람은 생김새와 성격이 똑같을 수는 없기 때문에 개개인을 객체라 할 수 있으며,
책도 내용과 흔적이 모두 다르기 때문에 서로 다른 객체라 할 수 있습니다.
#클래스
사람들은 일반적으로 같은 속성들을 갖고 있습니다.
여기서 속성이란 눈,코,입,손,발 등의 신체들을 의미합니다.
책도 책 이름, 작가, 출판사, 출판일 등 같은 속성을 갖고 있다고 할 수 있습니다.
(ex)
클레스 - 붕어빵 기계
객체 - 붕어빵
#메서드란?
특정 작업을 수행하는 일련의 문장들을 하나로 묶은 것 -함수와 유사
내부적인 내용을 몰라도 입력값과 출력값만 이해해도 된다.
ex) println(), random(), sqrt()
#객체 지향 프로그래밍 (Object Oriented Programing / OOP)
OOP는 객체의 관점에서 프로그래밍 하는 것을 의미합니다.
즉, 애플리케이션을 구성하는 요소들을 객체로 바라보고, 객체들을 유기적으로 연결하여 프로그래밍 하는 것을 말합니다.
#OOP 의 4가지 특징
1. 추상화
👉인터페이스로 클래스들의 공톡적인 특성(변수,메소드)들을 묶어 표현하는 것
장점
- 작업을 효율적으로 수행가능
2.상속
👉자식 클래스가 부모 클래스의 특성과 기능을 물려받는 것
장점
- 철저한 데이터 분석을 수행
- 개발 시간을 단축
- 높은 수준의 정확도
3.다형성
👉하나의 객체에 여러 가지 타입을 대입할 수 있다는 것을 의미
ex)
* 오버로딩(Overloading) : 하나의 클래스에서 메소드의 이름이 같지만, 파라메터가 다른 것* 오버라이딩(Overriding) : 부모 클래스의 메소드를 자식 클래스의 용도에 맞게 재정의하여 코드의 재사용성을 높임
4.캡슐화
👉정보를 객체 내부에 포함하고 선택된 정보만 노출
장점
- 다른 개체에서 변경할 수 없다
- 보안을 강화하고 데이터 손상을 방지한다.
- 데이터를 함수를 통해서만 접근할 수 있다
※참고자료※
https://www.techtarget.com/searchapparchitecture/definition/object-oriented-programming-OO
'개발 > 이론 공부' 카테고리의 다른 글
| 마이크로서비스 아키텍처(MSA) 란? (0) | 2023.10.18 |
|---|---|
| Python) __init__ , self 란? (0) | 2022.11.10 |
| 배열 (Array), 연결리스트 (LinkedList) 란? (0) | 2022.11.09 |
| 자료구조와 알고리즘이란? (0) | 2022.11.08 |
| 오버로딩(Overloading) , 오버라이딩(Overriding) 이란? (0) | 2022.11.08 |