JAVA

[JAVA]11. 객체지향 프로그래밍

CodeJaram 2023. 6. 10. 22:02

JAVA_11_객체지향 프로그래밍

 

[객체 지향프로그래밍]

1. 객체지향프로그래밍: 객체들의 모임, 각각의 객체는 메시지를 주고받고 데이터 처리

-프로그램이 복잡할 경우 수행에 편리함

 

VS절차지향 프로그래밍: 프로그램을 수행하는 절차나 함수를 중심으로 구성

-단순한 프로그램 수행에는 편리함

-하드웨어와 친밀한 프로그래밍 예)C언어

 

문제가 생겼을 때 전체를 바꿔야 함 VS 문제가 생긴 곳만 교체

 

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

   1)캡슐화(Encapsulation)-접근제한자 private, getter, setter 메소드

         ● 관련된 필드(속성)와 메소드(기능)를 하나로 묶고, 실제 구현내용을 외부로부터

            감추는 기법(정보은닉)

         ● 만일의 상황(타인이 외부에서 조작할 경우)을 대비하여 특정 속성이나 메소드를

              사용자가 조작할 수 없도록 숨겨놓음

         ● 외부에서는 공개된 메소드(기능)를 통해 접근함

 

  2)상속(Inheritance)-extends 상위클래스, 하위클래스

       ● 이미 작성된 클래스(상위클래스)의 특성을 그대로 이어받아 새로운

           클래스(하위클래스)를 생성하는 기법

       ● 기존 코드를 재사용하거나 재정의→재사용+확장

 

  3)추상화(Abstraction)-abstract 추상클래스, 추상메소드

       ● 객체에서 공통된 속성과 행위를 추출하는 기법

       ● 상세한 정보는 무시하고 필요한 정보들만 간추려서 구성

          예)개의 특성을 나열하면 개라는 것을 알 수 있음(그외 세세한 정보는 무시)

 

  4)다형성(Polymorphism)-오버로딩, 오버라이딩

      ● 다양한 형태로 나타날 수 있는 능력

      ● 같은 기능(메소드)를 호출하더라도 객체에 따라 다르게 동작하는 것

          예)리모콘의 >버튼을 눌렀을 때 컴퓨터, TV에서 각각 다른 기능이 동작하는 것

 

      ● 상위 클래스의 동작을 하위 클래스에서 다시 정의하여 사용하는 것도 포함(오버라이딩, overriding)

 

3. 클래스

      ● 객체(인스턴스)가 가지는 필드(속성)와 메소드(기능)을 묶어둔 하나의 단위

      ● 현실의 객체를 표현하기 위한 설계도

 

필드(변수들의 모임)                                                                      메소드

속성                                                                                               행동

 

MVC 패턴

  • Model: 데이터
  • View: 출력되는 부분 예)메인문
  • Controller: 코드가 실행되는 부분 예)메소드문

 

 

'JAVA' 카테고리의 다른 글

[JAVA]13.상속  (0) 2023.06.12
[JAVA]12. 생성자  (0) 2023.06.11
[JAVA]10. ArrayList  (0) 2023.06.09
[JAVA]9. 메소드  (0) 2023.06.08
[JAVA]8. 2차원 배열  (1) 2023.06.07