-
JAVA 이론(5)JAVA 2022. 6. 20. 13:47
OOP
: Object Oriented Programming
객체란?
- 여러가지 데이터들이 모여 있는 복잡한 자료형
- 내가 만드는 나만의 새로운 자료형
- 내가 새롭게 만드는 나만의 도구
ex) Scanner, Random, Math
Class(클래스)
: 실제 Object를 제작하기 전 설계하는 도면
Object(객체)
: 클래스(설계도)를 기반으로 실제로 메모리에 할당되는 것
객체지향프로그래밍의 특징
추상화(Abstract)
- 객체에서 공통된 속성과 행위를 추출하는 기법
- 코드 상에서 구현(로직)부분을 제외한 오직 선언 부분만을 설계
- 상세한 정보는 무시하고 필요한 정보들만 간추려서 구성
캡슐화(Encapsulation)
- 관련된 필드(속성)와 메소드(기능)를 하나로 묶고, 실제 구현 내용을 외부로부터 감추는 기법(정보은닉)
- 만일의 상황(타인이 외부에서 조작)을 대비해서 특정 속성이나 메소드를 사용자가 조작할 수 없도록 숨겨 놓은 것
- 외부에서는 공개된 메소드(기능)의 인터페이스를 통해 접근할 수 있다
상속(Inheritance)
- 이미 작성된 클래스(상위클래스)의 특성을 그대로 이어받아 새로운 클래스(하위클래스)를 생성하는 기법
- 기존 코드를 그대로 재사용하거나 재정의 -> 재사용 + 확장
다형성(Polymorphism)
- 사전적 의미 '다양한 형태로 나타날 수 있는 능력'
- 같은 기능(메소드)를 호출하더라도 객체에 따라 다르게 동작하는 것
- 상위클래스의 동작을 하위클래스에서 다시 정의하여 사용(Overriding 오버라이딩)하는 것 또한 다형성임
객체지향프로그래밍의 장점
- 신뢰성 있는 소프트웨어를 쉽게 작성할 수 있음
- 코드를 재사용하기 쉬움
- 유지보수가 용이함
- 직관적인 코드 분석이 가능함
- 소프트웨어 생산성 향상
속성, 데이터 = 필드명
행위, 기능, 로직 = 메소드'JAVA' 카테고리의 다른 글
JAVA 이론 (7) (0) 2022.06.20 JAVA 이론 (6) (0) 2022.06.20 JAVA 이론(4) (0) 2022.06.17 JAVA 이론(3) (0) 2022.06.17 JAVA 이론(2) (0) 2022.06.16