객체지향(OOP : Object-Priented Programming)
--> 객체란 세상에 존재하는 모든 것을 의미 즉, 주변의 사물, 생명 등을 만한다.
프로그래밍 관점에서는 객체들의 관계성을 사용하여 순차적으로 수행되는 프로그램 내에서 객체들 간에 관계를 형성하여 프로그램을 동작하한다.
<객체의 예시>
객체 = 데이터 + 기능
객체 = 컴퓨터(pc)
데이터(변수) = 모니터, 본체, 키보드, 마우스, 스피커등
기능(메소드) = 화면출력, 프로그램 실행, 입력, 소리출력 등
객체지향 언어의 특징
- 상속
- 캠슐화
- 추상화 : 추상적인 설계도
- 다형성
상속 : 의미 그대로 상위 클래스의 모든 것을 상속받아 사용하는 것 (데이터의 관계성)
캡슐화 : 데이터와 기능을 외부로부터 접근을 차단하고 권한 또는 절차 없이 데이터를 변경 또는 기능 수행을 할 수 없게 캡슐처럼 보호함 (데이터의 은닉성)
추상화 : 추상적인 요소들을 묶어서 분류하는 것
다향성 : 객체의 기능이 다양한 형태를 가질 수 있음. 상속과 깊은 관계를 가진다.
객체지향 언어의 장점
1. 재사용성 : 상속을 통해 코드의 재사용을 높일 수 있음
2. 생산성 향상 : 클래스 단위의 부품들을 조립
3. 유지보수의 우수성 : 구조화 된 소스코드 클래스단위로 소스코드를 관리할 수 있음
객체지향 언어의 단점
1. 객체를 세분화하여 설계하여야 한다.
2. 실행 속도가 절차지향 언어 대비 느리다.
3. 상속으로 인하여 관계 가 많이 형성되면 코딩의 난이도가 높아진다.
클래스 : 객체에 대하여 정의해 높은 설계도 혹은 (틀)이다.
Object : 클래스를 통해 구현 할 수 있는 모든 대상 즉, 해당 클래스로 구현한 인스턴스를 대표하는 의미.
Instance (인스턴스// 실체가 있는것 ) : 객체가 실제로 구현된 것. 클래스의 인스턴스라고 표현한다.
'Java' 카테고리의 다른 글
22/05/24JAVA (DAY10) (0) | 2022.05.26 |
---|---|
22/05/20JAVA (DAY08) (0) | 2022.05.26 |
22/05/19 JAVA (DAY7) (0) | 2022.05.19 |
22/05/18 JAVA (DAY06) (0) | 2022.05.19 |
22/05/17 JAVA (DAY05) (0) | 2022.05.19 |
댓글