Java 웹 프로그래밍

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

irerin07 2019. 3. 7. 18:28
728x90

 객체지향 프로그래밍

Object Oriented Programming

객체지향 프로그래밍이란 무엇인가?

 

우선 객체란 무엇인가?

객관적으로 존재하는 실체

객체란 물리적, 추상적인것들 중 자신의 속성을 가지고 식별 가능한 것들.

-       과일, 수학

객체는 속성과 동작으로 구성

-       속성 – Field

-       동작 – Method

객체를 만드는 설계도, = 클래스(Class)

-       참조자료형

-       추상적

-       표현 대상들의 공통적인 특징을 서술

-       객체를 생성하기 위한 필드와 클래스가 정의 되어있다.

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

-       클래스가 실체로 만들어진 것이 바로 Object 객체

클래스를 통해 만들어진 객체(Object)를 해당 클래스의 인스턴스(Instance)라 한다.

Car(클래스) c1 (변수명) = new(클래스로부터 새로운 객체 생성하는 연산자) Car();(생성자 객체 초기화 담당)

-       New 연산자가 c1 객체에 저장될 메모리 공간을 할당

-       생성자가 c1객체를 초기화

-       New 연산자가 새로 생성된 객체의 주소를 c1변수에 저장

-       C1을 통해 Car에 접근

heap영역에 객체가 생성되고 객체의 주소가 리턴 된다.

 

이러한 객체라는 컨셉을 위주로/바탕으로 하는 프로그래밍 패러다임(이론적인 틀, 혹은 체계)

 

OOP 개발의 3단계

-       클래스 설계

-       사용 할 객체를 생성

-       생성 된 객체를 사용

 

OOP를 사용하는가?

-       OOP를 잘 사용하면 개발이 더 쉬워지고 유지 보수하기가 편해진다.

Encapsulation 캡슐화

-       응집도를 올리고 결합도를 낮춘다.

-       필드와 메소드를 하나로 묶어주는 것 -> 응집도 up

-       필드에 접근하기 위해선 해달 클래스의 메소드를 통해서만 가능하게끔 -> 결합도 down

-       정보은닉 사용자는 구현내용을 알 수가 없다

-       접근 지시 제어자를 사용 – private

Inheritance 상속

-       한 클래스가 가지고 있는 특징들을 다른 클래스가 물려 받는 것

-       상위 객체 재사용 -> 하위 객체를 빠르게 설계 가능, 중복을 줄여준다.

Polymorphism 다형성

-       오버라이딩과 상속을 이용해 실행 결과가 다양한 객체를 처리 할 수있다.

-       Animal cat = new Cat();

-       Animal dog = new Dog();

-       Animal Class에는 talk라는 메서드가 있고

-       Cat Dog 클래스는 오버라이딩 혹은 상속을 이용해 서로 다른 결과가 나올 수 있다.

-       cat.talk(); dog.talk()는 같은 Animal 타입이지만 실행 결과가 서로 다르다


3줄요약


객체지향 프로그래밍이란 객체를 정의하고 그 객체간의 상호작용을 프로그래밍 하는 것이다.
객체란 물리적으로 혹은 추상적으로 존재하는 것들을 말하며 속성과 동작으로 구성되어있다.
캡슐화를 통해 응집도를 올리고 결합도는 낮추며, 상속을 통해 하위 객체를 빠르게 생성이 가능하고 다형성을 통해 같은 타입일지라도 실행 결과가 다양한 객체를 처리 할 수 있다.


728x90