#12 Java_객체 지양 프로그래밍
Back/Java 2022. 12. 20.(Object Oriented Programming)
줄여서 : OOP
더보기
대표적으로 C, fortran, COBOL이 있다.
단점은 길고, 수정이 불편하다는 점
목차
- 객체 지향 프로그래밍의 특징
- 객체 지향 프로그래밍의 장점
- 캐스팅
- 인터페이스
예시 : Java, C#, Python
대규모 프로젝트에 쓰이게 된다.
여러 개의 독립된 단위
객체들의 모임으로 파악하고자 하는 것
각각의 객체는 메시지를 주고 받고 메시지를 처리한다
컴퓨터가 수행하는 작업을 객체들간의 상호작용으로 표현
객체들의 집합으로 프로그램 작성
Class (클래스) | Object (객체) |
객체를 정의해 놓은 것 객체를 정의하는 틀 또는 설계도 |
Created from the Class 클래스의 인스턴트 |
Field : 해당 클래스 내에 정의된 변수를 의미, 졍의된 변수는 객체의 특성을 나타냄 | 설계도를 통해 만들어진 것 |
Method : 객체가 행해야 하는 작업을 기술한 것, 객체의 기능 |
객체 지향 프로그래밍의 특징
추상화(Abstraction)
: 객체에서 공통된 속성과 행위를 추출하는 기법
코드 상에서 구현(로직) 부분을 제외한 오직 선언부분만을 설계
상세한 정보는 무시하고 필요한 정보들만 간추려서 구성
캡슐화(Encapsulation)
: 관련된 필드(속성)와 메소드(기능)을 하나로 묶고, 실제 구현 내용을 외부로부터 감추는 기법 (정보 은닉)
만일의 상황(타인이 외부에서 조작)을 대비해서 특정 속성이나 메소드를 사용자가 조작할 수 없도록 숨겨놓은 것
외부에서는 공개된 메소드(기능)의 인터페이스를 통해 접근 가능
상속 (Interitance)
: extends (명)
기존 코드를 재사용하거나 재정의(오버라이딩) → 재사용 + 확장
상속의 필요성
- 기존 클래스(상위클래스)의 변수와 코드를 재사용 하여 새로운 클래스(하위클래스) 를 생성 → 코드의 중복 감소, 클래스 간결화
- 먼저 작성된 검증된 프로그램을 재사용 → 신뢰성 있는 프로그램 쉽게 개발
- 클래스간 계층적 분류 및 관리 →유지보수 용이
상속 특징
- 자바 상속은 다중 상속을 지원하지 않는다. →하나의 슈퍼클래스만 가질 수 있음
- 상속의 횟수에 제한을 두지 않는다.
- 최상위 클래스는 Object이다.
다형성 (Polymorphism)
: 사전적 의미 : 다양한 형태로 나타날 수 있는 능력
같은 기능(메소드)을 호출하더라도 객체에 따라 다르게 동작하는 것
상위클래스의 동작을 하위클래스에서 다시 정의하여 사용하는 것(오버라이딩, Overrding) 또한 다형성이라고 볼 수 있다.
객체 지향 프로그래밍의 장점
a. 신뢰성 있는 소프트웨어를 쉽게 작성할 수 있다.
b. 코드를 재사용하기 쉽다.
c. 유지보수가 용이하다
d. 직관적인 코드 분석이 가능하다.
e. 소프트웨어 생산성이 향상된다.
Castiong (캐스팅)
기존 데이터 타입을 다른 데이터타입으로 변환하는 것
인터페이스
상속과 인터페이스의 다른 점 : 맨 처음으로 만들어지는 설계도 … 비슷하긴 함ㅇㅇ
- 클래스들이 구현해야 하는 공통되는 기능들을 미리 지정
- 일종의 프로젝트 설계도
- 멤버필드(상수)와 추상메서드만 정의할 수 있다.
- interface 키워드를 사용하여 선언
- 기능만 정의함으로써 구현객체의 같은 동작 보장 (구현을 강제화)
- 다중구현(상속)이 가능하다! (implements 키워드 사용)
'Back > Java' 카테고리의 다른 글
#11 Java_method (0) | 2022.12.20 |
---|---|
#10 Java_ArrayList (0) | 2022.12.16 |
#09 Java_배열 (0) | 2022.12.16 |
#08 Java_반복문 (0) | 2022.12.15 |
#07 Java_조건문 (0) | 2022.12.15 |