본문 바로가기

SW 아카데미 3기/JAVA

[JAVA] 객체지향프로그래밍(OOP)

목차

    728x90
    반응형
    SMALL

     

    📁 객체지향 프로그래밍(OOP)

    객체지향프로그래밍(Object-oriented programming, OOP)이란 프로그램을 객체(object)로 구성하는 프로그래밍이다.

     

    객체지향 프로그래밍은 프로그램의 거대화를 배경으로 등장했다. 점점 크고 복잡해지는 프로그램을 어떻게 효율적으로 만들것인가의 해결책 : 작게 나눠서 만들고 합친다는 방안

     

    위와 같은 추상적인 방안을 프로그래밍에 적용하여, 프로그램의 동작을 객체들에게 나누어 수행하도록 하였으며 이것이 객체지향 프로그래밍이다.

     

     

    크고 복잡하거나, 자주 업데이트해야하는 프로그램에 적합하다.

     

     

    https://velog.io/@gparkkii/oop00

    절차지향 프로그래밍과 객체지향 프로그래밍은

     

     

    https://www.techtarget.com/searchapparchitecture/definition/object-oriented-programming-OOP

    객체지향 프로그래밍은 

     

     

     

    객체

     

    객체는 프로그램 안에서 작은 기능을 수행한다.

     

    프로그램 내에서 객체는 구분될 필요가 있으며, type(형)으로 객체를 구분할 수 있다.

     

    이때 type은 primitive type을 사용해도 되지만, 프로그래머가 원하는 type을 생성할 수 있으며 이는 class를 만드는 것으로 수행한다.

     

    package com.programmers;
    
    import java.lang.*;
    
    class MyObject extends Object implements Runnable {
        //필드영역
        private int a = 0;
        //메소드영역
        public void run() {
            a += 1;
        }
    }
    
    MyObject obj = new MyObject();

     

     

     

    📁 객체지향 프로그래밍의 장점

    객체 지향적 설계를 통해 프로그램을 보다 유연하고 변경이 용이하게 만들 수 있다.

    컴퓨터 부품을 갈아끼울때 해당하는 부품만 쉽게 교체하고 나머지 부품은 건드리지 않아도 되는 것처럼, 소프트웨어를 설계할 때 객체 지향적으로 설계하면 각각의 객체가 독립적인 역할을 하기 때문에 코드의 변경을 최소화하면서 유지보수를 하는데 유리하다.

     

    코드의 재사용을 통해 반복적인 코드를 최소화하고, 코드를 최대한 간결하게 표현할 수 있다.

     

    객체 지향 프로그래밍은 실제 세계를 최대한 프로그램  설계에 반영하기 위한 지속적인 노력을 통해 발전해왔기 때문에, 보다 인간 친화적이고 직관적인 코드를 작성하기에 용이하다.

     

     

     

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

    객체지향 프로그래밍은 캡슐화(Encapsulation), 상속(Inheritance), 추상화(Abstraction), 다형성(Polymorphism) 네 개의 특성을 가지고 있다.

     

     

    1.1. 캡슐화(Encapsulation)

    캡슐화란 데이터 구조와 데이터를 다루는 방법들을 결합 시켜 묶는 것이다.

     

    기능을 수행하는 단위로써 완전함을 갖는다.

    객체의 정보가 밖에서 접근하거나, 밖에서 객체 내의 정보에 접근하지 못하게 한다.

     

    위 기능은 "접근지정자"가 수행해준다.

     

    public class Human {
        private Heart heart;
        private Blood blood;
        protected Gene gene;
    
        Blood donation() {
            return null;
        }
    }

     

    접근지정자는 아래 포스팅에 정리하였다.

     

     

     

    2. 상속

     

     

    728x90
    반응형
    LIST