자바 객체지향 프로그래밍 이란?

김담희·2021년 9월 10일
0

JAVA

목록 보기
3/12
post-thumbnail

◈ 객체 지향 프로그래밍이란?

  • OOP: Object Oriented

  • CBD: 부품 객체를 먼저 만들고 이것들을 하나씩 조립해 완성된 프로그램을 만드는 기법

  • 추가)

    • 절차지향: C

    • 객체지향: C++, JAVA

    • 관점지향: 개념

◈ 객체(Object) 란?

  • 물리적으로 존재하는 것 (예: 자동차, 책, 사람)

  • 추상적인 것 (예: 회사, 날짜) 중에서 자신의 속성돠 동작을 가지는 모든 것

  • 객체는 필드(속성)와 메소드(동작)로 구성된 자바 객체로 모델링 가능

| 객체의 상호작용

  • 객체들은 서로 간에 기능(동작)을 이용하고 데이터를 주고 받는다.

  • 예를들어 위 사진과 같이
    사람은 전자계산기의 기능을 이용하고,전자계산기는 계산 결과를 사람에게 알려주는 상호작용을 한다.

| 객체 간의 관계

  • 객체 지향 프로그램에서는 객체는 다른 객체와 관계를 맺는다

  • 관계의 종류​
    (집합 관계: 완성품과 부품의 관계)
    (사용 관계: 객체가 객체를 사용하는 관계)
    (상속 관계: 종류 객체와 구체적인 사물 객체 관계)


◈ 객체지향 프로그래밍의 특징

| 캡슐화

  • 데이터 구조와 데이터를 다루는 방법들을 결합 시켜 묶는 것

  • 객체의 필드, 메소드를 하나로 묶고, 실제 구현 내용을 감추는 것

  • 외부 객체는 객체 내부 구조를 알지 못하며 객체가 노출해 제공하는 필드와 메소드만 이용 가능

  • 필드와 메소드를 캠슐화하여 보호하는 이유는 외부의 잘못된 사용으로 인해 객체가 손상되지 않도록

  • 자바 언어는 캡슐화된 멤버를 노출시킬 것인지 숨길 것인지 결정하기 위해 접근 제한자(Access Modifier) 사용

| 상속

  • 상위 개념의 특징을 하위 개념이 물려 받는 것

  • 상위(부모) 객체의 필드와 메소드를 하위(자식) 객체에게 물려주는 행위

  • 하위 객체는 상위 객체를 확장해서 추가적인 필드와 메소드를 가질 수 있음

  • 상속 대상: 필드와 메소드

  • 상속의 효과
    (상위 객체를 재상용해서 하위 객체를 빨리 개발가능/ 반복된 코드의 중복을 줄임/ 유지 보수의 편리성 제공/ 객체의 다형성 구현)

| 다형성

  • 부모클래스에서 물려받은 가상 함수를 자식 클래스 내에서 오버라이딩 되어 사용되는 것

  • 같은 타입이지만 실행 결과가 다양한 객체를 대입할 수 있는 성질
    (부모 타입에는 모든 자식 객체가 대입/인터페이스 타입에는 모든 구현 객체가 대입)

  • 효과
    (부품화시키는 것 가능 / 유지보수 용이)

| 추상화

  • 공통의 속성이나 기능을 묶어 이름을 붙이는 것

  • 사전적 의미: 여러가지 사물이나 개념에서 공통되는 특성이나 속성 따위를 추출하여 파악하는 적용


◈ 객체(Object)와 클래스(Class)

  • 클래스에는 객체를 생성하기 위한 필드와 메소드가 정의되어 있다.

  • 클래스로부터 만들어진 객체를 해당 클래스의 인스턴스(instance) 라고 한다.

  • 하나의 클래스로부터 여러 개의 인스턴스를 만들 수 있다.

0개의 댓글