#12 Java_객체 지양 프로그래밍

Back/Java 2022. 12. 20.

(Object Oriented Programming)

줄여서 : OOP

더보기

 

대표적으로 C, fortran, COBOL이 있다.

단점은 길고, 수정이 불편하다는 점

목차

  1. 객체 지향 프로그래밍의 특징
  2. 객체 지향 프로그래밍의 장점
  3. 캐스팅
  4. 인터페이스

예시 : 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