[객체지향]
-객체지향 언어 : 프로그래밍 관점에서는 객체들의 관계성을 사용하여 순차적으로 수행되는 프로그램 내에서 객체들간의 관계를 형성하여 프로그램을 동작하게 함
-변수명은 명사로 짓고 메소드명은 동사로 지음
-객체지향은 절차지향의 반대가 아님
-객체지향도 절차지향언어에 속하지만 객체라는 것의 관계가 추가된 것
객체 : 데이터 + 기능
(예시)
객체 - 컴퓨터
데이터(변수) - 모니터, 본체, 키보드, 마우스, 스피커 등
기능(메소드) - 화면출력, 프로그램 실행, 입력, 소리출력 등
객체지향 언어특징
1. 상속
-의미 그대로 상위 클래스의 모든 것을 상속받아 사용하는 것
-부모와 자식 관계
-부모객체가 가지고 있던 정보를 확장시키는 개념
예시
사람이라는 객체 밑으로 학생이나 선생이라는 객체로 상속을 시킴
2. 캡슐화
-데이터와 기능을 외부로부터 접근은 차단하고 권한 또는 절차 없이 데이터를 변경 또는 기능 수행을 할 수 없게 캡슐처럼 보호함
-데이터의 은닉성
-접근제한자 private
예시
은행에 방문하는 고객이 본인의 돈이라고 해서 바로 꺼낼 수 없음
은행에 있는 돈은 캡슐에 감싸지듯 보호되어있음
3. 추상화
-추상적인 요소들을 묶어서 분류하는 것
-학생, 선생, 학부모 등 사람이라는 추상적인 요소로 분류할 수 있음
-데이터의 구조화
-공통된것을 추출해내는 것
4. 다형성
-객체의 기능이 다향한 형태를 가질 수 있음
-상속과 깊은 관계를 가진다
-한 부모 밑에서 태어난 자식이 완전히 같을수 없듯이 객체 또한 부모 클래스로 부터 상속받은 데이터와 기능을 자식클래스에서 재정의하여 사용할 수 있음
-자료의 형태를 바꾸는 형변환을 하는 것도 다형성의 예시
-메소드의 이름이 동일하지만 다양하게 정의해서 사용가능한 것도 또 하나의 다형성의 예시
-동일한 이름과 동일한 매개변수를 가지고 있지만 다양하게 사용가능한 오버라이딩도 동일한 예시
객체지향 언어의 장점
(절차지향 언어에 상대적임)
1. 재사용성 : 상속을 통해 코드의 재사용을 높일수 있음
2. 생산성 향상 : 클래스 단위의 부품들을 조립
3. 유지보수의 우수성 : 구조화 된 소스코드 클래스단위로 소스코드를 관리할 수 있음
객체지향 언어의 단점
1. 객체를 세분화하여 설계하여야 한다.
2. 실행 속도가 절차지향 언어 대비 느리다.
3. 상속으로 인하여 관계가 많이 형성되면 코딩의 난이도가 높아진다.
'백엔드개발자 준비하기' 카테고리의 다른 글
[백엔드개발자 준비하기] 클래스와 객체 (0) | 2023.01.05 |
---|---|
[백엔드개발자 준비하기] 메소드 (0) | 2023.01.05 |
[백엔드개발자 준비하기] 반복문_별찍기 (0) | 2023.01.04 |
[백엔드개발자 준비하기] 반복문 (0) | 2023.01.04 |
[백엔드개발자 준비하기] 조건문 (0) | 2023.01.04 |